starting_blocks 0.0.18 → 0.0.19
Sign up to get free protection for your applications and to get access to all the features.
data/lib/extensions/blinky.rb
CHANGED
@@ -22,9 +22,9 @@ module StartingBlocks
|
|
22
22
|
@light = Blinky.new.light
|
23
23
|
end
|
24
24
|
|
25
|
-
def
|
26
|
-
@spec_count =
|
27
|
-
return if
|
25
|
+
def receive_files_to_run files
|
26
|
+
@spec_count = files.count
|
27
|
+
return if files.count == 0
|
28
28
|
change_color_to :yellow
|
29
29
|
end
|
30
30
|
|
@@ -14,11 +14,11 @@ module StartingBlocks
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
17
|
+
def publish_files_to_run files
|
18
18
|
return unless @subscribers
|
19
19
|
@subscribers.each do |s|
|
20
20
|
begin
|
21
|
-
s.
|
21
|
+
s.receive_files_to_run files
|
22
22
|
rescue
|
23
23
|
end
|
24
24
|
end
|
@@ -7,18 +7,19 @@ module StartingBlocks
|
|
7
7
|
@verbose = options[:verbose]
|
8
8
|
end
|
9
9
|
|
10
|
-
def run_files
|
11
|
-
display "
|
12
|
-
StartingBlocks::Publisher.
|
13
|
-
results =
|
10
|
+
def run_files files
|
11
|
+
display "Files to run: #{files.inspect}"
|
12
|
+
StartingBlocks::Publisher.publish_files_to_run files
|
13
|
+
results = execute_these_files files
|
14
14
|
StartingBlocks::Publisher.publish_results results
|
15
15
|
puts results
|
16
|
+
results
|
16
17
|
end
|
17
18
|
|
18
19
|
private
|
19
20
|
|
20
|
-
def
|
21
|
-
requires =
|
21
|
+
def execute_these_files files
|
22
|
+
requires = files.map { |x| "require '#{x}'" }.join("\n")
|
22
23
|
`ruby -e "#{requires}"`
|
23
24
|
end
|
24
25
|
end
|
@@ -5,6 +5,8 @@ module StartingBlocks
|
|
5
5
|
|
6
6
|
TEST_FILE_CLUES = ["_test", "test_", "_spec"]
|
7
7
|
|
8
|
+
@last_failed_run = nil
|
9
|
+
|
8
10
|
include Displayable
|
9
11
|
|
10
12
|
class << self
|
@@ -34,7 +36,8 @@ module StartingBlocks
|
|
34
36
|
def run_it(file_that_changed, all_files, options)
|
35
37
|
specs = get_the_specs_to_run file_that_changed, all_files
|
36
38
|
display "Matches: #{specs.inspect}"
|
37
|
-
StartingBlocks::Runner.new(options).run_files specs
|
39
|
+
results = StartingBlocks::Runner.new(options).run_files specs
|
40
|
+
store_the_specs_if_they_failed results, specs
|
38
41
|
end
|
39
42
|
|
40
43
|
def delete_it(file_that_changed, all_files, options)
|
@@ -45,11 +48,25 @@ module StartingBlocks
|
|
45
48
|
|
46
49
|
private
|
47
50
|
|
51
|
+
def store_the_specs_if_they_failed results, specs
|
52
|
+
parsed_results = StartingBlocks::Publisher.result_parser.parse(results)
|
53
|
+
if parsed_results[:failures] > 0 || parsed_results[:skips] > 0 || parsed_results[:errors] > 0
|
54
|
+
@last_failed_run = specs
|
55
|
+
else
|
56
|
+
@last_failed_run = nil
|
57
|
+
end
|
58
|
+
rescue
|
59
|
+
end
|
60
|
+
|
48
61
|
def get_the_specs_to_run(file_that_changed, all_files)
|
49
62
|
filename = flush_file_name file_that_changed
|
50
63
|
matches = all_files.select { |x| flush_file_name(x).include?(filename) && x != file_that_changed }
|
51
64
|
matches << file_that_changed
|
65
|
+
|
52
66
|
specs = matches.select { |x| is_a_test_file?(x) && File.file?(x) }.map { |x| File.expand_path x }
|
67
|
+
specs = (@last_failed_run + specs).flatten if @last_failed_run
|
68
|
+
|
69
|
+
specs
|
53
70
|
end
|
54
71
|
|
55
72
|
def is_a_test_file?(file)
|
@@ -5,7 +5,7 @@ describe StartingBlocks::Publisher do
|
|
5
5
|
let(:results) { Object.new }
|
6
6
|
let(:parsed_results) { Object.new }
|
7
7
|
let(:result_parser) { mock() }
|
8
|
-
let(:
|
8
|
+
let(:files) { Object.new }
|
9
9
|
|
10
10
|
before do
|
11
11
|
result_parser.stubs(:parse).with(results).returns parsed_results
|
@@ -60,50 +60,50 @@ describe StartingBlocks::Publisher do
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
describe "#
|
63
|
+
describe "#publish_files_to_run" do
|
64
64
|
describe "one subscriber" do
|
65
|
-
it "should pass the
|
65
|
+
it "should pass the files to the subscriber" do
|
66
66
|
subscriber = mock()
|
67
|
-
subscriber.expects(:
|
67
|
+
subscriber.expects(:receive_files_to_run).with(files)
|
68
68
|
StartingBlocks::Publisher.subscribers = [subscriber]
|
69
|
-
StartingBlocks::Publisher.
|
69
|
+
StartingBlocks::Publisher.publish_files_to_run files
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
73
|
describe "two subscribers" do
|
74
|
-
it "should pass the
|
74
|
+
it "should pass the files to the subscriber" do
|
75
75
|
first_subscriber = mock()
|
76
|
-
first_subscriber.expects(:
|
76
|
+
first_subscriber.expects(:receive_files_to_run).with(files)
|
77
77
|
second_subscriber = mock()
|
78
|
-
second_subscriber.expects(:
|
78
|
+
second_subscriber.expects(:receive_files_to_run).with(files)
|
79
79
|
StartingBlocks::Publisher.subscribers = [first_subscriber, second_subscriber]
|
80
|
-
StartingBlocks::Publisher.
|
80
|
+
StartingBlocks::Publisher.publish_files_to_run files
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
84
|
describe "nil subscribers" do
|
85
85
|
it "should not error" do
|
86
86
|
StartingBlocks::Publisher.subscribers = nil
|
87
|
-
StartingBlocks::Publisher.
|
87
|
+
StartingBlocks::Publisher.publish_files_to_run files
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
91
|
describe "no subscribers" do
|
92
92
|
it "should not error" do
|
93
93
|
StartingBlocks::Publisher.subscribers = []
|
94
|
-
StartingBlocks::Publisher.
|
94
|
+
StartingBlocks::Publisher.publish_files_to_run files
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
98
98
|
describe "subscriber with no method to receive" do
|
99
99
|
it "should not error" do
|
100
100
|
first_subscriber = mock()
|
101
|
-
first_subscriber.expects(:
|
101
|
+
first_subscriber.expects(:receive_files_to_run).with(files)
|
102
102
|
second_subscriber = Object.new
|
103
103
|
third_subscriber = mock()
|
104
|
-
third_subscriber.expects(:
|
104
|
+
third_subscriber.expects(:receive_files_to_run).with(files)
|
105
105
|
StartingBlocks::Publisher.subscribers = [first_subscriber, second_subscriber, third_subscriber]
|
106
|
-
StartingBlocks::Publisher.
|
106
|
+
StartingBlocks::Publisher.publish_files_to_run files
|
107
107
|
end
|
108
108
|
end
|
109
109
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: starting_blocks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.19
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -164,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
164
164
|
version: '0'
|
165
165
|
segments:
|
166
166
|
- 0
|
167
|
-
hash:
|
167
|
+
hash: -2515999654231235318
|
168
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
169
|
none: false
|
170
170
|
requirements:
|
@@ -173,10 +173,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
173
173
|
version: '0'
|
174
174
|
segments:
|
175
175
|
- 0
|
176
|
-
hash:
|
176
|
+
hash: -2515999654231235318
|
177
177
|
requirements: []
|
178
178
|
rubyforge_project:
|
179
|
-
rubygems_version: 1.8.
|
179
|
+
rubygems_version: 1.8.25
|
180
180
|
signing_key:
|
181
181
|
specification_version: 3
|
182
182
|
summary: One command to run all tests, test watcher, etc.
|