memoria 0.1.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.
- checksums.yaml +7 -0
- data/.editorconfig +10 -0
- data/.gitignore +13 -0
- data/.overcommit.yml +21 -0
- data/.rspec +3 -0
- data/.rubocop.yml +34 -0
- data/.travis.yml +22 -0
- data/.yardopts +1 -0
- data/.yardstick.yml +77 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +6 -0
- data/Guardfile +20 -0
- data/README.md +90 -0
- data/ROADMAP.md +22 -0
- data/Rakefile +32 -0
- data/bin/console +7 -0
- data/bin/setup +8 -0
- data/documentation/class-diagram.svg +360 -0
- data/lib/memoria.rb +119 -0
- data/lib/memoria/configuration.rb +112 -0
- data/lib/memoria/errors.rb +4 -0
- data/lib/memoria/errors/duplicate_setting.rb +16 -0
- data/lib/memoria/errors/invalid_configuration.rb +16 -0
- data/lib/memoria/errors/invalid_record_mode.rb +16 -0
- data/lib/memoria/errors/invalid_snapshot_extension.rb +16 -0
- data/lib/memoria/rspec.rb +14 -0
- data/lib/memoria/rspec/configurator.rb +46 -0
- data/lib/memoria/rspec/matcher.rb +30 -0
- data/lib/memoria/rspec/metadata.rb +16 -0
- data/lib/memoria/rspec/metadata_parser.rb +49 -0
- data/lib/memoria/snapshot.rb +29 -0
- data/lib/memoria/snapshot_saver.rb +133 -0
- data/lib/memoria/version.rb +3 -0
- data/memoria.gemspec +42 -0
- metadata +329 -0
@@ -0,0 +1,29 @@
|
|
1
|
+
module Memoria
|
2
|
+
# Stores the snapshot details.
|
3
|
+
class Snapshot
|
4
|
+
# Returns the name of the snapshot. Each snapshot should have a unique name.
|
5
|
+
#
|
6
|
+
# @example
|
7
|
+
# snapshot = Snapshot.new('listing-all-users')
|
8
|
+
# snapshot.name #=> 'listing-all-users'
|
9
|
+
#
|
10
|
+
# @return [String] The name of the snapshot.
|
11
|
+
#
|
12
|
+
# @api public
|
13
|
+
#
|
14
|
+
attr_reader :name
|
15
|
+
|
16
|
+
# Creates a new snapshot.
|
17
|
+
#
|
18
|
+
# @example
|
19
|
+
# snapshot = Snapshot.new('listing-all-users')
|
20
|
+
#
|
21
|
+
# @return [Snapshot] An instance of +Snapshot+.
|
22
|
+
#
|
23
|
+
# @api public
|
24
|
+
#
|
25
|
+
def initialize(name)
|
26
|
+
@name = name
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,133 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
module Memoria
|
4
|
+
# Reads and writes snapshots to and from the file system.
|
5
|
+
class SnapshotSaver
|
6
|
+
# Creates a new SnapshotSaver.
|
7
|
+
#
|
8
|
+
# @example
|
9
|
+
# snapshot_saver = SnapshotSaver.new(Configuration.new)
|
10
|
+
#
|
11
|
+
# @param [Configuration] configuration The gem's configuration.
|
12
|
+
#
|
13
|
+
# @return [SnapshotSaver] An instance of +SnapshotSaver+.
|
14
|
+
#
|
15
|
+
# @api public
|
16
|
+
#
|
17
|
+
def initialize(configuration)
|
18
|
+
@configuration = configuration
|
19
|
+
end
|
20
|
+
|
21
|
+
# Whether a snapshot for the given storage key (file name) is persisted in the file system.
|
22
|
+
#
|
23
|
+
# @example
|
24
|
+
# snapshot_saver = SnapshotSaver.new(Configuration.new)
|
25
|
+
# snapshot_saver.snapshot_exists?(Snapshot.new('does-not')) # => false
|
26
|
+
#
|
27
|
+
# @param [String] file_name The storage key (file name) of the snapshot.
|
28
|
+
#
|
29
|
+
# @return [SnapshotSaver] An instance of +SnapshotSaver+.
|
30
|
+
#
|
31
|
+
# @api public
|
32
|
+
#
|
33
|
+
def snapshot_exists?(file_name)
|
34
|
+
location = absolute_path_to_file(file_name)
|
35
|
+
return false if location.nil?
|
36
|
+
File.exist?(location)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Retrieves the snapshot contents for the given storage key (file name).
|
40
|
+
#
|
41
|
+
# @example When there is no snapshot for a given storage key (file name).
|
42
|
+
# snapshot_saver = SnapshotSaver.new(Configuration.new)
|
43
|
+
# snapshot_saver.read('/404') # => nil
|
44
|
+
#
|
45
|
+
# @example When there is a snapshot for a given storage key (file name).
|
46
|
+
# snapshot_saver = SnapshotSaver.new(Configuration.new)
|
47
|
+
# snapshot_saver.read('index_page') # => '<h1>Hello World</h1>'
|
48
|
+
#
|
49
|
+
# @param [String] file_name The storage key (file name) of the snapshot.
|
50
|
+
#
|
51
|
+
# @return [String] The snapshot content.
|
52
|
+
#
|
53
|
+
# @api public
|
54
|
+
#
|
55
|
+
def read(file_name)
|
56
|
+
path = absolute_path_to_file(file_name)
|
57
|
+
return nil unless File.exist?(path)
|
58
|
+
File.read(path)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Persists the snapshot contents for the given storage key (file name).
|
62
|
+
#
|
63
|
+
# @example
|
64
|
+
# snapshot_saver = SnapshotSaver.new(Configuration.new)
|
65
|
+
# snapshot_saver.write('index_page', 'Homepage')
|
66
|
+
# snapshot_saver.read('index_page') # => 'Homepage'
|
67
|
+
#
|
68
|
+
# @param [String] file_name The storage key (file name) of the snapshot.
|
69
|
+
#
|
70
|
+
# @param [String] content The snapshot content.
|
71
|
+
#
|
72
|
+
# @return [Fixnum] The length written.
|
73
|
+
#
|
74
|
+
# @api public
|
75
|
+
#
|
76
|
+
def write(file_name, content)
|
77
|
+
path = absolute_path_to_file(file_name)
|
78
|
+
directory = File.dirname(path)
|
79
|
+
FileUtils.mkdir_p(directory) unless File.exist?(directory)
|
80
|
+
File.binwrite(path, content)
|
81
|
+
end
|
82
|
+
|
83
|
+
private
|
84
|
+
|
85
|
+
# Returns the gem's configuration.
|
86
|
+
#
|
87
|
+
# @return [Configuration] The gem's configuration.
|
88
|
+
#
|
89
|
+
attr_reader :configuration
|
90
|
+
|
91
|
+
# Returns the absolute path to a given file, including the snapshot extension.
|
92
|
+
#
|
93
|
+
# @param [String] file_name The storage key (file name) of the snapshot.
|
94
|
+
#
|
95
|
+
# @return [String]
|
96
|
+
#
|
97
|
+
def absolute_path_to_file(file_name)
|
98
|
+
return nil unless storage_location
|
99
|
+
absolute_file_name = File.join(storage_location, sanitized_file_name_from(file_name) + file_extension)
|
100
|
+
File.expand_path(absolute_file_name)
|
101
|
+
end
|
102
|
+
|
103
|
+
# Sanitizes a given storage key (file name) to be a valid file name.
|
104
|
+
#
|
105
|
+
# @param [String] file_name The storage key (file name) of the snapshot.
|
106
|
+
#
|
107
|
+
# @return [String] A sanitized file name.
|
108
|
+
#
|
109
|
+
def sanitized_file_name_from(file_name)
|
110
|
+
parts = file_name.to_s.split('.')
|
111
|
+
|
112
|
+
file_extension = '.' + parts.pop if parts.size > 1 && !parts.last.include?(File::SEPARATOR)
|
113
|
+
|
114
|
+
parts.join('.').gsub(%r{[^[:word:]\-\/]+}, '_') + file_extension.to_s
|
115
|
+
end
|
116
|
+
|
117
|
+
# Returns the file extension for snapshots.
|
118
|
+
#
|
119
|
+
# @return [String] Extension for snapshots.
|
120
|
+
#
|
121
|
+
def file_extension
|
122
|
+
'.' + configuration.snapshot_extension
|
123
|
+
end
|
124
|
+
|
125
|
+
# Returns the path to the directory where snapshots are saved.
|
126
|
+
#
|
127
|
+
# @return [String] Path to the directory where snapshots are saved.
|
128
|
+
#
|
129
|
+
def storage_location
|
130
|
+
configuration.snapshot_directory
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
data/memoria.gemspec
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
|
4
|
+
require 'memoria/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'memoria'
|
8
|
+
spec.version = Memoria::VERSION
|
9
|
+
spec.authors = ['Wilson Silva']
|
10
|
+
spec.email = ['wilson.dsigns@gmail.com']
|
11
|
+
|
12
|
+
spec.summary = 'Jest-like snapshot testing.'
|
13
|
+
spec.description = 'Capture snapshots to simplify testing and to analyze how state changes over time.'
|
14
|
+
spec.homepage = 'https://github.com/wilsonsilva/memoria'
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
|
+
f.match(%r{^(test|spec|features)/})
|
18
|
+
end
|
19
|
+
|
20
|
+
spec.bindir = 'exe'
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
|
+
spec.require_paths = ['lib']
|
23
|
+
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
25
|
+
spec.add_development_dependency 'bundler-audit', '~> 0.6'
|
26
|
+
spec.add_development_dependency 'guard', '~> 2.14'
|
27
|
+
spec.add_development_dependency 'guard-bundler', '~> 2.1'
|
28
|
+
spec.add_development_dependency 'guard-bundler-audit', '~> 0.1'
|
29
|
+
spec.add_development_dependency 'guard-rspec', '~> 4.7'
|
30
|
+
spec.add_development_dependency 'guard-rubocop', '~> 1.2'
|
31
|
+
spec.add_development_dependency 'overcommit', '~> 0.45'
|
32
|
+
spec.add_development_dependency 'pry', '~> 0.11'
|
33
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
34
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
35
|
+
spec.add_development_dependency 'rubocop', '~> 0.55'
|
36
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 1.25'
|
37
|
+
spec.add_development_dependency 'simplecov', '~> 0.16'
|
38
|
+
spec.add_development_dependency 'simplecov-console', '~> 0.4'
|
39
|
+
spec.add_development_dependency 'yard', '~> 0.9'
|
40
|
+
spec.add_development_dependency 'yard-junk', '~> 0.0.7'
|
41
|
+
spec.add_development_dependency 'yardstick', '~> 0.9'
|
42
|
+
end
|
metadata
ADDED
@@ -0,0 +1,329 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: memoria
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Wilson Silva
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-05-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.16'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.16'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler-audit
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.6'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: guard
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.14'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.14'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard-bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.1'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard-bundler-audit
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.1'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.1'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: guard-rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '4.7'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '4.7'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: guard-rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.2'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.2'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: overcommit
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.45'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.45'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: pry
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.11'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.11'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rake
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '10.0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '10.0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rspec
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '3.0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '3.0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rubocop
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0.55'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0.55'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: rubocop-rspec
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '1.25'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '1.25'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: simplecov
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0.16'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0.16'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: simplecov-console
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0.4'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - "~>"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0.4'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: yard
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - "~>"
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0.9'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - "~>"
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0.9'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: yard-junk
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - "~>"
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: 0.0.7
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - "~>"
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: 0.0.7
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: yardstick
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - "~>"
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0.9'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - "~>"
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0.9'
|
265
|
+
description: Capture snapshots to simplify testing and to analyze how state changes
|
266
|
+
over time.
|
267
|
+
email:
|
268
|
+
- wilson.dsigns@gmail.com
|
269
|
+
executables: []
|
270
|
+
extensions: []
|
271
|
+
extra_rdoc_files: []
|
272
|
+
files:
|
273
|
+
- ".editorconfig"
|
274
|
+
- ".gitignore"
|
275
|
+
- ".overcommit.yml"
|
276
|
+
- ".rspec"
|
277
|
+
- ".rubocop.yml"
|
278
|
+
- ".travis.yml"
|
279
|
+
- ".yardopts"
|
280
|
+
- ".yardstick.yml"
|
281
|
+
- CHANGELOG.md
|
282
|
+
- Gemfile
|
283
|
+
- Guardfile
|
284
|
+
- README.md
|
285
|
+
- ROADMAP.md
|
286
|
+
- Rakefile
|
287
|
+
- bin/console
|
288
|
+
- bin/setup
|
289
|
+
- documentation/class-diagram.svg
|
290
|
+
- lib/memoria.rb
|
291
|
+
- lib/memoria/configuration.rb
|
292
|
+
- lib/memoria/errors.rb
|
293
|
+
- lib/memoria/errors/duplicate_setting.rb
|
294
|
+
- lib/memoria/errors/invalid_configuration.rb
|
295
|
+
- lib/memoria/errors/invalid_record_mode.rb
|
296
|
+
- lib/memoria/errors/invalid_snapshot_extension.rb
|
297
|
+
- lib/memoria/rspec.rb
|
298
|
+
- lib/memoria/rspec/configurator.rb
|
299
|
+
- lib/memoria/rspec/matcher.rb
|
300
|
+
- lib/memoria/rspec/metadata.rb
|
301
|
+
- lib/memoria/rspec/metadata_parser.rb
|
302
|
+
- lib/memoria/snapshot.rb
|
303
|
+
- lib/memoria/snapshot_saver.rb
|
304
|
+
- lib/memoria/version.rb
|
305
|
+
- memoria.gemspec
|
306
|
+
homepage: https://github.com/wilsonsilva/memoria
|
307
|
+
licenses: []
|
308
|
+
metadata: {}
|
309
|
+
post_install_message:
|
310
|
+
rdoc_options: []
|
311
|
+
require_paths:
|
312
|
+
- lib
|
313
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
314
|
+
requirements:
|
315
|
+
- - ">="
|
316
|
+
- !ruby/object:Gem::Version
|
317
|
+
version: '0'
|
318
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
319
|
+
requirements:
|
320
|
+
- - ">="
|
321
|
+
- !ruby/object:Gem::Version
|
322
|
+
version: '0'
|
323
|
+
requirements: []
|
324
|
+
rubyforge_project:
|
325
|
+
rubygems_version: 2.7.6
|
326
|
+
signing_key:
|
327
|
+
specification_version: 4
|
328
|
+
summary: Jest-like snapshot testing.
|
329
|
+
test_files: []
|