Sha256: 6b22e5e07a55e87361934dfc276918075641cc2f83bd314ba4c4e4c3a3c4cdee

Contents?: true

Size: 1.8 KB

Versions: 4

Compression:

Stored size: 1.8 KB

Contents

shared_examples_for "wildcard match" do |actual, matcher, *args|
  expected = matcher.to_s + (args.size > 0 ? "(#{args.map(&:inspect).join(", ")})" : "")

  it "#{actual.inspect} with #{expected}" do
    if matcher.is_a?(Symbol) and WildcardMatchers.respond_to?(matcher)
      # Note: some symbol comes here and may fail
      wildcard_match?(actual, send(matcher, *args), &debugger).should be_true
    else
      wildcard_match?(actual, matcher, &debugger).should be_true
    end
  end
end

shared_examples_for "not wildcard match" do |actual, matcher, *args|
  expected = matcher.to_s + (args.size > 0 ? "(#{args.map(&:inspect).join(", ")})" : "")

  it "#{actual.inspect} with #{expected}" do
    if matcher.is_a?(Symbol) and WildcardMatchers.respond_to?(matcher)
      # Note: some symbol comes here and may fail
      wildcard_match?(actual, send(matcher, *args), &debugger).should be_false
    else
      wildcard_match?(actual, matcher, &debugger).should be_false
    end
  end
end

shared_examples_for "wildcard match with helper" do |actual, helper, matcher, *args|
  matcher_string =if matcher.is_a?(Symbol) and WildcardMatchers.respond_to?(matcher)
                    matcher.to_s
                  else
                    matcher.inspect
                  end

  expected = helper.to_s + "(" + (args.size > 0 ?
                                   "(#{matcher_string}(#{args.map(&:inspect).join(",")})" :
                                    matcher_string) + ")"

  it "#{actual.inspect} with #{expected}" do
    if matcher.is_a?(Symbol) and WildcardMatchers.respond_to?(matcher)
      # Note: some symbol comes here and may fail
      wildcard_match?(actual, send(helper, send(matcher, *args)), &debugger).should be_true
    else
      wildcard_match?(actual, send(helper, matcher), &debugger).should be_true
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
wildcard_matchers-0.1.8 spec/support/shared_examples.rb
wildcard_matchers-0.1.7 spec/support/shared_examples.rb
wildcard_matchers-0.1.6 spec/support/shared_examples.rb
wildcard_matchers-0.1.5 spec/support/shared_examples.rb