Class: Inspec::Expect

Inherits:
Object
  • Object
show all
Defined in:
lib/inspec/expect.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value, &block) ⇒ Expect

Returns a new instance of Expect.



8
9
10
11
12
# File 'lib/inspec/expect.rb', line 8

def initialize(value, &block)
  @value = value
  @block = block
  @calls = []
end

Instance Attribute Details

#blockObject (readonly)

Returns the value of attribute block.



7
8
9
# File 'lib/inspec/expect.rb', line 7

def block
  @block
end

#callsObject (readonly)

Returns the value of attribute calls.



7
8
9
# File 'lib/inspec/expect.rb', line 7

def calls
  @calls
end

#valueObject (readonly)

Returns the value of attribute value.



7
8
9
# File 'lib/inspec/expect.rb', line 7

def value
  @value
end

Instance Method Details

#example_groupObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/inspec/expect.rb', line 22

def example_group
  that = self

  opts = { "caller" => calls[0][3] } # TODO: this needs overhaul. no magic #s
  if !calls[0][3].nil? && !calls[0][3].empty? &&
      (m = calls[0][3][0].match(/^([^:]*):(\d+):/))
    opts["file_path"] = m[0]
    opts["line_number"] = m[1]
  end

  RSpec::Core::ExampleGroup.describe(that.value, opts) do
    that.calls.each do |method, args, block, clr|
      it(nil, caller: clr) do
        x = expect(that.value, &that.block).method(method)
        x.call(*args, &block)
      end
    end
  end
end

#not_to(*args, &block) ⇒ Object



18
19
20
# File 'lib/inspec/expect.rb', line 18

def not_to(*args, &block)
  @calls.push([:not_to, args, block, caller])
end

#to(*args, &block) ⇒ Object



14
15
16
# File 'lib/inspec/expect.rb', line 14

def to(*args, &block)
  @calls.push([:to, args, block, caller])
end