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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -5
- data/Rakefile +2 -0
- data/Readme.md +1 -1
- data/appveyor.yml +3 -5
- data/features/regression.feature +7 -0
- data/features/xmpfilter-style.feature +1 -0
- data/lib/seeing_is_believing.rb +2 -1
- data/lib/seeing_is_believing/binary.rb +1 -1
- data/lib/seeing_is_believing/binary/annotate_marked_lines.rb +1 -0
- data/lib/seeing_is_believing/binary/comment_lines.rb +1 -1
- data/lib/seeing_is_believing/binary/commentable_lines.rb +7 -7
- data/lib/seeing_is_believing/binary/config.rb +1 -3
- data/lib/seeing_is_believing/binary/remove_annotations.rb +1 -1
- data/lib/seeing_is_believing/code.rb +3 -3
- data/lib/seeing_is_believing/evaluate_by_moving_files.rb +30 -32
- data/lib/seeing_is_believing/event_stream/consumer.rb +2 -0
- data/lib/seeing_is_believing/event_stream/events.rb +7 -0
- data/lib/seeing_is_believing/event_stream/handlers/record_exit_events.rb +3 -3
- data/lib/seeing_is_believing/event_stream/handlers/update_result.rb +2 -1
- data/lib/seeing_is_believing/event_stream/producer.rb +14 -0
- data/lib/seeing_is_believing/safe.rb +1 -7
- data/lib/seeing_is_believing/swap_files.rb +90 -0
- data/lib/seeing_is_believing/the_matrix.rb +17 -4
- data/lib/seeing_is_believing/version.rb +1 -1
- data/lib/seeing_is_believing/wrap_expressions.rb +22 -8
- data/lib/seeing_is_believing/wrap_expressions_with_inspect.rb +3 -0
- data/seeing_is_believing.gemspec +4 -5
- data/spec/binary/config_spec.rb +2 -2
- data/spec/evaluate_by_moving_files_spec.rb +18 -17
- data/spec/event_stream_spec.rb +1 -0
- data/spec/seeing_is_believing_spec.rb +99 -24
- data/spec/sib_spec_helpers/version.rb +17 -0
- data/spec/spec_helper.rb +2 -18
- data/spec/wrap_expressions_spec.rb +9 -3
- metadata +26 -12
- data/lib/seeing_is_believing/backup_file.rb +0 -50
- data/lib/seeing_is_believing/customize_pp.rb +0 -5
data/spec/spec_helper.rb
CHANGED
@@ -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 '
|
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:
|
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:
|
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.
|
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.
|
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.
|
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.
|
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:
|
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:
|
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
|
-
|
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
|