Sha256: 5b3631f214d4b7d913d2c9f19b8593944608e67973fbe98ffd231144d8f8346e

Contents?: true

Size: 1.91 KB

Versions: 7

Compression:

Stored size: 1.91 KB

Contents

def silence_warnings(&block)
  warn_level = $VERBOSE
  $VERBOSE = nil
  result = block.call
  $VERBOSE = warn_level
  result
end

if RUBY_VERSION =~ /1\.9|2\.0/
  silence_warnings do
    Encoding.default_external = Encoding::UTF_8
    Encoding.default_internal = Encoding::UTF_8
  end
end
if defined?(JRUBY_VERSION)
  java_import java.util.ArrayList
  ArrayList.__persistent__ = true
end

require 'rubygems'
require 'bundler'
Bundler.setup

require 'rspec'
require 'gherkin'
require 'stringio'
require 'gherkin/sexp_recorder'
require 'gherkin/shared/encoding_group'
require 'gherkin/shared/lexer_group'
require 'gherkin/shared/tags_group'
require 'gherkin/shared/doc_string_group'
require 'gherkin/shared/row_group'
require 'gherkin/lexer/encoding'
$:.unshift(File.dirname(__FILE__))

module GherkinSpecHelper
  def scan_file(file)
    @lexer.scan(fixture(file))
  end

  def fixture(file)
    encoding = Gherkin::Lexer::Encoding.new
    encoding.read_file(File.dirname(__FILE__) + "/gherkin/fixtures/" + file)
  end

  def rubify_hash(hash)
    if defined?(JRUBY_VERSION)
      h = {}
      hash.keySet.each{|key| h[key] = hash[key]}
      h
    else
      hash
    end
  end
end

RSpec.configure do |c|
  c.include(GherkinSpecHelper)
end

# Allows comparison of Java List with Ruby Array (rows)
RSpec::Matchers.define :r do |expected|
  match do |row|
    silence_warnings do
      def row.inspect
        "r " + self.map{|cell| cell}.inspect
      end
    end
    row.map{|cell| cell}.should == expected
  end
end

RSpec::Matchers.define :a do |expected|
  match do |array|
    silence_warnings do
      def array.inspect
        "a " + self.map{|e| e.to_sym}.inspect
      end
    end
    array.map{|e| e.to_sym}.should == expected
  end
end

RSpec::Matchers.define :sym do |expected|
  match do |actual|
    expected.to_s == actual.to_s
  end
end

RSpec::Matchers.define :allow do |event|
  match do |parser|
    parser.expected.index(event)
  end  
end

Version data entries

7 entries across 5 versions & 2 rubygems

Version Path
honeybadger-2.4.0 vendor/gems/ruby/1.9.1/gems/gherkin-2.12.2/spec/spec_helper.rb
honeybadger-2.4.0 vendor/gems/ruby/2.2.0/gems/gherkin-2.12.2/spec/spec_helper.rb
honeybadger-2.4.0 vendor/gems/ruby/2.1.0/gems/gherkin-2.12.2/spec/spec_helper.rb
gherkin-2.12.2 spec/spec_helper.rb
gherkin-2.12.2-x86-mswin32 spec/spec_helper.rb
gherkin-2.12.2-x86-mingw32 spec/spec_helper.rb
gherkin-2.12.2-java spec/spec_helper.rb