sexp_processor 3.0.7 → 3.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +9 -0
- data/lib/pt_testcase.rb +145 -4
- data/lib/sexp_processor.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +7 -7
- metadata.gz.sig +0 -0
data/History.txt
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
=== 3.0.8 / 2011-11-16
|
2
|
+
|
3
|
+
* 4 minor enhancements:
|
4
|
+
|
5
|
+
* Add 6 missing ruby 1.9 tests (brynary)
|
6
|
+
* Added new 1.9 hash tests to pt_testcase.rb
|
7
|
+
* Version specific tests are now skipped at runtime, not test creation time
|
8
|
+
* Added new block arg tests.
|
9
|
+
|
1
10
|
=== 3.0.7 / 2011-09-21
|
2
11
|
|
3
12
|
* 2 bug fixes:
|
data/lib/pt_testcase.rb
CHANGED
@@ -72,12 +72,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def self.add_18tests name, hash
|
75
|
-
return unless RUBY_VERSION >= "1.8" and RUBY_VERSION < "1.9"
|
76
75
|
add_tests "#{name}__18", hash
|
77
76
|
end
|
78
77
|
|
79
78
|
def self.add_19tests name, hash
|
80
|
-
return unless RUBY_VERSION >= "1.9"
|
81
79
|
add_tests "#{name}__19", hash
|
82
80
|
end
|
83
81
|
|
@@ -98,9 +96,14 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
98
96
|
end
|
99
97
|
|
100
98
|
def self.generate_test klass, node, data, input_name, output_name
|
101
|
-
klass.send
|
99
|
+
klass.send :define_method, "test_#{node}" do
|
102
100
|
flunk "Processor is nil" if processor.nil?
|
103
101
|
|
102
|
+
if node =~ /(1[89])$/ then
|
103
|
+
version = $1
|
104
|
+
skip "version specific test" unless self.class.name =~ /#{version}/
|
105
|
+
end
|
106
|
+
|
104
107
|
assert data.has_key?(input_name), "Unknown input data"
|
105
108
|
assert data.has_key?(output_name), "Missing test data"
|
106
109
|
|
@@ -128,7 +131,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
128
131
|
# body into an assertion. It'll allow subclasses to hook in
|
129
132
|
# and add behavior before or after the processor does it's
|
130
133
|
# thing. If you go the body refactor route, some of the
|
131
|
-
# RawParseTree test
|
134
|
+
# RawParseTree test cases fail for completely bogus reasons.
|
132
135
|
|
133
136
|
before_process_hook klass, node, data, input_name, output_name
|
134
137
|
refute_nil data[input_name], "testcase does not exist?"
|
@@ -846,6 +849,11 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
846
849
|
"ParseTree" => s(:call, s(:call, nil, :o, s(:arglist)), :puts,
|
847
850
|
s(:arglist, s(:lit, 42))))
|
848
851
|
|
852
|
+
add_tests("call_no_space_symbol",
|
853
|
+
"Ruby" => "foo:bar",
|
854
|
+
"RawParseTree" => [:call, nil, :foo, [:array, [:lit, :bar]]],
|
855
|
+
"ParseTree" => s(:call, nil, :foo, s(:arglist, s(:lit, :bar))))
|
856
|
+
|
849
857
|
add_tests("call_arglist_hash",
|
850
858
|
"Ruby" => "o.m(:a => 1, :b => 2)",
|
851
859
|
"RawParseTree" => [:call,
|
@@ -4506,6 +4514,38 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4506
4514
|
s(:args, :"*rest", :mand),
|
4507
4515
|
s(:scope, s(:block, s(:nil)))))
|
4508
4516
|
|
4517
|
+
add_19tests("defn_args_mand_opt_splat_mand",
|
4518
|
+
"Ruby" => "def f(mand1, opt = 42, *rest, mand2)\n # do nothing\nend",
|
4519
|
+
"ParseTree" => s(:defn, :f,
|
4520
|
+
s(:args, :mand1, :opt, :"*rest", :mand2,
|
4521
|
+
s(:block,
|
4522
|
+
s(:lasgn, :opt, s(:lit, 42)))),
|
4523
|
+
s(:scope, s(:block, s(:nil)))))
|
4524
|
+
|
4525
|
+
add_19tests("defn_args_mand_opt_mand",
|
4526
|
+
"Ruby" => "def f(mand1, opt = 42, mand2)\n # do nothing\nend",
|
4527
|
+
"ParseTree" => s(:defn, :f,
|
4528
|
+
s(:args, :mand1, :opt, :mand2,
|
4529
|
+
s(:block,
|
4530
|
+
s(:lasgn, :opt, s(:lit, 42)))),
|
4531
|
+
s(:scope, s(:block, s(:nil)))))
|
4532
|
+
|
4533
|
+
add_19tests("defn_args_opt_splat_mand",
|
4534
|
+
"Ruby" => "def f(opt = 42, *rest, mand)\n # do nothing\nend",
|
4535
|
+
"ParseTree" => s(:defn, :f,
|
4536
|
+
s(:args, :opt, :"*rest", :mand,
|
4537
|
+
s(:block,
|
4538
|
+
s(:lasgn, :opt, s(:lit, 42)))),
|
4539
|
+
s(:scope, s(:block, s(:nil)))))
|
4540
|
+
|
4541
|
+
add_19tests("defn_args_opt_mand",
|
4542
|
+
"Ruby" => "def f(opt = 42, mand)\n # do nothing\nend",
|
4543
|
+
"ParseTree" => s(:defn, :f,
|
4544
|
+
s(:args, :opt, :mand,
|
4545
|
+
s(:block,
|
4546
|
+
s(:lasgn, :opt, s(:lit, 42)))),
|
4547
|
+
s(:scope, s(:block, s(:nil)))))
|
4548
|
+
|
4509
4549
|
add_19tests("defn_args_splat_middle",
|
4510
4550
|
"Ruby" => "def f(first, *middle, last)\n # do nothing\nend",
|
4511
4551
|
"RawParseTree" => [:defn, :f,
|
@@ -4539,6 +4579,22 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4539
4579
|
s(:lit, :a), s(:lit, 1),
|
4540
4580
|
s(:lit, :b), s(:lit, 2)))
|
4541
4581
|
|
4582
|
+
add_19tests("hash_new_no_space",
|
4583
|
+
"Ruby" => "{a:1,b:2}",
|
4584
|
+
"RawParseTree" => [:hash,
|
4585
|
+
[:lit, :a], [:lit, 1],
|
4586
|
+
[:lit, :b], [:lit, 2]],
|
4587
|
+
"ParseTree" => s(:hash,
|
4588
|
+
s(:lit, :a), s(:lit, 1),
|
4589
|
+
s(:lit, :b), s(:lit, 2)))
|
4590
|
+
|
4591
|
+
add_19tests("lambda_args_block",
|
4592
|
+
"Ruby" => "lambda { |&block| block }",
|
4593
|
+
"ParseTree" => s(:iter,
|
4594
|
+
s(:call, nil, :lambda, s(:arglist)),
|
4595
|
+
s(:lasgn, :"&block"),
|
4596
|
+
s(:lvar, :block)))
|
4597
|
+
|
4542
4598
|
add_19tests("lambda_args_0",
|
4543
4599
|
"Ruby" => "->(){ (x + 1) }",
|
4544
4600
|
"RawParseTree" => [:iter,
|
@@ -4615,6 +4671,91 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4615
4671
|
s(:call, s(:call, nil, :x, s(:arglist)),
|
4616
4672
|
:+, s(:arglist, s(:lit, 1)))))
|
4617
4673
|
|
4674
|
+
add_19tests("lambda_args_no_do",
|
4675
|
+
"Ruby" => "-> do (x + 1) end",
|
4676
|
+
"RawParseTree" => [:iter,
|
4677
|
+
[:fcall, :lambda],
|
4678
|
+
nil,
|
4679
|
+
[:call, [:vcall, :x], :+,
|
4680
|
+
[:array, [:lit, 1]]]],
|
4681
|
+
"ParseTree" => s(:iter,
|
4682
|
+
s(:call, nil, :lambda, s(:arglist)),
|
4683
|
+
nil,
|
4684
|
+
s(:call, s(:call, nil, :x, s(:arglist)),
|
4685
|
+
:+, s(:arglist, s(:lit, 1)))))
|
4686
|
+
|
4687
|
+
add_19tests("lambda_args_0_do",
|
4688
|
+
"Ruby" => "->() do (x + 1) end",
|
4689
|
+
"RawParseTree" => [:iter,
|
4690
|
+
[:fcall, :lambda],
|
4691
|
+
0,
|
4692
|
+
[:call, [:vcall, :x], :+,
|
4693
|
+
[:array, [:lit, 1]]]],
|
4694
|
+
"ParseTree" => s(:iter,
|
4695
|
+
s(:call, nil, :lambda, s(:arglist)),
|
4696
|
+
0,
|
4697
|
+
s(:call,
|
4698
|
+
s(:call, nil, :x, s(:arglist)),
|
4699
|
+
:+,
|
4700
|
+
s(:arglist, s(:lit, 1)))))
|
4701
|
+
|
4702
|
+
add_19tests("lambda_args_1_do",
|
4703
|
+
"Ruby" => "-> (x) do (x + 1) end",
|
4704
|
+
"RawParseTree" => [:iter,
|
4705
|
+
[:fcall, :lambda],
|
4706
|
+
[:dasgn_curr, :x],
|
4707
|
+
[:call, [:dvar, :x], :+, [:array, [:lit, 1]]]],
|
4708
|
+
"ParseTree" => s(:iter,
|
4709
|
+
s(:call, nil, :lambda, s(:arglist)),
|
4710
|
+
s(:lasgn, :x),
|
4711
|
+
s(:call, s(:lvar, :x), :+,
|
4712
|
+
s(:arglist, s(:lit, 1)))))
|
4713
|
+
|
4714
|
+
add_19tests("lambda_args_2_do",
|
4715
|
+
"Ruby" => "-> (x, y) do (x + y) end",
|
4716
|
+
"RawParseTree" => [:iter,
|
4717
|
+
[:fcall, :lambda],
|
4718
|
+
[:masgn, [:array,
|
4719
|
+
[:dasgn_curr, :x],
|
4720
|
+
[:dasgn_curr, :y]], nil, nil],
|
4721
|
+
[:call, [:dvar, :x], :+,
|
4722
|
+
[:array, [:dvar, :y]]]],
|
4723
|
+
"ParseTree" => s(:iter,
|
4724
|
+
s(:call, nil, :lambda, s(:arglist)),
|
4725
|
+
s(:masgn,
|
4726
|
+
s(:array,
|
4727
|
+
s(:lasgn, :x),
|
4728
|
+
s(:lasgn, :y))),
|
4729
|
+
s(:call, s(:lvar, :x), :+,
|
4730
|
+
s(:arglist, s(:lvar, :y)))))
|
4731
|
+
|
4732
|
+
add_19tests("lambda_args_2_no_parens_do",
|
4733
|
+
"Ruby" => "-> x, y do (x + y) end",
|
4734
|
+
"RawParseTree" => [:iter,
|
4735
|
+
[:fcall, :lambda],
|
4736
|
+
[:masgn, [:array,
|
4737
|
+
[:dasgn_curr, :x],
|
4738
|
+
[:dasgn_curr, :y]], nil, nil],
|
4739
|
+
[:call, [:dvar, :x], :+,
|
4740
|
+
[:array, [:dvar, :y]]]],
|
4741
|
+
"ParseTree" => s(:iter,
|
4742
|
+
s(:call, nil, :lambda, s(:arglist)),
|
4743
|
+
s(:masgn,
|
4744
|
+
s(:array,
|
4745
|
+
s(:lasgn, :x),
|
4746
|
+
s(:lasgn, :y))),
|
4747
|
+
s(:call, s(:lvar, :x), :+,
|
4748
|
+
s(:arglist, s(:lvar, :y)))))
|
4749
|
+
|
4750
|
+
add_19tests("hash_new_with_keyword",
|
4751
|
+
"Ruby" => "{ true: 1, b: 2 }",
|
4752
|
+
"RawParseTree" => [:hash,
|
4753
|
+
[:lit, :true], [:lit, 1],
|
4754
|
+
[:lit, :b], [:lit, 2]],
|
4755
|
+
"ParseTree" => s(:hash,
|
4756
|
+
s(:lit, :true), s(:lit, 1),
|
4757
|
+
s(:lit, :b), s(:lit, 2)))
|
4758
|
+
|
4618
4759
|
add_19tests("splat_fcall_middle",
|
4619
4760
|
"Ruby" => "meth(1, *[2], 3)",
|
4620
4761
|
"RawParseTree" => [:fcall, :meth,
|
data/lib/sexp_processor.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sexp_processor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 3.0.
|
9
|
+
- 8
|
10
|
+
version: 3.0.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Davis
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
FBHgymkyj/AOSqKRIpXPhjC6
|
37
37
|
-----END CERTIFICATE-----
|
38
38
|
|
39
|
-
date: 2011-
|
39
|
+
date: 2011-11-17 00:00:00 Z
|
40
40
|
dependencies:
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rdoc
|
@@ -61,11 +61,11 @@ dependencies:
|
|
61
61
|
requirements:
|
62
62
|
- - ~>
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
hash:
|
64
|
+
hash: 13
|
65
65
|
segments:
|
66
66
|
- 2
|
67
|
-
-
|
68
|
-
version: "2.
|
67
|
+
- 7
|
68
|
+
version: "2.7"
|
69
69
|
type: :development
|
70
70
|
version_requirements: *id002
|
71
71
|
- !ruby/object:Gem::Dependency
|
metadata.gz.sig
CHANGED
Binary file
|