Class: Typespec::Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/typespec.rb

Overview

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**pairs) ⇒ Hash

Returns a new instance of Hash.



98
99
100
101
# File 'lib/typespec.rb', line 98

def initialize(**pairs)
  @pairs = pairs
  @pairs ||= {Typespec.any => Typespec.any}
end

Class Method Details

.[](**pairs) ⇒ Object



103
104
105
# File 'lib/typespec.rb', line 103

def self.[](**pairs)
  Typespec::Hash.new(**pairs)
end

Instance Method Details

#valid?(value) ⇒ Boolean

Returns:

  • (Boolean)


107
108
109
110
111
112
113
114
115
116
117
# File 'lib/typespec.rb', line 107

def valid?(value)
  if value.is_a? Hash
    value.all? do |k, v|
      @pairs.any? do |pair|
        pair.zip([k,v]).all? {|typespec, value| typespec.valid?(value)}
      end
    end
  else
    false
  end
end