Class: SequelSpec::Matchers::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/sequel_spec/base.rb

Instance Method Summary collapse

Constructor Details

#initialize(attribute) ⇒ Base

Returns a new instance of Base.

Raises:

  • (ArgumentError)


4
5
6
7
8
9
10
11
# File 'lib/sequel_spec/base.rb', line 4

def initialize(attribute)
  raise ArgumentError, "Attribute not specified" unless attribute
  @attribute   = attribute
  @description = []
  @options     = {}

  self
end

Instance Method Details

#failure_messageObject



32
33
34
# File 'lib/sequel_spec/base.rb', line 32

def failure_message
  [@prefix, description, @suffix].flatten.compact.join(" ")
end

#hash_to_nice_string(hash) ⇒ Object



40
41
42
# 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) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
16
17
18
19
20
21
22
23
# 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

#negative_failure_messageObject



36
37
38
# File 'lib/sequel_spec/base.rb', line 36

def negative_failure_message
  [@prefix, "not", description, @suffix].flatten.compact.join(" ")
end

#with_options(opts) ⇒ Object

Raises:

  • (ArgumentError)


25
26
27
28
29
30
# 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