rspec_fixtures 0.6.4 → 0.6.5
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.
- checksums.yaml +4 -4
- data/README.md +11 -0
- data/lib/rspec_fixtures/matchers/base.rb +13 -1
- data/lib/rspec_fixtures/rspec_config.rb +1 -0
- data/lib/rspec_fixtures/stream_capturer.rb +4 -0
- data/lib/rspec_fixtures/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e36d048ba906c61b8256d0465aca19b4416710f842da133bffcbd5fda86f1850
|
4
|
+
data.tar.gz: 72336fe2be6d5a2a907cc31d3b1fad511d78632e359eff1f1e85ba843f36834c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 99aa998d87733a931b7b5351ac336c699351d3d4a2696ad010c5bd40cad5ce7154c0fa93de16773366831e869cf2e4bfca8403811a619af61d502abba2cbcb8a
|
7
|
+
data.tar.gz: fba81b54376d1a1ceb35fc5053943c1d99a1cd2085c11241fe5ea4af2715d593c4ec453981e150d23390f09c8b8fccd3abed195102468f491f13bfeae6538aaa
|
data/README.md
CHANGED
@@ -188,5 +188,16 @@ delete the fixtures folder, and run the specs again with:
|
|
188
188
|
$ AUTO_APPROVE=1 rspec
|
189
189
|
```
|
190
190
|
|
191
|
+
### `strip_ansi_escape`
|
192
|
+
|
193
|
+
In case your output strings contain ANSI escape codes that you wish to avoid
|
194
|
+
storing in your fixtures, you can set the `strip_ansi_escape` to `true`.
|
195
|
+
|
196
|
+
```ruby
|
197
|
+
RSpec.configure do |config|
|
198
|
+
config.strip_ansi_escape = true
|
199
|
+
end
|
200
|
+
```
|
201
|
+
|
191
202
|
|
192
203
|
[1]: https://en.wikipedia.org/wiki/Levenshtein_distance
|
@@ -14,6 +14,7 @@ module RSpecFixtures
|
|
14
14
|
@actual ||= actual
|
15
15
|
return false if @actual.empty?
|
16
16
|
|
17
|
+
@actual = sanitize @actual
|
17
18
|
success = strings_match?
|
18
19
|
|
19
20
|
if success or !interactive?
|
@@ -73,6 +74,12 @@ module RSpecFixtures
|
|
73
74
|
true
|
74
75
|
end
|
75
76
|
|
77
|
+
# Returns true if RSpec is configured to sanitize (remove ANSI escape
|
78
|
+
# codes) from the actual strings before proceeeding to comparing them.
|
79
|
+
def sanitize?
|
80
|
+
RSpec.configuration.strip_ansi_escape
|
81
|
+
end
|
82
|
+
|
76
83
|
# Returns true if RSpec is configured to allow interactivity.
|
77
84
|
# By default, interactivity is enabled unless the environment
|
78
85
|
# variable `CI` is set.
|
@@ -91,7 +98,7 @@ module RSpecFixtures
|
|
91
98
|
"#{fixtures_dir}/#{fixture_name}"
|
92
99
|
end
|
93
100
|
|
94
|
-
|
101
|
+
protected
|
95
102
|
|
96
103
|
# Asks for user approval. Used by child classes.
|
97
104
|
def approve_fixture
|
@@ -125,6 +132,11 @@ module RSpecFixtures
|
|
125
132
|
end
|
126
133
|
end
|
127
134
|
|
135
|
+
# Returns the input string stripped of ANSI escape codes if the
|
136
|
+
# strip_ansi_escape configuration setting was set to true
|
137
|
+
def sanitize(string)
|
138
|
+
sanitize? ? Strings::ANSI.sanitize(string) : string
|
139
|
+
end
|
128
140
|
end
|
129
141
|
|
130
142
|
end
|
@@ -5,5 +5,6 @@ if defined? RSpec
|
|
5
5
|
config.add_setting :fixtures_path, default: File.expand_path('spec/fixtures')
|
6
6
|
config.add_setting :interactive_fixtures, default: !ENV['CI']
|
7
7
|
config.add_setting :auto_approve, default: ENV['AUTO_APPROVE']
|
8
|
+
config.add_setting :strip_ansi_escape, default: false
|
8
9
|
end
|
9
10
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'strings-ansi'
|
2
|
+
|
1
3
|
module RSpecFixtures
|
2
4
|
# Capture stdout and stderr
|
3
5
|
#
|
@@ -13,6 +15,7 @@ module RSpecFixtures
|
|
13
15
|
block.call
|
14
16
|
|
15
17
|
captured_stream.string
|
18
|
+
|
16
19
|
ensure
|
17
20
|
$stdout = original_stream
|
18
21
|
end
|
@@ -28,6 +31,7 @@ module RSpecFixtures
|
|
28
31
|
block.call
|
29
32
|
|
30
33
|
captured_stream.string
|
34
|
+
|
31
35
|
ensure
|
32
36
|
$stderr = original_stream
|
33
37
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec_fixtures
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danny Ben Shitrit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colsole
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.19'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: strings-ansi
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.1'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.1'
|
69
83
|
description: Automatic interactive fixtures for rspec
|
70
84
|
email: db@dannyben.com
|
71
85
|
executables: []
|