seeing_is_believing 3.3.0 → 4.0.1

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.
Files changed (46) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/test.yml +39 -0
  3. data/{Readme.md → README.md} +9 -12
  4. data/Rakefile +12 -23
  5. data/appveyor.yml +3 -1
  6. data/features/flags.feature +251 -1
  7. data/features/regression.feature +166 -23
  8. data/features/xmpfilter-style.feature +1 -0
  9. data/lib/seeing_is_believing.rb +5 -2
  10. data/lib/seeing_is_believing/binary.rb +6 -1
  11. data/lib/seeing_is_believing/binary/annotate_end_of_file.rb +1 -1
  12. data/lib/seeing_is_believing/binary/annotate_marked_lines.rb +8 -5
  13. data/lib/seeing_is_believing/binary/comment_lines.rb +2 -2
  14. data/lib/seeing_is_believing/binary/commentable_lines.rb +7 -7
  15. data/lib/seeing_is_believing/binary/config.rb +21 -4
  16. data/lib/seeing_is_believing/binary/engine.rb +58 -1
  17. data/lib/seeing_is_believing/binary/format_comment.rb +9 -6
  18. data/lib/seeing_is_believing/binary/remove_annotations.rb +1 -1
  19. data/lib/seeing_is_believing/code.rb +5 -5
  20. data/lib/seeing_is_believing/compatibility.rb +28 -0
  21. data/lib/seeing_is_believing/evaluate_by_moving_files.rb +52 -71
  22. data/lib/seeing_is_believing/event_stream/consumer.rb +26 -28
  23. data/lib/seeing_is_believing/event_stream/events.rb +7 -0
  24. data/lib/seeing_is_believing/event_stream/handlers/record_exit_events.rb +3 -3
  25. data/lib/seeing_is_believing/event_stream/handlers/update_result.rb +2 -1
  26. data/lib/seeing_is_believing/event_stream/producer.rb +29 -5
  27. data/lib/seeing_is_believing/safe.rb +8 -7
  28. data/lib/seeing_is_believing/swap_files.rb +90 -0
  29. data/lib/seeing_is_believing/the_matrix.rb +17 -4
  30. data/lib/seeing_is_believing/version.rb +1 -1
  31. data/lib/seeing_is_believing/wrap_expressions.rb +27 -13
  32. data/lib/seeing_is_believing/wrap_expressions_with_inspect.rb +4 -1
  33. data/seeing_is_believing.gemspec +4 -6
  34. data/spec/binary/config_spec.rb +63 -35
  35. data/spec/binary/engine_spec.rb +11 -1
  36. data/spec/binary/format_comment_spec.rb +5 -1
  37. data/spec/evaluate_by_moving_files_spec.rb +35 -18
  38. data/spec/event_stream_spec.rb +15 -0
  39. data/spec/seeing_is_believing_spec.rb +148 -26
  40. data/spec/sib_spec_helpers/version.rb +17 -0
  41. data/spec/spec_helper.rb +2 -18
  42. data/spec/wrap_expressions_spec.rb +9 -2
  43. metadata +31 -31
  44. data/.travis.yml +0 -10
  45. data/lib/seeing_is_believing/customize_pp.rb +0 -5
  46. data/spec/binary/options_spec.rb +0 -0
@@ -0,0 +1,17 @@
1
+ module SibSpecHelpers
2
+ class Version
3
+ attr_reader :segments
4
+ include Comparable
5
+ def initialize(version_string)
6
+ @segments = version_string.scan(/\d+/).map(&:to_i)
7
+ end
8
+ def <=>(other)
9
+ other = Version.new other unless other.kind_of? Version
10
+ segments.zip(other.segments).each do |ours, theirs|
11
+ return 1 if theirs.nil? || theirs < ours
12
+ return -1 if ours < theirs
13
+ end
14
+ segments.length <=> other.segments.length
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,5 @@
1
+ require 'sib_spec_helpers/version'
2
+
1
3
  module SibSpecHelpers
2
4
  def pending!(message="Not yet implemented")
3
5
  pending message
@@ -7,24 +9,6 @@ module SibSpecHelpers
7
9
  def ruby_version
8
10
  Version.new RUBY_VERSION
9
11
  end
10
-
11
-
12
- class Version
13
- attr_reader :segments
14
- include Comparable
15
- def initialize(version_string)
16
- @segments = version_string.scan(/\d+/).map(&:to_i)
17
- end
18
- def <=>(other)
19
- other = Version.new other unless other.kind_of? Version
20
- segments.zip(other.segments).each do |ours, theirs|
21
- return 1 if theirs.nil? || theirs < ours
22
- return -1 if ours < theirs
23
- end
24
- segments.length <=> other.segments.length
25
- end
26
- end
27
-
28
12
  end
29
13
 
30
14
  RSpec.configure do |c|
@@ -334,6 +334,14 @@ RSpec.describe SeeingIsBelieving::WrapExpressions do
334
334
  it 'wraps the array equivalent' do
335
335
  expect(wrap("a,* =[1,2,3]")).to eq "<a,* =[1,2,3]>"
336
336
  expect(wrap("a,* = [ 1,2,3 ] ")).to eq "<a,* = [ 1,2,3 ]> "
337
+ expect(wrap("a,* = 1,2,3")).to eq "<a,* = 1,2,3>"
338
+ end
339
+
340
+ it 'wraps the array elements' do
341
+ expect(wrap("a,* = [ 1,2,\n3 ] ")).to eq "<a,* = [ 1,<2>,\n3 ]> "
342
+ expect(wrap("a,* = 1,2,\n3")).to eq "<a,* = 1,<2>,\n3>"
343
+ expect(wrap("a = [ 1,2,\n3 ] ")).to eq "<a = [ 1,<2>,\n3 ]> "
344
+ expect(wrap("a = 1,2,\n3")).to eq "<a = 1,<2>,\n3>"
337
345
  end
338
346
 
339
347
  it 'wraps repeated assignments' do
@@ -586,7 +594,7 @@ RSpec.describe SeeingIsBelieving::WrapExpressions do
586
594
  expect(wrap("%w[\n1\n]")).to eq "<%w[\n1\n]>"
587
595
  end
588
596
 
589
- it 'does wraps splat elements' do
597
+ it 'wraps splat elements' do
590
598
  expect(wrap("[1,\n*2..3,\n4\n]")).to eq "<[<1>,\n*<2..3>,\n<4>\n]>"
591
599
  end
592
600
  end
@@ -708,7 +716,6 @@ RSpec.describe SeeingIsBelieving::WrapExpressions do
708
716
  expect(wrap("begin\nrescue Exception\n$!\nend")).to eq "<begin\nrescue Exception\n<$!>\nend>"
709
717
  end
710
718
  it 'wraps inline rescues' do
711
- pending "can't figure out how to identify these as different from begin/rescue/end"
712
719
  expect(wrap("1 rescue nil")).to eq "<1 rescue nil>"
713
720
  end
714
721
  it 'wraps the bodies' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seeing_is_believing
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Cheek
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-11 00:00:00.000000000 Z
11
+ date: 2021-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -16,28 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.4.0
19
+ version: 2.7.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.4.0
26
+ version: 2.7.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: childprocess
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.7.1
33
+ version: 3.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.7.1
40
+ version: 3.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: ffi
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.11.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.11.1
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: pry
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -78,28 +92,14 @@ dependencies:
78
92
  requirements:
79
93
  - - "~>"
80
94
  - !ruby/object:Gem::Version
81
- version: 12.0.0
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: 12.0.0
89
- - !ruby/object:Gem::Dependency
90
- name: mrspec
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: 0.3.1
95
+ version: 13.0.0
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: 0.3.1
102
+ version: 13.0.0
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: rspec
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -152,12 +152,12 @@ executables:
152
152
  extensions: []
153
153
  extra_rdoc_files: []
154
154
  files:
155
+ - ".github/workflows/test.yml"
155
156
  - ".gitignore"
156
157
  - ".rspec"
157
- - ".travis.yml"
158
158
  - Gemfile
159
+ - README.md
159
160
  - Rakefile
160
- - Readme.md
161
161
  - appveyor.yml
162
162
  - bin/seeing_is_believing
163
163
  - docs/example.gif
@@ -188,7 +188,7 @@ files:
188
188
  - lib/seeing_is_believing/binary/remove_annotations.rb
189
189
  - lib/seeing_is_believing/binary/rewrite_comments.rb
190
190
  - lib/seeing_is_believing/code.rb
191
- - lib/seeing_is_believing/customize_pp.rb
191
+ - lib/seeing_is_believing/compatibility.rb
192
192
  - lib/seeing_is_believing/debugger.rb
193
193
  - lib/seeing_is_believing/error.rb
194
194
  - lib/seeing_is_believing/evaluate_by_moving_files.rb
@@ -203,6 +203,7 @@ files:
203
203
  - lib/seeing_is_believing/hash_struct.rb
204
204
  - lib/seeing_is_believing/result.rb
205
205
  - lib/seeing_is_believing/safe.rb
206
+ - lib/seeing_is_believing/swap_files.rb
206
207
  - lib/seeing_is_believing/the_matrix.rb
207
208
  - lib/seeing_is_believing/version.rb
208
209
  - lib/seeing_is_believing/wrap_expressions.rb
@@ -214,7 +215,6 @@ files:
214
215
  - spec/binary/engine_spec.rb
215
216
  - spec/binary/format_comment_spec.rb
216
217
  - spec/binary/marker_spec.rb
217
- - spec/binary/options_spec.rb
218
218
  - spec/binary/remove_annotations_spec.rb
219
219
  - spec/binary/rewrite_comments_spec.rb
220
220
  - spec/code_spec.rb
@@ -224,6 +224,7 @@ files:
224
224
  - spec/hard_core_ensure_spec.rb
225
225
  - spec/hash_struct_spec.rb
226
226
  - spec/seeing_is_believing_spec.rb
227
+ - spec/sib_spec_helpers/version.rb
227
228
  - spec/spec_helper.rb
228
229
  - spec/spec_helper_spec.rb
229
230
  - spec/wrap_expressions_spec.rb
@@ -286,9 +287,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
286
287
  - !ruby/object:Gem::Version
287
288
  version: '0'
288
289
  requirements: []
289
- rubyforge_project: seeing_is_believing
290
- rubygems_version: 2.5.2
291
- signing_key:
290
+ rubygems_version: 3.2.3
291
+ signing_key:
292
292
  specification_version: 4
293
293
  summary: Records results of every line of code in your file
294
294
  test_files:
@@ -305,7 +305,6 @@ test_files:
305
305
  - spec/binary/engine_spec.rb
306
306
  - spec/binary/format_comment_spec.rb
307
307
  - spec/binary/marker_spec.rb
308
- - spec/binary/options_spec.rb
309
308
  - spec/binary/remove_annotations_spec.rb
310
309
  - spec/binary/rewrite_comments_spec.rb
311
310
  - spec/code_spec.rb
@@ -315,6 +314,7 @@ test_files:
315
314
  - spec/hard_core_ensure_spec.rb
316
315
  - spec/hash_struct_spec.rb
317
316
  - spec/seeing_is_believing_spec.rb
317
+ - spec/sib_spec_helpers/version.rb
318
318
  - spec/spec_helper.rb
319
319
  - spec/spec_helper_spec.rb
320
320
  - spec/wrap_expressions_spec.rb
@@ -1,10 +0,0 @@
1
- language: ruby
2
- before_install: gem install bundler
3
- install: rake install
4
- script: bundle exec rake ci
5
- rvm:
6
- - 2.0.0
7
- - 2.1.2
8
- - 2.2.0
9
- - 2.3.1
10
- - 2.4.1
@@ -1,5 +0,0 @@
1
- class String
2
- def pretty_print(pp)
3
- pp.text inspect.gsub(/\\n(?!")/, '\n" +'+"\n"+'"')
4
- end
5
- end
File without changes