class Oval::HashItem
Attributes
key_decl[R]
val_decl[R]
Public Class Methods
[](item_decl)
click to toggle source
# File lib/oval/hash_item.rb, line 18 def self.[](item_decl) new(item_decl) end
new(item_decl)
click to toggle source
# File lib/oval/hash_item.rb, line 22 def initialize(item_decl) self.item_decl = item_decl end
validate_item_decl(decl)
click to toggle source
# File lib/oval/hash_item.rb, line 29 def self.validate_item_decl(decl) unless (decl.is_a?(Hash) and decl.size == 1) raise Oval::DeclError, "Invalid item declaration #{decl.inspect}. " + "Should be one-element Hash of type { key_decl => value_decl }" end end
Public Instance Methods
it_should()
click to toggle source
# File lib/oval/hash_item.rb, line 13 def it_should "be {key => value} where key should #{self.class.it_should(key_decl)} " + "and value should #{self.class.it_should(val_decl)}" end
validate(item, i, subject = nil)
click to toggle source
# File lib/oval/hash_item.rb, line 6 def validate(item, i, subject = nil) key_subject = subject.nil? ? nil: "#{subject} key" val_subject = subject.nil? ? nil: "#{subject}[#{item[0].inspect}]" self.class.validate(item[0],key_decl,key_subject) self.class.validate(item[1],val_decl,val_subject) end
Private Instance Methods
item_decl=(decl)
click to toggle source
# File lib/oval/hash_item.rb, line 38 def item_decl=(decl) if decl.is_a?(Oval::Anything) or (decl.is_a?(Class) and decl == Oval::Anything) @key_decl, @val_decl = [Oval::Anything[], Oval::Anything[]] else self.class.validate_item_decl(decl) @key_decl, @val_decl = decl.first end end