class ROM::Transformer
Transformer
is a data mapper which uses Transproc's transformer DSL to define transformations.
@api public
Public Class Methods
base_relation()
click to toggle source
This is needed to make transformers compatible with rom setup
@api private
# File lib/rom/transformer.rb, line 83 def self.base_relation relation end
build()
click to toggle source
Build a mapper instance
@return [Transformer]
@api public
# File lib/rom/transformer.rb, line 92 def self.build new end
map(&block)
click to toggle source
Define transformation pipeline
@example
class UsersMapper < ROM::Transformer map do rename_keys user_id: :id deep_stringify_keys end end
@return [self]
@api public
# File lib/rom/transformer.rb, line 74 def self.map(&block) define! do map_array(&block) end end
relation(name = Undefined, options = EMPTY_HASH)
click to toggle source
Configure relation for the transformer
@example with a custom name
class UsersMapper < ROM::Transformer relation :users, as: :json_serializer map do rename_keys user_id: :id deep_stringify_keys end end users.map_with(:json_serializer)
@param name [Symbol] @param options [Hash] @option options :as [Symbol] Mapper
identifier
@api public
# File lib/rom/transformer.rb, line 54 def self.relation(name = Undefined, options = EMPTY_HASH) return @relation if name.equal?(Undefined) && defined?(@relation) register_as(options.fetch(:as, name)) @relation = name end