Code Duplication    Length = 14-21 lines in 2 locations

lib/koine/attributes/adapter/hash_of.rb 1 location

@@ 4-24 (lines=21) @@
1
module Koine
2
  module Attributes
3
    module Adapter
4
      class HashOf < Base
5
        def initialize(key_adapter, value_adapter)
6
          @key_adapter = key_adapter || raise(ArgumentError, 'Invalid key adapter')
7
          @value_adapter = value_adapter || raise(ArgumentError, 'Invalid value adapter')
8
          with_default_value({})
9
        end
10
11
        private
12
13
        def coerce_not_nil(hash)
14
          secure do
15
            {}.tap do |new_hash|
16
              hash.each do |key, value|
17
                key = @key_adapter.coerce(key)
18
                value = @value_adapter.coerce(value)
19
                new_hash[key] = value
20
              end
21
            end
22
          end
23
        end
24
      end
25
    end
26
  end
27
end

lib/koine/attributes/adapter/array_of.rb 1 location

@@ 4-17 (lines=14) @@
1
module Koine
2
  module Attributes
3
    module Adapter
4
      class ArrayOf < Base
5
        def initialize(adapter)
6
          @adapter = adapter
7
          with_default_value([])
8
        end
9
10
        private
11
12
        def coerce_not_nil(collectionOfValues)
13
          secure do
14
            collectionOfValues.map { |value| @adapter.coerce(value) }
15
          end
16
        end
17
      end
18
    end
19
  end
20
end