Sha256: 46d628331983efc5825ee54b20e720754eade6d0a10a82524e57eb3dd06516fb

Contents?: true

Size: 1022 Bytes

Versions: 109

Compression:

Stored size: 1022 Bytes

Contents

# copyright: 2016, Chef Software Inc.

require "rspec/expectations"

module Inspec
  class Expect
    attr_reader :calls, :value, :block
    def initialize(value, &block)
      @value = value
      @block = block
      @calls = []
    end

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

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

    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
  end
end

Version data entries

109 entries across 109 versions & 2 rubygems

Version Path
inspec-4.7.18 lib/inspec/expect.rb
inspec-core-4.7.3 lib/inspec/expect.rb
inspec-4.7.3 lib/inspec/expect.rb
inspec-core-4.6.9 lib/inspec/expect.rb
inspec-4.6.9 lib/inspec/expect.rb
inspec-core-4.6.4 lib/inspec/expect.rb
inspec-4.6.4 lib/inspec/expect.rb
inspec-core-4.6.3 lib/inspec/expect.rb
inspec-4.6.3 lib/inspec/expect.rb