Class: Hako::Schema::Table

Inherits:
Object
  • Object
show all
Defined in:
lib/hako/schema/table.rb

Instance Method Summary collapse

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

Returns:



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

Returns:



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