class Oval::Base
Public Class Methods
[](*args)
click to toggle source
# File lib/oval/base.rb, line 36 def self.[](*args)#,subject = default_subject) return new(*args) end
ensure_equal(thing, decl, subject = nil)
click to toggle source
# File lib/oval/base.rb, line 8 def self.ensure_equal(thing, decl, subject = nil) unless (decl == Oval::Anything) or (thing == decl) raise Oval::ValueError, "Invalid value #{thing.inspect}#{for_subject(subject)}. Should be " + "equal #{decl.inspect}" end end
it_should(decl)
click to toggle source
# File lib/oval/base.rb, line 25 def self.it_should(decl) if decl.is_a? Oval::Base decl.it_should elsif decl == Oval::Anything Oval::Anything[].it_should else # "terminal symbol" "be equal #{decl.inspect}" end end
new(*args)
click to toggle source
# File lib/oval/base.rb, line 48 def initialize(*args) end
validate(thing, decl, subject = nil)
click to toggle source
# File lib/oval/base.rb, line 16 def self.validate(thing, decl, subject = nil) if decl.is_a? Oval::Base decl.validate(thing,subject) else # "terminal symbol" ensure_equal(thing, decl, subject) end end
Private Class Methods
enumerate(items,op)
click to toggle source
# File lib/oval/base.rb, line 61 def self.enumerate(items,op) return 'none' if items.empty? output = items[0..-2].map{|k| k.inspect}.join(', ') output.empty? ? items[0].inspect : [output, items[-1].inspect].join(" #{op} ") end
for_subject(subject)
click to toggle source
# File lib/oval/base.rb, line 53 def self.for_subject(subject) subject ? " for #{subject}" : "" end
Public Instance Methods
it_should()
click to toggle source
# File lib/oval/base.rb, line 44 def it_should() raise NotImplementedError, "This method should be overwritten by a subclass" end
validate(value, subject = nil)
click to toggle source
# File lib/oval/base.rb, line 40 def validate(value, subject = nil) raise NotImplementedError, "This method should be overwritten by a subclass" end
Private Instance Methods
enumerate(items,op)
click to toggle source
# File lib/oval/base.rb, line 67 def enumerate(items,op) self.class.enumerate(items,op) end
for_subject(subject)
click to toggle source
# File lib/oval/base.rb, line 57 def for_subject(subject) self.class.for_subject(subject) end