sexp_processor 4.9.0 → 4.10.0b1

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.
@@ -1,78 +1,86 @@
1
1
  $TESTING = true
2
2
 
3
- require 'sexp_processor'
4
- require 'stringio'
5
- require 'minitest/autorun'
6
- require 'pp'
3
+ if ENV["COV"]
4
+ require "simplecov"
5
+ SimpleCov.start do
6
+ add_filter "lib/sexp.rb"
7
+ add_filter "test"
8
+ end
9
+ warn "Running simplecov"
10
+ end
11
+
12
+ require "sexp_processor"
13
+ require "stringio"
14
+ require "minitest/autorun"
15
+ require "pp"
7
16
 
8
17
  # Fake test classes:
9
18
 
10
19
  class TestProcessor < SexpProcessor # ZenTest SKIP
11
20
  attr_accessor :auto_shift_type
12
21
 
13
- def process_acc1(exp)
22
+ def initialize
23
+ super
24
+ self.require_empty = false
25
+ self.auto_shift_type = false
26
+ end
27
+
28
+ def process_acc1 exp
14
29
  out = self.expected.new(:acc2, exp.thing_three, exp.thing_two, exp.thing_one)
15
30
  exp.clear
16
- return out
31
+ out
17
32
  end
18
33
 
19
- def process_acc2(exp)
20
- out = []
34
+ def process_acc2 exp
35
+ out = s()
21
36
  out << exp.thing_one
22
37
  end
23
38
 
24
- def process_specific(exp)
25
- _ = exp.shift
26
- result = s(:blah)
27
- until exp.empty?
28
- result.push process(exp.shift)
29
- end
30
- result
39
+ def process_specific exp
40
+ _, *data = exp
41
+ s(:blah, *data.map { |x| process x })
31
42
  end
32
43
 
33
- def process_strip(exp)
34
- result = exp.deep_clone
35
- exp.clear
36
- result
44
+ def process_strip exp
45
+ exp.deep_clone
37
46
  end
38
47
 
39
- def process_nonempty(exp)
48
+ def process_nonempty exp
40
49
  s(*exp)
41
50
  end
42
51
 
43
- def process_broken(exp)
52
+ def process_broken exp
44
53
  result = [*exp]
45
54
  exp.clear
46
55
  result
47
56
  end
48
57
 
49
- def process_expected(exp)
58
+ def process_expected exp
50
59
  exp.clear
51
- return {}
60
+ {}
52
61
  end
53
62
 
54
- def process_string(exp)
55
- return exp.shift
63
+ def process_string exp
64
+ exp.sexp_type
56
65
  end
57
66
 
58
- def rewrite_rewritable(exp) # (a b c) => (a c b)
59
- return s(exp.shift, exp.pop, exp.shift)
67
+ def rewrite_rewritable exp # (a b c) => (a c b)
68
+ a, b, c = exp
69
+ s(a, c, b)
60
70
  end
61
71
 
62
- def process_rewritable(exp)
72
+ def process_rewritable exp
73
+ _, *data = exp
74
+
63
75
  @n ||= 0
64
- exp.shift # name
65
- result = s(:rewritten)
66
- until exp.empty?
67
- result.push process(exp.shift)
68
- end
69
- result.push @n
76
+ result = s(:rewritten, *data.map { |x| process x }, @n)
70
77
  @n += 1
78
+
71
79
  result
72
80
  end
73
81
 
74
- def rewrite_major_rewrite(exp)
75
- exp[0] = :rewritable
82
+ def rewrite_major_rewrite exp
83
+ exp.sexp_type = :rewritable
76
84
  exp
77
85
  end
78
86
  end
@@ -83,7 +91,7 @@ class TestProcessorDefault < SexpProcessor # ZenTest SKIP
83
91
  self.default_method = :def_method
84
92
  end
85
93
 
86
- def def_method(exp)
94
+ def def_method exp
87
95
  exp.clear
88
96
  self.expected.new(42)
89
97
  end
@@ -98,13 +106,13 @@ class TestSexpProcessor < Minitest::Test
98
106
  end
99
107
 
100
108
  def test_process_specific
101
- a = [:specific, [:x, 1], [:y, 2], [:z, 3]]
102
- expected = [:blah, [:x, 1], [:y, 2], [:z, 3]]
109
+ a = s(:specific, s(:x, 1), s(:y, 2), s(:z, 3))
110
+ expected = s(:blah, s(:x, 1), s(:y, 2), s(:z, 3))
103
111
  assert_equal(expected, @processor.process(a))
104
112
  end
105
113
 
106
114
  def test_process_generic
107
- a = [:blah, 1, 2, 3]
115
+ a = s(:blah, 1, 2, 3)
108
116
  expected = a.deep_clone
109
117
  assert_equal(expected, @processor.process(a))
110
118
  end
@@ -122,7 +130,7 @@ class TestSexpProcessor < Minitest::Test
122
130
  @processor.warn_on_default = false
123
131
 
124
132
  assert_raises SexpTypeError do
125
- @processor.process([:broken, 1, 2, 3])
133
+ @processor.process(s(:broken, 1, 2, 3))
126
134
  end
127
135
  end
128
136
 
@@ -131,7 +139,7 @@ class TestSexpProcessor < Minitest::Test
131
139
  @processor.unsupported << :strip
132
140
 
133
141
  assert_raises UnsupportedNodeError do
134
- @processor.process([:whatever])
142
+ @processor.process(s(:whatever))
135
143
  end
136
144
  end
137
145
 
@@ -139,29 +147,32 @@ class TestSexpProcessor < Minitest::Test
139
147
  @processor.strict = true
140
148
  @processor.unsupported = [ :unsupported ]
141
149
  assert_raises UnsupportedNodeError do
142
- @processor.process([:unsupported, 42])
150
+ @processor.process(s(:unsupported, 42))
143
151
  end
144
152
  end
145
153
 
146
154
  def test_strict
147
155
  @processor.strict = true
148
156
  assert_raises UnknownNodeError do
149
- @processor.process([:blah, 1, 2, 3])
157
+ @processor.process(s(:blah, 1, 2, 3))
150
158
  end
151
159
  end
152
- def test_strict=; skip; end #Handled
160
+
161
+ def test_strict=; skip; end # handled
153
162
 
154
163
  def test_require_empty_false
155
164
  @processor.require_empty = false
156
165
 
157
- assert_equal s(:nonempty, 1, 2, 3), @processor.process([:nonempty, 1, 2, 3])
166
+ assert_equal s(:nonempty, 1, 2, 3), @processor.process(s(:nonempty, 1, 2, 3))
158
167
  end
159
168
 
160
169
  def test_require_empty_true
161
170
  assert_raises NotEmptyError do
162
- @processor.process([:nonempty, 1, 2, 3])
171
+ @processor.require_empty = true
172
+ @processor.process(s(:nonempty, 1, 2, 3))
163
173
  end
164
174
  end
175
+
165
176
  def test_require_empty=; skip; end # handled
166
177
 
167
178
  def test_process_strip
@@ -189,7 +200,6 @@ class TestSexpProcessor < Minitest::Test
189
200
  expect = s(:rewritable, 2, 1)
190
201
  result = @processor.rewrite(insert)
191
202
  assert_equal(expect, result)
192
- assert_equal(s(2), insert) # post-processing
193
203
  end
194
204
 
195
205
  def test_process_rewrite
@@ -256,6 +266,7 @@ class TestSexpProcessor < Minitest::Test
256
266
  @processor.auto_shift_type = true
257
267
  assert_equal(true, @processor.auto_shift_type)
258
268
  end
269
+
259
270
  def test_auto_shift_type_equal; skip; end # handled
260
271
 
261
272
  def test_default_method
@@ -264,12 +275,13 @@ class TestSexpProcessor < Minitest::Test
264
275
  @processor.default_method = :something
265
276
  assert_equal :something, @processor.default_method
266
277
  end
278
+
267
279
  def test_default_method=; skip; end # handled
268
280
 
269
281
  def test_expected
270
282
  assert_equal Sexp, @processor.expected
271
283
  assert_raises SexpTypeError do
272
- @processor.process([:expected]) # should raise
284
+ @processor.process(s(:expected)) # should raise
273
285
  end
274
286
 
275
287
  @processor.process(s(:str, "string")) # shouldn't raise
@@ -282,8 +294,9 @@ class TestSexpProcessor < Minitest::Test
282
294
  @processor.process(s(:string, "string")) # should raise
283
295
  end
284
296
 
285
- @processor.process([:expected]) # shouldn't raise
297
+ @processor.process(s(:expected)) # shouldn't raise
286
298
  end
299
+
287
300
  def test_expected=; skip; end # handled
288
301
 
289
302
  # Not Testing:
@@ -323,7 +336,7 @@ class TestMethodBasedSexpProcessor < Minitest::Test
323
336
 
324
337
  assert_empty processor.method_stack
325
338
 
326
- expected = {"main#xxx" => "file.rb:42"}
339
+ expected = { "main#xxx" => "file.rb:42" }
327
340
  assert_equal expected, processor.method_locations
328
341
  end
329
342
 
@@ -336,7 +349,7 @@ class TestMethodBasedSexpProcessor < Minitest::Test
336
349
 
337
350
  assert_empty processor.method_stack
338
351
 
339
- expected = {"main#xxx" => "file.rb:42-44"}
352
+ expected = { "main#xxx" => "file.rb:42-44" }
340
353
  assert_equal expected, processor.method_locations
341
354
  end
342
355
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sexp_processor
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.9.0
4
+ version: 4.10.0b1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -30,7 +30,7 @@ cert_chain:
30
30
  E4oJcnPkJAr0rw504JGtlZtONZQblwmRJOIdXzolaE3NRGUzGVOUSptZppAKiavY
31
31
  fO6tdKQc/5RfA8oQEkg8hrxA5PQSz4TOFJGLpFvIapEk6tMruQ0bHgkhr9auXg==
32
32
  -----END CERTIFICATE-----
33
- date: 2017-04-13 00:00:00.000000000 Z
33
+ date: 2017-06-13 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: rdoc
@@ -81,6 +81,7 @@ files:
81
81
  - lib/pt_testcase.rb
82
82
  - lib/sexp.rb
83
83
  - lib/sexp_processor.rb
84
+ - lib/strict_sexp.rb
84
85
  - lib/unique.rb
85
86
  - test/test_composite_sexp_processor.rb
86
87
  - test/test_environment.rb
@@ -103,9 +104,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
104
  version: '0'
104
105
  required_rubygems_version: !ruby/object:Gem::Requirement
105
106
  requirements:
106
- - - ">="
107
+ - - ">"
107
108
  - !ruby/object:Gem::Version
108
- version: '0'
109
+ version: 1.3.1
109
110
  requirements: []
110
111
  rubyforge_project:
111
112
  rubygems_version: 2.6.8
metadata.gz.sig CHANGED
Binary file