Sha256: 9fa0a111c30de52ba6b956bcc68b9819823548ea0d59bd81ed4c94a310f9e54f

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

if ENV["SIMPLECOV"]
  require 'simplecov'
  SimpleCov.start
end
require 'minitest/spec'
require 'minitest/autorun'

$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))

require 'ripper_ruby_parser'

class MiniTest::Spec
  def formatted exp
    exp.to_s.gsub(/\), /, "),\n")
  end

  def to_comments exp
    inner = exp.map do |sub_exp|
      if sub_exp.is_a? Sexp
        to_comments sub_exp
      else
        sub_exp
      end
    end

    comments = exp.comments.to_s.gsub(/\n\s*\n/, "\n")
    if comments.empty?
      s(*inner)
    else
      s(:comment, comments, s(*inner))
    end
  end

  def assert_parsed_as sexp, code
    parser = RipperRubyParser::Parser.new
    result = parser.parse code
    assert_equal sexp, result
  end

  def assert_parsed_as_before code
    oldparser = RubyParser.new
    newparser = RipperRubyParser::Parser.new
    expected = oldparser.parse code.dup
    result = newparser.parse code
    assert_equal formatted(expected), formatted(result)
  end
end

module MiniTest::Expectations
  infect_an_assertion :assert_parsed_as, :must_be_parsed_as
  infect_an_assertion :assert_parsed_as_before, :must_be_parsed_as_before, :unary
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ripper_ruby_parser-0.0.8 test/test_helper.rb
ripper_ruby_parser-0.0.7 test/test_helper.rb
ripper_ruby_parser-0.0.6 test/test_helper.rb