snapshot_testing 0.3.2 → 0.3.3

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