Completed
Push — master ( 1ef084...6923c1 )
by Marcelo
01:43
created

Base.ensure_frozen()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
module Koine
2
  module Attributes
3
    module Adapter
4
      class Base
5
        def coerce(*_values)
6
          raise NotImplementedError
7
        end
8
9
        def default_value
10
          @default_value.respond_to?(:call) &&
11
            @default_value.call ||
12
            @default_value
13
        end
14
15
        def with_default_value(value = nil, &block)
16
          @default_value = value
17
          @default_value = block if block
18
          self
19
        end
20
21
        protected
22
23
        def ensure_frozen
24
          yield.freeze
25
        end
26
      end
27
    end
28
  end
29
end
30