Class: Hako::Schema::Table
- Inherits:
-
Object
- Object
- Hako::Schema::Table
- Defined in:
- lib/hako/schema/table.rb
Instance Method Summary collapse
-
#initialize(key_schema, val_schema) ⇒ Table
constructor
A new instance of Table.
- #same?(xs, ys) ⇒ Boolean
- #valid?(object) ⇒ Boolean
Constructor Details
#initialize(key_schema, val_schema) ⇒ Table
Returns a new instance of Table.
6 7 8 9 |
# File 'lib/hako/schema/table.rb', line 6 def initialize(key_schema, val_schema) @key_schema = key_schema @val_schema = val_schema end |
Instance Method Details
#same?(xs, ys) ⇒ Boolean
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/hako/schema/table.rb', line 15 def same?(xs, ys) if xs.size != ys.size return false end t = xs.dup ys.each do |yk, yv| xk, = xs.find { |k, v| @key_schema.same?(k, yk) && @val_schema.same?(v, yv) } if xk t.delete(xk) else return false end end t.empty? end |
#valid?(object) ⇒ Boolean
11 12 13 |
# File 'lib/hako/schema/table.rb', line 11 def valid?(object) object.is_a?(::Hash) && object.all? { |k, v| @key_schema.valid?(k) && @val_schema.valid?(v) } end |