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