Module: Yaoc::MapperDSLMethods

Included in:
ObjectMapper
Defined in:
lib/yaoc/object_mapper.rb

Instance Method Summary collapse

Instance Method Details

#add_mapping(&block) ⇒ Object



3
4
5
6
# File 'lib/yaoc/object_mapper.rb', line 3

def add_mapping(&block)
  instance_eval &block
  apply_commands!
end

#fetcher(new_fetcher) ⇒ Object



42
43
44
# File 'lib/yaoc/object_mapper.rb', line 42

def fetcher(new_fetcher)
  converter_builder.fetcher = new_fetcher
end

#noopObject



58
59
60
# File 'lib/yaoc/object_mapper.rb', line 58

def noop
  ->(_, result) { result }
end

#register_as(name) ⇒ Object



62
63
64
# File 'lib/yaoc/object_mapper.rb', line 62

def register_as(name)
  registry.add(name, self) unless name.nil?
end

#reverse_fetcher(new_fetcher) ⇒ Object



46
47
48
# File 'lib/yaoc/object_mapper.rb', line 46

def reverse_fetcher(new_fetcher)
  reverse_converter_builder.fetcher = new_fetcher
end

#reverse_strategy(new_strategy) ⇒ Object



54
55
56
# File 'lib/yaoc/object_mapper.rb', line 54

def reverse_strategy(new_strategy)
  reverse_converter_builder.strategy = new_strategy
end

#rule(to: nil, from: to, converter: nil, reverse_to: from, reverse_from: to, reverse_converter: nil, object_converter: nil, reverse_object_converter: object_converter, is_collection: nil, lazy_loading: nil, reverse_lazy_loading: lazy_loading) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/yaoc/object_mapper.rb', line 8

def rule(to: nil,
    from: to,
    converter: nil,
    reverse_to: from,
    reverse_from: to,
    reverse_converter: nil,
    object_converter: nil,
    reverse_object_converter: object_converter,
    is_collection: nil,
    lazy_loading: nil,
    reverse_lazy_loading: lazy_loading)

  object_converter = Array(object_converter).map { |converter| converter.is_a?(Symbol) ? registry.for(converter) : converter }
  reverse_object_converter = Array(reverse_object_converter).map { |converter| converter.is_a?(Symbol) ? registry.for(converter) : converter }

  converter_builder.rule(
      to: to,
      from: from,
      converter: converter,
      object_converter: object_converter.map(&:converter),
      is_collection: is_collection,
      lazy_loading: lazy_loading
  )

  reverse_converter_builder.rule(
      to: reverse_to,
      from: reverse_from,
      converter: reverse_converter,
      object_converter: reverse_object_converter.map(&:reverse_converter),
      is_collection: is_collection,
      lazy_loading: reverse_lazy_loading
  )
end

#strategy(new_strategy) ⇒ Object



50
51
52
# File 'lib/yaoc/object_mapper.rb', line 50

def strategy(new_strategy)
  converter_builder.strategy = new_strategy
end