Class: Contracts::ImmutableHashOf
- Defined in:
- middleman-core/lib/middleman-core/contracts.rb,
middleman-core/lib/middleman-core/contracts.rb
Constant Summary collapse
- INVALID_KEY_VALUE_PAIR =
'You should provide only one key-value pair to HashOf contract'
Instance Method Summary collapse
-
#initialize(key, value) ⇒ ImmutableHashOf
constructor
A new instance of ImmutableHashOf.
- #to_s ⇒ Object
- #valid?(hash) ⇒ Boolean
Methods inherited from Callable
Constructor Details
#initialize(key, value) ⇒ ImmutableHashOf
Returns a new instance of ImmutableHashOf.
28 29 30 31 |
# File 'middleman-core/lib/middleman-core/contracts.rb', line 28 def initialize(key, value) @key = key @value = value end |
Instance Method Details
#to_s ⇒ Object
42 43 44 |
# File 'middleman-core/lib/middleman-core/contracts.rb', line 42 def to_s "ImmutableHash<#{@key}, #{@value}>" end |
#valid?(hash) ⇒ Boolean
33 34 35 36 37 38 39 40 |
# File 'middleman-core/lib/middleman-core/contracts.rb', line 33 def valid?(hash) return false unless hash.is_a?(::Hamster::Hash) keys_match = hash.keys.map { |k| Contract.valid?(k, @key) }.all? vals_match = hash.values.map { |v| Contract.valid?(v, @value) }.all? [keys_match, vals_match].all? end |