quick-rspec 0.1.4 → 0.1.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/lib/quick-rspec.rb +30 -16
- data/lib/tasks/quick_rspec.rake +1 -2
- data/quick-rspec.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1543be30abba1ad1f47926a4c048a209f3c5a9b
|
4
|
+
data.tar.gz: 5761bb6ba885f7d46afb8c31d7db3744db95183c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5ae715a5e53d8c5f461c9ca77bdc85b27e538a08d00b6acd1fd103ca4b6d469e4f0cb4c5e147146db9a655ecacb9bc55b122898b1dbafcf95df23a57f8c394c
|
7
|
+
data.tar.gz: 20db3089a64739cdfe88aa3c3b12804fbd4b86d64cc8b50c6ec632f79f135477c61603545717c18f44bd8bd20b98baccb38ca0ee0f28829eb881ea78515bbf4e
|
data/lib/quick-rspec.rb
CHANGED
@@ -8,8 +8,10 @@ class QuickRspec < Rails::Railtie
|
|
8
8
|
end
|
9
9
|
|
10
10
|
class << self
|
11
|
+
@@threads = []
|
11
12
|
@@coverage = {}
|
12
13
|
@@last_cover = {}
|
14
|
+
@@mutex = Mutex.new
|
13
15
|
|
14
16
|
def start
|
15
17
|
Coverage.start
|
@@ -20,21 +22,25 @@ class QuickRspec < Rails::Railtie
|
|
20
22
|
root = Rails.root.to_s
|
21
23
|
result = {}
|
22
24
|
cover = Coverage.peek_result
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
prev_cover = @@last_cover
|
26
|
+
@@last_cover = cover
|
27
|
+
@@threads << Thread.new do
|
28
|
+
cover.each do |path, coverage|
|
29
|
+
next unless path =~ %r{^#{Regexp.escape(root)}}i
|
30
|
+
next if path =~ %r{^#{Regexp.escape(root)}\/spec\/}i
|
31
|
+
last_cover = prev_cover[path]
|
32
|
+
path = QuickRspec.relevant_path(path)
|
33
|
+
coverage = coverage.each_with_index.map.map do |count, index|
|
34
|
+
index unless last_cover.present? && count == last_cover[index]
|
35
|
+
end
|
36
|
+
coverage.compact!
|
37
|
+
next unless coverage.any?
|
38
|
+
result[path] = coverage
|
39
|
+
end
|
40
|
+
@@mutex.synchronize do
|
41
|
+
@@coverage[spec] = result
|
31
42
|
end
|
32
|
-
coverage.compact!
|
33
|
-
next unless coverage.any?
|
34
|
-
result[path] = coverage
|
35
43
|
end
|
36
|
-
@@coverage[spec] = result
|
37
|
-
@@last_cover = cover
|
38
44
|
end
|
39
45
|
|
40
46
|
def relevant_path(path)
|
@@ -55,6 +61,11 @@ class QuickRspec < Rails::Railtie
|
|
55
61
|
end
|
56
62
|
|
57
63
|
def save_stats
|
64
|
+
new_coverage = @@coverage
|
65
|
+
load_stats()
|
66
|
+
new_coverage.each do |spec, coverage|
|
67
|
+
@@coverage[spec] = coverage
|
68
|
+
end
|
58
69
|
File.open(Rails.root.join('tmp/quick_rspec.new.json'), 'w+') do |f|
|
59
70
|
f.write @@coverage.to_json
|
60
71
|
end
|
@@ -75,12 +86,15 @@ class QuickRspec < Rails::Railtie
|
|
75
86
|
spec
|
76
87
|
end.compact
|
77
88
|
end
|
89
|
+
|
90
|
+
def on_exit
|
91
|
+
@@threads.map(&:join)
|
92
|
+
QuickRspec.save_stats
|
93
|
+
end
|
78
94
|
end
|
79
95
|
end
|
80
96
|
|
81
97
|
if Rails.env.test?
|
82
|
-
QuickRspec.load_stats
|
83
|
-
|
84
98
|
QuickRspec.start
|
85
99
|
|
86
100
|
RSpec.configure do |config|
|
@@ -89,5 +103,5 @@ if Rails.env.test?
|
|
89
103
|
end
|
90
104
|
end
|
91
105
|
|
92
|
-
at_exit { QuickRspec.
|
106
|
+
at_exit { QuickRspec.on_exit }
|
93
107
|
end
|
data/lib/tasks/quick_rspec.rake
CHANGED
@@ -9,10 +9,9 @@ task quick_rspec: :environment do
|
|
9
9
|
specs = []
|
10
10
|
|
11
11
|
files = `git diff --name-only`.split("\n")
|
12
|
-
files.
|
12
|
+
files.select! { |file| file =~ %r{^(app|lib|config|spec)\/}i }
|
13
13
|
|
14
14
|
files.each do |file|
|
15
|
-
next if file =~ %r{^tmp\/}i
|
16
15
|
if file =~ %r{^spec\/}i
|
17
16
|
specs << file
|
18
17
|
else
|
data/quick-rspec.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.required_ruby_version = '>= 2.3'
|
7
7
|
spec.name = "quick-rspec"
|
8
|
-
spec.version = "0.1.
|
8
|
+
spec.version = "0.1.5"
|
9
9
|
spec.authors = ["Dmitry Silchenko"]
|
10
10
|
spec.email = ["dmitry@desofto.com"]
|
11
11
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quick-rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitry Silchenko
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|