Class: Typedocs::TypeSpec::HashType

Inherits:
Typedocs::TypeSpec show all
Defined in:
lib/typedocs/type_spec.rb

Instance Method Summary collapse

Methods inherited from Typedocs::TypeSpec

#error_message_for

Constructor Details

#initialize(key_spec, value_spec) ⇒ HashType

Returns a new instance of HashType.



150
151
152
153
# File 'lib/typedocs/type_spec.rb', line 150

def initialize(key_spec, value_spec)
  @key_spec = key_spec
  @value_spec = value_spec
end

Instance Method Details

#to_sourceObject



159
160
161
# File 'lib/typedocs/type_spec.rb', line 159

def to_source
  "{#{@key_spec.to_source} => #{@value_spec.to_source}}"
end

#valid?(obj) ⇒ Boolean

Returns:

  • (Boolean)


154
155
156
157
158
# File 'lib/typedocs/type_spec.rb', line 154

def valid?(obj)
  obj.is_a?(::Hash) &&
    obj.keys.all?{|k| @key_spec.valid? k} &&
    obj.values.all?{|v| @value_spec.valid? v}
end