class SequelSpec::Matchers::Base

Public Class Methods

new(attribute) click to toggle source
# File lib/sequel_spec/base.rb, line 4
def initialize(attribute)
  raise ArgumentError, "Attribute not specified" unless attribute
  @attribute   = attribute
  @description = []
  @options     = {}

  self
end

Public Instance Methods

failure_message() click to toggle source
# File lib/sequel_spec/base.rb, line 32
def failure_message
  [@prefix, description, @suffix].flatten.compact.join(" ")
end
failure_message_when_negated() click to toggle source
# File lib/sequel_spec/base.rb, line 36
def failure_message_when_negated
  [@prefix, "not", description, @suffix].flatten.compact.join(" ")
end
hash_to_nice_string(hash) click to toggle source
# File lib/sequel_spec/base.rb, line 40
def hash_to_nice_string(hash)
  hash.sort{ |a,b| a[0].to_s<=>b[0].to_s }.collect{ |param| param.collect{ |v| v.inspect }.join(" => ") }.join(", ")
end
matches?(subject) click to toggle source
# File lib/sequel_spec/base.rb, line 13
def matches?(subject)
  @suffix = []

  if subject.is_a?(Sequel::Model)
    @prefix = "expected #{subject.inspect} to"
    valid?(subject.db, subject, subject.class, @attribute, @options)
  else
    @prefix = "expected #{subject.table_name.to_s.classify} to"
    valid?(subject.db, subject.new, subject, @attribute, @options)
  end
end
with_options(opts) click to toggle source
# File lib/sequel_spec/base.rb, line 25
def with_options(opts)
  raise ArgumentError, "#with_options expects a hash, #{opts.class} given" unless opts.is_a? Hash

  @options.merge! opts
  self
end