Sha256: f94abfe47e390cd380e70802dba33891f70a16793be04c30d4ce771a1515075e

Contents?: true

Size: 716 Bytes

Versions: 2

Compression:

Stored size: 716 Bytes

Contents

RSpec::Matchers.define(:parse) do |input|
  chain(:as) { |as| @as = as }

  match do |parser|
    begin
      @result = parser.parse(input)
      @as == @result or @as.nil?
    rescue Parslet::ParseFailed
      false
    end
  end

  failure_message_for_should do |is|
    "expected " << (@result ?
      "output of parsing #{input.inspect} with #{is.inspect} to equal #{@as.inspect}, but was #{@result.inspect}" :
      "#{is.inspect} to be able to parse #{input.inspect}")
  end

  failure_message_for_should_not do |is|
    "expected " << (@as ?
      "output of parsing #{input.inspect} with #{is.inspect} not to equal #{@as.inspect}" :
      "#{is.inspect} to not parse #{input.inspect}, but it did")
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
parslet-1.1.1 lib/parslet/rig/rspec.rb
parslet-1.1.0 lib/parslet/rig/rspec.rb