seeing_is_believing 3.6.1 → 4.0.0

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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -5
  3. data/Rakefile +2 -0
  4. data/Readme.md +1 -1
  5. data/appveyor.yml +3 -5
  6. data/features/regression.feature +7 -0
  7. data/features/xmpfilter-style.feature +1 -0
  8. data/lib/seeing_is_believing.rb +2 -1
  9. data/lib/seeing_is_believing/binary.rb +1 -1
  10. data/lib/seeing_is_believing/binary/annotate_marked_lines.rb +1 -0
  11. data/lib/seeing_is_believing/binary/comment_lines.rb +1 -1
  12. data/lib/seeing_is_believing/binary/commentable_lines.rb +7 -7
  13. data/lib/seeing_is_believing/binary/config.rb +1 -3
  14. data/lib/seeing_is_believing/binary/remove_annotations.rb +1 -1
  15. data/lib/seeing_is_believing/code.rb +3 -3
  16. data/lib/seeing_is_believing/evaluate_by_moving_files.rb +30 -32
  17. data/lib/seeing_is_believing/event_stream/consumer.rb +2 -0
  18. data/lib/seeing_is_believing/event_stream/events.rb +7 -0
  19. data/lib/seeing_is_believing/event_stream/handlers/record_exit_events.rb +3 -3
  20. data/lib/seeing_is_believing/event_stream/handlers/update_result.rb +2 -1
  21. data/lib/seeing_is_believing/event_stream/producer.rb +14 -0
  22. data/lib/seeing_is_believing/safe.rb +1 -7
  23. data/lib/seeing_is_believing/swap_files.rb +90 -0
  24. data/lib/seeing_is_believing/the_matrix.rb +17 -4
  25. data/lib/seeing_is_believing/version.rb +1 -1
  26. data/lib/seeing_is_believing/wrap_expressions.rb +22 -8
  27. data/lib/seeing_is_believing/wrap_expressions_with_inspect.rb +3 -0
  28. data/seeing_is_believing.gemspec +4 -5
  29. data/spec/binary/config_spec.rb +2 -2
  30. data/spec/evaluate_by_moving_files_spec.rb +18 -17
  31. data/spec/event_stream_spec.rb +1 -0
  32. data/spec/seeing_is_believing_spec.rb +99 -24
  33. data/spec/sib_spec_helpers/version.rb +17 -0
  34. data/spec/spec_helper.rb +2 -18
  35. data/spec/wrap_expressions_spec.rb +9 -3
  36. metadata +26 -12
  37. data/lib/seeing_is_believing/backup_file.rb +0 -50
  38. data/lib/seeing_is_believing/customize_pp.rb +0 -5
@@ -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
@@ -809,7 +816,6 @@ RSpec.describe SeeingIsBelieving::WrapExpressions do
809
816
  expect(wrap("def a\n1\nrescue\n2\nend")).to eq "<def a\n<1>\nrescue\n<2>\nend>"
810
817
  expect(wrap("def a\n1\nrescue\n2\nensure\n3\nend")).to eq "<def a\n<1>\nrescue\n<2>\nensure\n<3>\nend>"
811
818
  expect(wrap("def a\n1\nensure\n2\nend")).to eq "<def a\n<1>\nensure\n<2>\nend>"
812
- expect(wrap("def a\n1\nelse 2\nend")).to eq "<def a\n<1>\nelse <2>\nend>"
813
819
  end
814
820
 
815
821
  it 'wrap a definition as a call to an invocation' 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.6.1
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Cheek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-04 00:00:00.000000000 Z
11
+ date: 2020-04-03 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.5.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.5.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.8.0
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.8.0
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,14 +92,14 @@ dependencies:
78
92
  requirements:
79
93
  - - "~>"
80
94
  - !ruby/object:Gem::Version
81
- version: 12.2.0
95
+ version: 13.0.0
82
96
  type: :development
83
97
  prerelease: false
84
98
  version_requirements: !ruby/object:Gem::Requirement
85
99
  requirements:
86
100
  - - "~>"
87
101
  - !ruby/object:Gem::Version
88
- version: 12.2.0
102
+ version: 13.0.0
89
103
  - !ruby/object:Gem::Dependency
90
104
  name: mrspec
91
105
  requirement: !ruby/object:Gem::Requirement
@@ -171,7 +185,6 @@ files:
171
185
  - features/support/env.rb
172
186
  - features/xmpfilter-style.feature
173
187
  - lib/seeing_is_believing.rb
174
- - lib/seeing_is_believing/backup_file.rb
175
188
  - lib/seeing_is_believing/binary.rb
176
189
  - lib/seeing_is_believing/binary/align_chunk.rb
177
190
  - lib/seeing_is_believing/binary/align_file.rb
@@ -190,7 +203,6 @@ files:
190
203
  - lib/seeing_is_believing/binary/rewrite_comments.rb
191
204
  - lib/seeing_is_believing/code.rb
192
205
  - lib/seeing_is_believing/compatibility.rb
193
- - lib/seeing_is_believing/customize_pp.rb
194
206
  - lib/seeing_is_believing/debugger.rb
195
207
  - lib/seeing_is_believing/error.rb
196
208
  - lib/seeing_is_believing/evaluate_by_moving_files.rb
@@ -205,6 +217,7 @@ files:
205
217
  - lib/seeing_is_believing/hash_struct.rb
206
218
  - lib/seeing_is_believing/result.rb
207
219
  - lib/seeing_is_believing/safe.rb
220
+ - lib/seeing_is_believing/swap_files.rb
208
221
  - lib/seeing_is_believing/the_matrix.rb
209
222
  - lib/seeing_is_believing/version.rb
210
223
  - lib/seeing_is_believing/wrap_expressions.rb
@@ -225,6 +238,7 @@ files:
225
238
  - spec/hard_core_ensure_spec.rb
226
239
  - spec/hash_struct_spec.rb
227
240
  - spec/seeing_is_believing_spec.rb
241
+ - spec/sib_spec_helpers/version.rb
228
242
  - spec/spec_helper.rb
229
243
  - spec/spec_helper_spec.rb
230
244
  - spec/wrap_expressions_spec.rb
@@ -287,8 +301,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
287
301
  - !ruby/object:Gem::Version
288
302
  version: '0'
289
303
  requirements: []
290
- rubyforge_project: seeing_is_believing
291
- rubygems_version: 2.7.6
304
+ rubygems_version: 3.1.2
292
305
  signing_key:
293
306
  specification_version: 4
294
307
  summary: Records results of every line of code in your file
@@ -315,6 +328,7 @@ test_files:
315
328
  - spec/hard_core_ensure_spec.rb
316
329
  - spec/hash_struct_spec.rb
317
330
  - spec/seeing_is_believing_spec.rb
331
+ - spec/sib_spec_helpers/version.rb
318
332
  - spec/spec_helper.rb
319
333
  - spec/spec_helper_spec.rb
320
334
  - spec/wrap_expressions_spec.rb
@@ -1,50 +0,0 @@
1
- require 'seeing_is_believing/error'
2
- require 'seeing_is_believing/hard_core_ensure'
3
-
4
- class SeeingIsBelieving
5
- class BackupFile
6
- def self.call(*args, &block)
7
- new(*args, &block).call
8
- end
9
-
10
- def initialize(file_path, backup_filename, &block)
11
- self.file_path = file_path
12
- self.block = block
13
- self.backup_filename = backup_filename
14
- end
15
-
16
- def call
17
- HardCoreEnsure.call \
18
- code: -> {
19
- we_will_not_overwrite_existing_backup_file!
20
- backup_existing_file
21
- block.call
22
- },
23
- ensure: -> {
24
- set_back_to_initial_conditions
25
- }
26
- end
27
-
28
- private
29
-
30
- attr_accessor :block, :file_path, :backup_filename
31
-
32
- def we_will_not_overwrite_existing_backup_file!
33
- raise TempFileAlreadyExists.new(file_path, backup_filename) if File.exist? backup_filename
34
- end
35
-
36
- def backup_existing_file
37
- return unless File.exist? file_path
38
- File.rename file_path, backup_filename
39
- @was_backed_up = true
40
- end
41
-
42
- def set_back_to_initial_conditions
43
- if @was_backed_up
44
- File.rename(backup_filename, file_path)
45
- else
46
- File.delete(file_path)
47
- end
48
- end
49
- end
50
- end
@@ -1,5 +0,0 @@
1
- class String
2
- def pretty_print(pp)
3
- pp.text inspect.gsub(/\\n(?!")/, '\n" +'+"\n"+'"')
4
- end
5
- end