rspec-preloader 0.1.0 → 1.0.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 721ffb5be5ecb80dbda1b8352e8b0629e6a1afe0
|
4
|
+
data.tar.gz: 5ede75887eddd487955cd0014114b4ffbff031cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d4b6846ed83903a946c0951f61cfa9f64fc1fb1805ffa22de47d51a5ad597ddd2a785e01a6ecb0f22074e69f54f965e9dfb05d91cce2aebb55c60f4ee640966
|
7
|
+
data.tar.gz: fc5c17639b8f7e732b1f9c305b01e96df81af9a5bf07feab348b11cd7ca978a553835b6fe3ad0c035d3997c5524f55fcb98303d7260422b50a53e2bf714bd0e7
|
@@ -0,0 +1,40 @@
|
|
1
|
+
class FileSelector
|
2
|
+
def self.updated_source_files
|
3
|
+
new.updated_source_files
|
4
|
+
end
|
5
|
+
|
6
|
+
def updated_source_files
|
7
|
+
all_updated_files.select do |filename|
|
8
|
+
filename.include?('app/') || filename.include?('lib/')
|
9
|
+
end.select do |filename|
|
10
|
+
filename.end_with?('.rb')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def all_updated_files
|
17
|
+
file_statuses_and_names.select do |file_status_and_name|
|
18
|
+
updated_files_statuses.include? file_status_and_name.first
|
19
|
+
end
|
20
|
+
.map(&:last)
|
21
|
+
end
|
22
|
+
|
23
|
+
def updated_files_statuses
|
24
|
+
['M', 'MM', 'A', '??']
|
25
|
+
end
|
26
|
+
|
27
|
+
def file_statuses_and_names
|
28
|
+
git_status_lines.map do |git_status_line|
|
29
|
+
git_status_line.split(' ')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def git_status_lines
|
34
|
+
git_status.split("\n")
|
35
|
+
end
|
36
|
+
|
37
|
+
def git_status
|
38
|
+
`git status --porcelain`
|
39
|
+
end
|
40
|
+
end
|
@@ -1,5 +1,7 @@
|
|
1
|
+
require_relative "file_selector"
|
2
|
+
|
1
3
|
class RspecPreloader
|
2
|
-
class
|
4
|
+
class SpecRunner
|
3
5
|
|
4
6
|
def self.run_rspec(rspec_arguments_array)
|
5
7
|
new(rspec_arguments_array).run_rspec
|
@@ -11,7 +13,7 @@ class RspecPreloader
|
|
11
13
|
|
12
14
|
def run_rspec
|
13
15
|
pid = fork do
|
14
|
-
|
16
|
+
load_updated_files
|
15
17
|
run_specs(@rspec_arguments)
|
16
18
|
end
|
17
19
|
Process.wait(pid)
|
@@ -19,8 +21,8 @@ class RspecPreloader
|
|
19
21
|
|
20
22
|
private
|
21
23
|
|
22
|
-
def
|
23
|
-
|
24
|
+
def load_updated_files
|
25
|
+
FileSelector.updated_source_files.each do |file|
|
24
26
|
load file
|
25
27
|
end
|
26
28
|
end
|
data/lib/rspec_preloader.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require "rspec/core"
|
2
2
|
require "readline"
|
3
|
-
require_relative "rspec_preloader/
|
4
|
-
require_relative "rspec_preloader/rspec_runner"
|
3
|
+
require_relative "rspec_preloader/spec_runner"
|
5
4
|
|
6
5
|
class RspecPreloader
|
7
6
|
|
@@ -27,15 +26,15 @@ class RspecPreloader
|
|
27
26
|
private
|
28
27
|
|
29
28
|
def load_spec_helper
|
30
|
-
|
29
|
+
print "Loading spec_helper..."
|
31
30
|
require "#{Dir.pwd}/spec/spec_helper"
|
32
|
-
puts "
|
31
|
+
puts "done."
|
33
32
|
end
|
34
33
|
|
35
34
|
def first_run
|
36
35
|
return if @rspec_arguments == ""
|
37
36
|
Readline::HISTORY << @rspec_arguments.join(" ")
|
38
|
-
|
37
|
+
SpecRunner.run_rspec(@rspec_arguments)
|
39
38
|
end
|
40
39
|
|
41
40
|
def server_loop
|
@@ -43,7 +42,7 @@ class RspecPreloader
|
|
43
42
|
rspec_arguments = Readline.readline("rspec > ", true)
|
44
43
|
break if [nil, "exit"].include?(rspec_arguments)
|
45
44
|
rspec_arguments_array = rspec_arguments.chomp.split(" ")
|
46
|
-
|
45
|
+
SpecRunner.run_rspec(rspec_arguments_array)
|
47
46
|
end
|
48
47
|
end
|
49
48
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-preloader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Mours
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: git
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: minitest
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,8 +61,8 @@ extra_rdoc_files: []
|
|
75
61
|
files:
|
76
62
|
- bin/rspec-preloader
|
77
63
|
- lib/rspec_preloader.rb
|
78
|
-
- lib/rspec_preloader/
|
79
|
-
- lib/rspec_preloader/
|
64
|
+
- lib/rspec_preloader/file_selector.rb
|
65
|
+
- lib/rspec_preloader/spec_runner.rb
|
80
66
|
homepage: https://github.com/victormours/rspec-preloader
|
81
67
|
licenses:
|
82
68
|
- MIT
|
@@ -100,6 +86,6 @@ rubyforge_project:
|
|
100
86
|
rubygems_version: 2.2.2
|
101
87
|
signing_key:
|
102
88
|
specification_version: 4
|
103
|
-
summary:
|
89
|
+
summary: Start Rspec instantly
|
104
90
|
test_files: []
|
105
91
|
has_rdoc:
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require "git"
|
2
|
-
|
3
|
-
class FileWatcher
|
4
|
-
def self.changed_files
|
5
|
-
new.changed_files
|
6
|
-
end
|
7
|
-
|
8
|
-
def changed_files
|
9
|
-
git.status.changed.keys.select do |filename|
|
10
|
-
/.rb$/.match(filename)
|
11
|
-
end.reject do |filename|
|
12
|
-
/spec\//.match(filename)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def git
|
19
|
-
@git ||= Git.open(Dir.pwd)
|
20
|
-
end
|
21
|
-
end
|