snapshot_testing 0.3.2 → 0.3.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0c0173565a679feb7e8d03a0e923a802a9c055c9
4
- data.tar.gz: fbd67bf868bae0746277f5edf511fdf995701d51
2
+ SHA256:
3
+ metadata.gz: abbd9e5dcb8e1bfc22a718387076ca8bc503da999d9d85ffb524a52b1ec9a01c
4
+ data.tar.gz: a6286990db3d03a19f8afc35f61c447b686f0cdfbc2f82f1513fa3881efbdd09
5
5
  SHA512:
6
- metadata.gz: cdc86b7cc34b4d205a47cb9534cefc90d6a48809e64c250a9dacec66dac3b618704f8bf5e08734d71aa757472e2610a8450961d1c9187ab694e09a03741cf1f8
7
- data.tar.gz: da3655e165f158a0cc2c24510ba3483a162e4470b3a68c97ebb6c97834ed26a2c1218c80e2fed7024018473a6a784bbc0386f20820cf970e35a3c81a29c25b1c
6
+ metadata.gz: 31d91ce651122861a12589a3f6b70e5e9c7958fd972ad2ca8ea6d937474d3cafaf502afa3b24cb1503a5e95d20d73392a5a055b6d0fcb346f91b47e483391863
7
+ data.tar.gz: a9cae871013fadb45996d40822b0edae0fd0f6c9a6664b9cab38d9d0884f4e73cb2310ec613a4de3e04ed5390e07530cd73a1d48ef234501bae40492f7322528
@@ -9,6 +9,7 @@ module SnapshotTesting
9
9
  @visited = []
10
10
  @added = 0
11
11
  @updated = 0
12
+ @removed = 0
12
13
  end
13
14
 
14
15
  def snapshot_path
@@ -60,15 +61,13 @@ module SnapshotTesting
60
61
  end
61
62
 
62
63
  def commit
63
- removed = snapshots.keys - visited
64
- removed = removed.grep(/^#{name}\s\d+$/)
65
- removed.each { |key| snapshots.delete(key) }
64
+ prune_snapshots if update?
65
+ write_snapshots if write?
66
66
 
67
- write_snapshots(snapshots) if write?
68
67
  log(added, :written) unless added.zero?
69
68
  log(updated, :updated) unless updated.zero?
70
- log(removed.length, :removed) if update? && !removed.empty?
71
- log(removed.length, :obsolete) if !update? && !removed.empty?
69
+ log(removed, :removed) unless removed.zero?
70
+ log(obsolete, :obsolete) unless obsolete.zero?
72
71
  end
73
72
 
74
73
  protected
@@ -79,6 +78,9 @@ module SnapshotTesting
79
78
  # the number of updated snapshots
80
79
  attr_accessor :updated
81
80
 
81
+ # the number of removed snapshots
82
+ attr_accessor :removed
83
+
82
84
  # all snapshots that have been compared
83
85
  attr_reader :visited
84
86
 
@@ -97,7 +99,28 @@ module SnapshotTesting
97
99
 
98
100
  # should we write to the filesystem?
99
101
  def write?
100
- update? || !added.zero?
102
+ return true unless added.zero?
103
+ return false unless update?
104
+ !(updated + removed).zero?
105
+ end
106
+
107
+ # remove stale snapshots
108
+ def prune_snapshots
109
+ stale = snapshots.keys - visited
110
+ stale = stale.grep(/^#{name}\s\d+$/)
111
+ stale.each { |key| snapshots.delete(key) }
112
+ self.removed = stale.length
113
+ end
114
+
115
+ # the number of obsolete snapshots
116
+ def obsolete
117
+ (snapshots.keys - visited).grep(/^#{name}\s\d+$/).length
118
+ end
119
+
120
+ # write all snapshots to the filesystem
121
+ def write_snapshots
122
+ FileUtils.mkdir_p(snapshots_path)
123
+ File.write(snapshot_path, Snapshot.dump(snapshots))
101
124
  end
102
125
 
103
126
  def snapshots_path
@@ -117,10 +140,5 @@ module SnapshotTesting
117
140
  FileUtils.mkdir_p(snapshots_path)
118
141
  File.write(File.join(snapshots_path, name), data)
119
142
  end
120
-
121
- def write_snapshots(snapshots)
122
- FileUtils.mkdir_p(snapshots_path)
123
- File.write(snapshot_path, Snapshot.dump(snapshots))
124
- end
125
143
  end
126
144
  end
@@ -1,3 +1,3 @@
1
1
  module SnapshotTesting
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snapshot_testing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ray Zane
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-29 00:00:00.000000000 Z
11
+ date: 2019-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -147,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  version: '0'
148
148
  requirements: []
149
149
  rubyforge_project:
150
- rubygems_version: 2.6.14
150
+ rubygems_version: 2.7.6
151
151
  signing_key:
152
152
  specification_version: 4
153
153
  summary: Proper snapshot support for RSpec.