class Charta::Factory::Transformers::EwktTransformerChain

Attributes

transformers[R]

@return [Array<EwktTransformer>]

Public Class Methods

build() click to toggle source
# File lib/charta/factory/transformers/ewkt_transformer_chain.rb, line 8
def build
  new(
    Transformers::FromGeoJsonTransformer.new,
    Transformers::FromWkbTransformer.new,
    Transformers::FromGmlTransformer.new,
    Transformers::FromKmlTransformer.new,
    Transformers::EwktPassthrough.new
  )
end
new(*transformers) click to toggle source
# File lib/charta/factory/transformers/ewkt_transformer_chain.rb, line 22
def initialize(*transformers)
  @transformers = transformers
end

Public Instance Methods

handles?(value, format:) click to toggle source

@return [Boolean]

# File lib/charta/factory/transformers/ewkt_transformer_chain.rb, line 27
def handles?(value, format:)
  transformers.any? { |t| t.handles?(value, format: format) }
end
transform(value, srid: nil, format: nil) click to toggle source

@param [String, Hash] value @return [String] ewkt representation of value

# File lib/charta/factory/transformers/ewkt_transformer_chain.rb, line 33
def transform(value, srid: nil, format: nil)
  transformer = transformers.detect { |t| t.handles?(value, format: format) }
  raise TransformationError.new('Not handled') if transformer.nil?

  transformer.transform(value, srid: srid, format: format)
end