brakeman 3.4.0 → 3.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES +10 -0
- data/bundle/load.rb +3 -3
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.0 → ruby2ruby-2.3.1}/History.txt +10 -0
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.0 → ruby2ruby-2.3.1}/Manifest.txt +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.0 → ruby2ruby-2.3.1}/README.txt +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.0 → ruby2ruby-2.3.1}/Rakefile +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.0 → ruby2ruby-2.3.1}/bin/r2r_show +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.0 → ruby2ruby-2.3.1}/lib/ruby2ruby.rb +34 -1
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.0 → ruby2ruby-2.3.1}/test/test_ruby2ruby.rb +41 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/History.txt +12 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/Manifest.txt +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/README.txt +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/Rakefile +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/bin/ruby_parse +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/bin/ruby_parse_extract_error +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby18_parser.rb +7 -8
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby18_parser.y +7 -8
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby19_parser.rb +8 -9
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby19_parser.y +10 -11
- data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.3/lib/ruby20_parser.rb +6690 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby20_parser.y +14 -50
- data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.3/lib/ruby21_parser.rb +6738 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby21_parser.y +14 -48
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby22_parser.rb +263 -286
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby22_parser.y +14 -45
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby23_parser.rb +269 -292
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby23_parser.y +14 -45
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby_lexer.rb +41 -8
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby_lexer.rex +6 -6
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby_lexer.rex.rb +17 -11
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby_parser.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby_parser.yy +20 -33
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby_parser_extras.rb +65 -3
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/test/test_ruby_lexer.rb +88 -14
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/test/test_ruby_parser.rb +102 -9
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/test/test_ruby_parser_extras.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/Gemfile +2 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/History.rdoc +10 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/Manifest +0 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/README.rdoc +0 -0
- data/bundle/ruby/2.3.0/gems/terminal-table-1.7.3/Rakefile +15 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/Todo.rdoc +0 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/examples/examples.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/lib/terminal-table.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/lib/terminal-table/cell.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/lib/terminal-table/import.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/lib/terminal-table/row.rb +4 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/lib/terminal-table/separator.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/lib/terminal-table/style.rb +9 -0
- data/bundle/ruby/2.3.0/gems/terminal-table-1.7.3/lib/terminal-table/table.rb +343 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/lib/terminal-table/table_helper.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/lib/terminal-table/version.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/terminal-table.gemspec +0 -0
- data/lib/brakeman.rb +2 -1
- data/lib/brakeman/app_tree.rb +22 -5
- data/lib/brakeman/checks/check_forgery_setting.rb +43 -31
- data/lib/brakeman/checks/check_link_to_href.rb +33 -19
- data/lib/brakeman/checks/check_sql.rb +3 -1
- data/lib/brakeman/checks/check_symbol_dos.rb +1 -0
- data/lib/brakeman/checks/check_unsafe_reflection.rb +1 -1
- data/lib/brakeman/options.rb +5 -0
- data/lib/brakeman/processors/gem_processor.rb +17 -10
- data/lib/brakeman/report/ignore/interactive.rb +17 -6
- data/lib/brakeman/scanner.rb +4 -0
- data/lib/brakeman/tracker/config.rb +10 -1
- data/lib/brakeman/version.rb +1 -1
- metadata +53 -53
- data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.2/lib/ruby20_parser.rb +0 -6728
- data/bundle/ruby/2.3.0/gems/ruby_parser-3.8.2/lib/ruby21_parser.rb +0 -6766
- data/bundle/ruby/2.3.0/gems/terminal-table-1.7.1/Rakefile +0 -9
- data/bundle/ruby/2.3.0/gems/terminal-table-1.7.1/lib/terminal-table/table.rb +0 -239
data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/lib/ruby_parser_extras.rb
RENAMED
@@ -91,7 +91,7 @@ class RPStringScanner < StringScanner
|
|
91
91
|
end
|
92
92
|
|
93
93
|
module RubyParserStuff
|
94
|
-
VERSION = "3.8.
|
94
|
+
VERSION = "3.8.3" unless constants.include? "VERSION" # SIGH
|
95
95
|
|
96
96
|
attr_accessor :lexer, :in_def, :in_single, :file
|
97
97
|
attr_reader :env, :comments
|
@@ -875,11 +875,73 @@ module RubyParserStuff
|
|
875
875
|
str = val[0]
|
876
876
|
str.force_encoding("ASCII-8BIT") unless str.valid_encoding? unless RUBY_VERSION < "1.9"
|
877
877
|
result = s(:str, str)
|
878
|
-
self.lexer.
|
879
|
-
self.lexer.extra_lineno = 0
|
878
|
+
self.lexer.fixup_lineno str.count("\n")
|
880
879
|
result
|
881
880
|
end
|
882
881
|
|
882
|
+
def new_qword_list_entry val
|
883
|
+
str = val[1]
|
884
|
+
str.force_encoding("ASCII-8BIT") unless str.valid_encoding? unless RUBY_VERSION < "1.9"
|
885
|
+
result = s(:str, str)
|
886
|
+
self.lexer.fixup_lineno
|
887
|
+
result
|
888
|
+
end
|
889
|
+
|
890
|
+
def new_qword_list
|
891
|
+
result = s(:array)
|
892
|
+
self.lexer.fixup_lineno
|
893
|
+
result
|
894
|
+
end
|
895
|
+
|
896
|
+
def new_word_list
|
897
|
+
result = s(:array)
|
898
|
+
self.lexer.fixup_lineno
|
899
|
+
result
|
900
|
+
end
|
901
|
+
|
902
|
+
def new_word_list_entry val
|
903
|
+
result = val[1][0] == :evstr ? s(:dstr, "", val[1]) : val[1]
|
904
|
+
self.lexer.fixup_lineno
|
905
|
+
result
|
906
|
+
end
|
907
|
+
|
908
|
+
def new_qsym_list
|
909
|
+
result = s(:array)
|
910
|
+
self.lexer.fixup_lineno
|
911
|
+
result
|
912
|
+
end
|
913
|
+
|
914
|
+
def new_qsym_list_entry val
|
915
|
+
result = s(:lit, val[1].to_sym)
|
916
|
+
self.lexer.fixup_lineno
|
917
|
+
result
|
918
|
+
end
|
919
|
+
|
920
|
+
def new_symbol_list
|
921
|
+
result = s(:array)
|
922
|
+
self.lexer.fixup_lineno
|
923
|
+
result
|
924
|
+
end
|
925
|
+
|
926
|
+
def new_symbol_list_entry val
|
927
|
+
_list, sym, _nil = val # TODO: use _list
|
928
|
+
result = val[1]
|
929
|
+
|
930
|
+
result ||= s(:str, "")
|
931
|
+
|
932
|
+
case sym[0]
|
933
|
+
when :dstr then
|
934
|
+
sym[0] = :dsym
|
935
|
+
when :str then
|
936
|
+
sym = s(:lit, sym.last.to_sym)
|
937
|
+
else
|
938
|
+
debug20 24
|
939
|
+
sym = s(:dsym, "", sym || s(:str, ""))
|
940
|
+
end
|
941
|
+
self.lexer.fixup_lineno
|
942
|
+
sym
|
943
|
+
end
|
944
|
+
|
883
945
|
def new_super args
|
884
946
|
if args && args.node_type == :block_pass then
|
885
947
|
s(:super, args)
|
@@ -89,6 +89,8 @@ class TestRubyLexer < Minitest::Test
|
|
89
89
|
case value
|
90
90
|
when Float then
|
91
91
|
assert_in_epsilon value, act_value, 0.001, msg
|
92
|
+
when NilClass then
|
93
|
+
assert_nil act_value, msg
|
92
94
|
else
|
93
95
|
assert_equal value, act_value, msg
|
94
96
|
end
|
@@ -967,7 +969,17 @@ class TestRubyLexer < Minitest::Test
|
|
967
969
|
end
|
968
970
|
|
969
971
|
def test_yylex_float_e_bad_double_e
|
970
|
-
|
972
|
+
assert_lex3("1e2e3",
|
973
|
+
nil,
|
974
|
+
:tFLOAT, 100, :expr_end,
|
975
|
+
:tIDENTIFIER, "e3", :expr_end)
|
976
|
+
end
|
977
|
+
|
978
|
+
def test_yylex_float_if_modifier
|
979
|
+
assert_lex3("1e2if",
|
980
|
+
nil,
|
981
|
+
:tFLOAT, 100, :expr_end,
|
982
|
+
:kIF_MOD, "if", :expr_beg)
|
971
983
|
end
|
972
984
|
|
973
985
|
def test_yylex_float_e_bad_trailing_underscore
|
@@ -1409,6 +1421,13 @@ class TestRubyLexer < Minitest::Test
|
|
1409
1421
|
refute_lex "0d42__24"
|
1410
1422
|
end
|
1411
1423
|
|
1424
|
+
def test_yylex_integer_if_modifier
|
1425
|
+
assert_lex3("123if",
|
1426
|
+
nil,
|
1427
|
+
:tINTEGER, 123, :expr_end,
|
1428
|
+
:kIF_MOD, "if", :expr_beg)
|
1429
|
+
end
|
1430
|
+
|
1412
1431
|
def test_yylex_question_eh_a__18
|
1413
1432
|
setup_lexer_class Ruby18Parser
|
1414
1433
|
|
@@ -2698,25 +2717,80 @@ class TestRubyLexer < Minitest::Test
|
|
2698
2717
|
:tRCURLY, "}", :expr_endarg, 0, 0)
|
2699
2718
|
end
|
2700
2719
|
|
2701
|
-
def
|
2702
|
-
|
2720
|
+
def test_ruby21_rational_literal
|
2721
|
+
setup_lexer_class Ruby21Parser
|
2703
2722
|
|
2723
|
+
assert_lex3("10r", nil, :tRATIONAL, Rational(10), :expr_end)
|
2724
|
+
assert_lex3("0x10r", nil, :tRATIONAL, Rational(16), :expr_end)
|
2725
|
+
assert_lex3("0o10r", nil, :tRATIONAL, Rational(8), :expr_end)
|
2726
|
+
assert_lex3("0or", nil, :tRATIONAL, Rational(0), :expr_end)
|
2727
|
+
assert_lex3("0b10r", nil, :tRATIONAL, Rational(2), :expr_end)
|
2728
|
+
assert_lex3("1.5r", nil, :tRATIONAL, Rational(15, 10), :expr_end)
|
2729
|
+
assert_lex3("15e3r", nil, :tRATIONAL, Rational(15000), :expr_end)
|
2730
|
+
assert_lex3("15e-3r", nil, :tRATIONAL, Rational(15, 1000), :expr_end)
|
2731
|
+
assert_lex3("1.5e3r", nil, :tRATIONAL, Rational(1500), :expr_end)
|
2732
|
+
assert_lex3("1.5e-3r", nil, :tRATIONAL, Rational(15, 10000), :expr_end)
|
2733
|
+
|
2734
|
+
assert_lex3("-10r", nil,
|
2735
|
+
:tUMINUS_NUM, "-", :expr_beg,
|
2736
|
+
:tRATIONAL, Rational(10), :expr_end)
|
2737
|
+
end
|
2738
|
+
|
2739
|
+
def test_ruby21_imaginary_literal
|
2704
2740
|
setup_lexer_class Ruby21Parser
|
2705
2741
|
|
2706
|
-
assert_lex3("
|
2707
|
-
assert_lex3("
|
2742
|
+
assert_lex3("1i", nil, :tIMAGINARY, Complex(0, 1), :expr_end)
|
2743
|
+
assert_lex3("0x10i", nil, :tIMAGINARY, Complex(0, 16), :expr_end)
|
2744
|
+
assert_lex3("0o10i", nil, :tIMAGINARY, Complex(0, 8), :expr_end)
|
2745
|
+
assert_lex3("0oi", nil, :tIMAGINARY, Complex(0, 0), :expr_end)
|
2746
|
+
assert_lex3("0b10i", nil, :tIMAGINARY, Complex(0, 2), :expr_end)
|
2747
|
+
assert_lex3("1.5i", nil, :tIMAGINARY, Complex(0, 1.5), :expr_end)
|
2748
|
+
assert_lex3("15e3i", nil, :tIMAGINARY, Complex(0, 15000), :expr_end)
|
2749
|
+
assert_lex3("15e-3i", nil, :tIMAGINARY, Complex(0, 0.015), :expr_end)
|
2750
|
+
assert_lex3("1.5e3i", nil, :tIMAGINARY, Complex(0, 1500), :expr_end)
|
2751
|
+
assert_lex3("1.5e-3i", nil, :tIMAGINARY, Complex(0, 0.0015), :expr_end)
|
2752
|
+
|
2753
|
+
assert_lex3("-10i", nil,
|
2754
|
+
:tUMINUS_NUM, "-", :expr_beg,
|
2755
|
+
:tIMAGINARY, Complex(0, 10), :expr_end)
|
2756
|
+
end
|
2708
2757
|
|
2709
|
-
|
2710
|
-
|
2711
|
-
assert_lex3("1.2+3.4i", nil, :tIMAGINARY, "1.2+3.4i", :expr_end)
|
2712
|
-
assert_lex3("4r+3i", nil, :tIMAGINARY, "4r+3i", :expr_end)
|
2713
|
-
assert_lex3("4r+3ri", nil, :tIMAGINARY, "4r+3i", :expr_end)
|
2758
|
+
def test_ruby21_rational_imaginary_literal
|
2759
|
+
setup_lexer_class Ruby21Parser
|
2714
2760
|
|
2715
|
-
assert_lex3("
|
2716
|
-
assert_lex3("
|
2761
|
+
assert_lex3("1ri", nil, :tIMAGINARY, Complex(0, Rational(1)), :expr_end)
|
2762
|
+
assert_lex3("0x10ri", nil, :tIMAGINARY, Complex(0, Rational(16)), :expr_end)
|
2763
|
+
assert_lex3("0o10ri", nil, :tIMAGINARY, Complex(0, Rational(8)), :expr_end)
|
2764
|
+
assert_lex3("0ori", nil, :tIMAGINARY, Complex(0, Rational(0)), :expr_end)
|
2765
|
+
assert_lex3("0b10ri", nil, :tIMAGINARY, Complex(0, Rational(2)), :expr_end)
|
2766
|
+
assert_lex3("1.5ri", nil, :tIMAGINARY, Complex(0, Rational("1.5")), :expr_end)
|
2767
|
+
assert_lex3("15e3ri", nil, :tIMAGINARY, Complex(0, Rational("15e3")), :expr_end)
|
2768
|
+
assert_lex3("15e-3ri", nil, :tIMAGINARY, Complex(0, Rational("15e-3")), :expr_end)
|
2769
|
+
assert_lex3("1.5e3ri", nil, :tIMAGINARY, Complex(0, Rational("1.5e3")), :expr_end)
|
2770
|
+
assert_lex3("1.5e-3ri", nil, :tIMAGINARY, Complex(0, Rational("1.5e-3")), :expr_end)
|
2771
|
+
|
2772
|
+
assert_lex3("-10ri", nil,
|
2773
|
+
:tUMINUS_NUM, "-", :expr_beg,
|
2774
|
+
:tIMAGINARY, Complex(0, Rational(10)), :expr_end)
|
2775
|
+
end
|
2776
|
+
|
2777
|
+
def test_ruby21_imaginary_literal_with_succeeding_keyword
|
2778
|
+
skip "Currently does not tokenize correctly"
|
2779
|
+
|
2780
|
+
setup_lexer_class Ruby21Parser
|
2717
2781
|
|
2718
|
-
assert_lex3("
|
2719
|
-
|
2782
|
+
assert_lex3("1if", nil,
|
2783
|
+
:tINTEGER, 1, :expr_end,
|
2784
|
+
:kIF_MOD, "if", :expr_beg)
|
2785
|
+
assert_lex3("1rif", nil,
|
2786
|
+
:tRATIONAL, Rational(1), :expr_end,
|
2787
|
+
:kIF_MOD, "if", :expr_beg)
|
2788
|
+
assert_lex3("1.0if", nil,
|
2789
|
+
:tFLOAT, 1.0, :expr_end,
|
2790
|
+
:kIF_MOD, "if", :expr_beg)
|
2791
|
+
assert_lex3("1.0rif", nil,
|
2792
|
+
:tRATIONAL, Rational("1.0"), :expr_end,
|
2793
|
+
:kIF_MOD, "if", :expr_beg)
|
2720
2794
|
|
2721
2795
|
flunk
|
2722
2796
|
end
|
data/bundle/ruby/2.3.0/gems/{ruby_parser-3.8.2 → ruby_parser-3.8.3}/test/test_ruby_parser.rb
RENAMED
@@ -45,6 +45,11 @@ class RubyParserTestCase < ParseTreeTestCase
|
|
45
45
|
assert_equal pt, result
|
46
46
|
end
|
47
47
|
|
48
|
+
def refute_parse rb
|
49
|
+
self.result = processor.parse rb
|
50
|
+
assert_nil result
|
51
|
+
end
|
52
|
+
|
48
53
|
def assert_syntax_error rb, emsg
|
49
54
|
e = nil
|
50
55
|
assert_silent do
|
@@ -302,10 +307,9 @@ module TestRubyParserShared
|
|
302
307
|
|
303
308
|
def test_bug_comment_eq_begin
|
304
309
|
rb = "\n\n#\n=begin\nblah\n=end\n\n"
|
305
|
-
pt = nil
|
306
310
|
exp = rb.strip + "\n"
|
307
311
|
|
308
|
-
|
312
|
+
refute_parse rb
|
309
313
|
assert_equal exp, processor.lexer.comments
|
310
314
|
end
|
311
315
|
|
@@ -366,10 +370,7 @@ module TestRubyParserShared
|
|
366
370
|
end
|
367
371
|
|
368
372
|
def test_empty
|
369
|
-
|
370
|
-
pt = nil
|
371
|
-
|
372
|
-
assert_parse rb, pt
|
373
|
+
refute_parse ""
|
373
374
|
end
|
374
375
|
|
375
376
|
def test_evstr_evstr
|
@@ -1401,8 +1402,29 @@ module TestRubyParserShared
|
|
1401
1402
|
assert_parse rb, pt
|
1402
1403
|
end
|
1403
1404
|
|
1404
|
-
def
|
1405
|
-
|
1405
|
+
def test_array_line_breaks
|
1406
|
+
# It seems like arrays are roughly created when a certain element is created
|
1407
|
+
# In ruby > 1.9 it seems like that is after the last element, so the array
|
1408
|
+
# itself is assigned line 3 (since the last element is on line 3) and for
|
1409
|
+
# ruby <= 1.9 it seems to get created after the first element, so the array
|
1410
|
+
# itself is assigned line 2 (since the first element is on line 2).
|
1411
|
+
# This seems to happen since arrays like this are created with a line in
|
1412
|
+
# ruby_parser.yy like `result = s(:array, val[0])`. So, the array is not
|
1413
|
+
# created by itself. The creation of the array itself is deferred until there
|
1414
|
+
# is an element to create it with. That seems to mess up line numbers
|
1415
|
+
# for the array. Luckily, the arary elements all seemt to get the correct
|
1416
|
+
# line number.
|
1417
|
+
start_line = self.class.to_s =~ /1[89]/ ? 2 : 3
|
1418
|
+
rb = "[\n'a',\n'b']\n1"
|
1419
|
+
pt = s(:block,
|
1420
|
+
s(:array,
|
1421
|
+
s(:str, "a").line(2),
|
1422
|
+
s(:str, "b").line(3)).line(start_line),
|
1423
|
+
s(:lit, 1).line(4))
|
1424
|
+
assert_parse rb, pt
|
1425
|
+
end
|
1426
|
+
|
1427
|
+
def test_non_interpolated_word_array_line_breaks
|
1406
1428
|
|
1407
1429
|
rb = "%w(\na\nb\n)\n1"
|
1408
1430
|
pt = s(:block,
|
@@ -1410,7 +1432,17 @@ module TestRubyParserShared
|
|
1410
1432
|
s(:str, "a").line(2),
|
1411
1433
|
s(:str, "b").line(3)).line(1),
|
1412
1434
|
s(:lit, 1).line(5))
|
1435
|
+
assert_parse rb, pt
|
1436
|
+
end
|
1437
|
+
|
1438
|
+
def test_interpolated_word_array_line_breaks
|
1413
1439
|
|
1440
|
+
rb = "%W(\na\nb\n)\n1"
|
1441
|
+
pt = s(:block,
|
1442
|
+
s(:array,
|
1443
|
+
s(:str, "a").line(2),
|
1444
|
+
s(:str, "b").line(3)).line(1),
|
1445
|
+
s(:lit, 1).line(5))
|
1414
1446
|
assert_parse rb, pt
|
1415
1447
|
end
|
1416
1448
|
|
@@ -2187,6 +2219,28 @@ module TestRubyParserShared19to22
|
|
2187
2219
|
end
|
2188
2220
|
|
2189
2221
|
module TestRubyParserShared20to22
|
2222
|
+
def test_non_interpolated_symbol_array_line_breaks
|
2223
|
+
|
2224
|
+
rb = "%i(\na\nb\n)\n1"
|
2225
|
+
pt = s(:block,
|
2226
|
+
s(:array,
|
2227
|
+
s(:lit, :a).line(2),
|
2228
|
+
s(:lit, :b).line(3)).line(1),
|
2229
|
+
s(:lit, 1).line(5))
|
2230
|
+
assert_parse rb, pt
|
2231
|
+
end
|
2232
|
+
|
2233
|
+
def test_interpolated_symbol_array_line_breaks
|
2234
|
+
|
2235
|
+
rb = "%I(\na\nb\n)\n1"
|
2236
|
+
pt = s(:block,
|
2237
|
+
s(:array,
|
2238
|
+
s(:lit, :a).line(2),
|
2239
|
+
s(:lit, :b).line(3)).line(1),
|
2240
|
+
s(:lit, 1).line(5))
|
2241
|
+
assert_parse rb, pt
|
2242
|
+
end
|
2243
|
+
|
2190
2244
|
def test_defs_kwarg
|
2191
2245
|
rb = "def self.a b: 1\nend"
|
2192
2246
|
pt = s(:defs, s(:self), :a, s(:args, s(:kwarg, :b, s(:lit, 1))), s(:nil))
|
@@ -3504,8 +3558,47 @@ class TestRuby23Parser < RubyParserTestCase
|
|
3504
3558
|
|
3505
3559
|
assert_parse rb, pt
|
3506
3560
|
end
|
3507
|
-
end
|
3508
3561
|
|
3562
|
+
def test_ruby21_numbers
|
3563
|
+
rb = "[1i, 2r, 3ri]"
|
3564
|
+
pt = s(:array, s(:lit, Complex(0, 1)), s(:lit, Rational(2)), s(:lit, Complex(0, Rational(3))))
|
3565
|
+
|
3566
|
+
assert_parse rb, pt
|
3567
|
+
end
|
3568
|
+
|
3569
|
+
def test_float_with_if_modifier
|
3570
|
+
rb = "1.0if true"
|
3571
|
+
pt = s(:if, s(:true), s(:lit, 1.0), nil)
|
3572
|
+
|
3573
|
+
assert_parse rb, pt
|
3574
|
+
end
|
3575
|
+
|
3576
|
+
def test_integer_with_if_modifier
|
3577
|
+
rb = "1_234if true"
|
3578
|
+
pt = s(:if, s(:true), s(:lit, 1234), nil)
|
3579
|
+
|
3580
|
+
assert_parse rb, pt
|
3581
|
+
end
|
3582
|
+
|
3583
|
+
def test_slashy_newlines_within_string
|
3584
|
+
rb = %(puts "hello\\
|
3585
|
+
my\\
|
3586
|
+
dear\\
|
3587
|
+
friend"
|
3588
|
+
|
3589
|
+
a + b
|
3590
|
+
)
|
3591
|
+
|
3592
|
+
pt = s(:block,
|
3593
|
+
s(:call, nil, :puts, s(:str, "hello my dear friend").line(1)).line(1),
|
3594
|
+
s(:call, s(:call, nil, :a).line(6),
|
3595
|
+
:+,
|
3596
|
+
s(:call, nil, :b).line(6)).line(6)
|
3597
|
+
).line(1)
|
3598
|
+
|
3599
|
+
assert_parse rb, pt
|
3600
|
+
end
|
3601
|
+
end
|
3509
3602
|
|
3510
3603
|
[18, 19, 20, 21, 22, 23].each do |v|
|
3511
3604
|
describe "block args arity #{v}" do
|
@@ -1,3 +1,13 @@
|
|
1
|
+
1.7.3 / 2016-09-21
|
2
|
+
==================
|
3
|
+
|
4
|
+
* Fixed compatibility issues for Ruby 1.9, 2.0, 2.1. (@vivekbisen, #80)
|
5
|
+
|
6
|
+
1.7.2 / 2016-09-09
|
7
|
+
==================
|
8
|
+
|
9
|
+
* Fix packing table to a minimal width (@vizv, #76)
|
10
|
+
|
1
11
|
1.7.1 / 2016-08-29
|
2
12
|
==================
|
3
13
|
|
File without changes
|
File without changes
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.setup
|
3
|
+
Bundler::GemHelper.install_tasks
|
4
|
+
|
5
|
+
require 'rake'
|
6
|
+
require 'rspec/core/rake_task'
|
7
|
+
|
8
|
+
desc "Run all examples"
|
9
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
10
|
+
t.ruby_opts = %w[-w]
|
11
|
+
t.rspec_opts = %w[--color]
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Default: Run specs"
|
15
|
+
task :default => [:spec]
|
File without changes
|
data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/examples/examples.rb
RENAMED
File without changes
|
data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/lib/terminal-table.rb
RENAMED
File without changes
|
data/bundle/ruby/2.3.0/gems/{terminal-table-1.7.1 → terminal-table-1.7.3}/lib/terminal-table/cell.rb
RENAMED
File without changes
|
File without changes
|