Code Duplication    Length = 20-21 lines in 2 locations

lib/mapper/api/injector.rb 1 location

@@ 9-29 (lines=21) @@
6
7
module AMA
8
  module Entity
9
    class Mapper
10
      module API
11
        # Class that proxies attribute setting on target entity. That allows
12
        # tricks like virtual attribute handling or multi-value attribute
13
        # handling (like in hash or array)
14
        class Injector < Interface
15
          # :nocov:
16
          # Injects passed attribute into entity.
17
          #
18
          # @param [Object] entity
19
          # @param [AMA::Entity::Mapper::Type] type
20
          # @param [AMA::Entity::Mapper::Type::Attribute] attribute
21
          # @param [Object] value
22
          # @param [AMA::Entity::Mapper::Context] context
23
          def inject(entity, type, attribute, value, context = nil)
24
            abstract_method
25
          end
26
          # :nocov:
27
        end
28
      end
29
    end
30
  end
31
end
32

lib/mapper/api/factory.rb 1 location

@@ 9-28 (lines=20) @@
6
7
module AMA
8
  module Entity
9
    class Mapper
10
      module API
11
        # This interface depicts factory for class instance creation.
12
        class Factory < Interface
13
          # :nocov:
14
          # @param [AMA::Entity::Mapper::Type] type Type that requires creation.
15
          #   While most probably it wouldn't be necessary, it is unknown until
16
          #   creation which exact type will be used (altering type parameters
17
          #   results in new type creation)
18
          # @param [Object] data Data that will be used for object creation.
19
          #   May be of any type or even nil.
20
          # @param [AMA::Entity::Mapper::Context] context
21
          # @return [Object] Object of passed type.
22
          def create(type, data = nil, context = nil)
23
            abstract_method
24
          end
25
          # :nocov:
26
        end
27
      end
28
    end
29
  end
30
end
31