Sha256: 80cb68bc7210bd1471598f308699e8fb9a1df6ce44b95a71d49bc438d787d2ed

Contents?: true

Size: 1.33 KB

Versions: 114

Compression:

Stored size: 1.33 KB

Contents

describe MethodSource::CodeHelpers do
  before do
    @tester = Object.new.extend(MethodSource::CodeHelpers)
  end

  [
    ["p = '", "'"],
    ["def", "a", "(); end"],
    ["p = <<FOO", "lots", "and", "lots of", "foo", "FOO"],
    ["[", ":lets,", "'list',", "[/nested/", "], things ]"],
    ["abc =~ /hello", "/"],
    ["issue = %W/", "343/"],
    ["pouts(<<HI, 'foo", "bar", "HI", "baz')"],
    ["=begin", "no-one uses this syntax anymore...", "=end"],
    ["puts 1, 2,", "3"],
    ["puts 'hello'\\", "'world'"]
  ].each do |lines|
    it "should not raise an error on broken lines: #{lines.join("\\n")}" do
      1.upto(lines.size - 1) do |i|
        @tester.complete_expression?(lines[0...i].join("\n") + "\n").should == false
      end
      @tester.complete_expression?(lines.join("\n")).should == true
    end
  end

  [
    ["end"],
    ["puts )("],
    ["1 1"],
    ["puts :"]
  ] + (RbConfig::CONFIG['ruby_install_name'] == 'rbx' ? [] : [
    ["def", "method(1"], # in this case the syntax error is "expecting ')'".
    ["o = Object.new.tap{ def o.render;","'MEH'", "}"] # in this case the syntax error is "expecting keyword_end".
  ]).compact.each do |foo|
    it "should raise an error on invalid syntax like #{foo.inspect}" do
      lambda{
        @tester.complete_expression?(foo.join("\n"))
      }.should.raise(SyntaxError)
    end
  end
end

Version data entries

114 entries across 107 versions & 34 rubygems

Version Path
able-neo4j-1.0.0 vendor/bundle/jruby/1.9/gems/method_source-0.8.2/test/test_code_helpers.rb
honeybadger-2.4.0 vendor/gems/ruby/1.9.1/gems/method_source-0.8.2/test/test_code_helpers.rb
honeybadger-2.4.0 vendor/gems/ruby/2.2.0/gems/method_source-0.8.2/test/test_code_helpers.rb
honeybadger-2.4.0 vendor/gems/ruby/2.1.0/gems/method_source-0.8.2/test/test_code_helpers.rb
logstash-input-beats-2.0.2 vendor/jruby/1.9/gems/method_source-0.8.2/test/test_code_helpers.rb
logstash-input-beats-2.0.2 vendor/jruby/1.9/gems/logstash-codec-json-2.0.3/vendor/gems/method_source-0.8.2/test/test_code_helpers.rb
logstash-codec-json-2.0.3 vendor/gems/method_source-0.8.2/test/test_code_helpers.rb
logstash-input-beats-0.9.2 vendor/jruby/1.9/gems/method_source-0.8.2/test/test_code_helpers.rb
logstash-input-beats-0.9.1 vendor/jruby/1.9/gems/method_source-0.8.2/test/test_code_helpers.rb
mastermind_adeybee-0.1.4 vendor/bundle/ruby/2.2.0/gems/method_source-0.8.2/test/test_code_helpers.rb
sc_core-0.0.7 test/dummy/vendor/bundle/ruby/2.2.0/gems/method_source-0.8.2/test/test_code_helpers.rb
mastermind_adeybee-0.1.3 vendor/bundle/ruby/2.2.0/gems/method_source-0.8.2/test/test_code_helpers.rb
mastermind_adeybee-0.1.2 vendor/bundle/ruby/2.2.0/gems/method_source-0.8.2/test/test_code_helpers.rb
mastermind_adeybee-0.1.1 vendor/bundle/ruby/2.2.0/gems/method_source-0.8.2/test/test_code_helpers.rb
geminfo-0.1.0 path/gems/method_source-0.8.2/test/test_code_helpers.rb
solidus_backend-1.0.0.pre3 vendor/bundle/gems/method_source-0.8.2/test/test_code_helpers.rb
solidus_backend-1.0.0.pre2 vendor/bundle/gems/method_source-0.8.2/test/test_code_helpers.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/method_source-0.8.2/test/test_code_helpers.rb
asana2flowdock-1.0.0 vendor/bundle/ruby/1.9.1/gems/method_source-0.8.2/test/test_code_helpers.rb
whos_dated_who-0.1.0 vendor/bundle/gems/method_source-0.8.2/test/test_code_helpers.rb