seeing_is_believing 3.6.1 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
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