spectator 1.3.2 → 1.4.0

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
2
  SHA1:
3
- metadata.gz: f76036a4e109005feb8d4e6d634c562a73b71e58
4
- data.tar.gz: e1fb1af929bf3cf83347ca7a0fc30bfbf12ac19c
3
+ metadata.gz: 6693d10d070fcf32a20f5b6a898c8b55708e86eb
4
+ data.tar.gz: 9c6919feff85c5f37b0c5c4e7aaaedf7829436b5
5
5
  SHA512:
6
- metadata.gz: 8a122f32063d6bcc858824f57f626038d6932f01b81f9f6cb0a6363cb6cb6652365542aa16dd86c893161a22afbd07f48b3d86220deb3ff886b6702121592642
7
- data.tar.gz: 2932484faefbdede1a8f3f63c044107669f70dc53d775a3799cbcfa087a0162892499e1a6ba95a78bf8dc3b00900327e65a025818f90f5f568a7a7c40e2bcbed
6
+ metadata.gz: a592b163a872d7a0a6cdf21bd71094fdaf0987bf20b1254d2ea70c82776968ae6588174af27a20aa9594c0c519fe2a95d9ec36fed116697139a5e48f386ae12a
7
+ data.tar.gz: 3966c15c7512642b2cb6b637b42356a849bc28327c4e5a65921db1459e3e14990e264cb0ff9bc31378c24802926b05d97bd946d5297f68a778b92ff63a0664cb
data/README.md CHANGED
@@ -34,7 +34,7 @@ Type `q` and `ENTER` (or `CTRL+C` again) to quit.
34
34
  Type `a` and `ENTER` (or `CTRL+C` again) to execute the whole suite of specs.
35
35
 
36
36
 
37
- ## Advanced (upcoming!)
37
+ ## Advanced Configuration
38
38
 
39
39
  If you want to override some path matching:
40
40
 
@@ -93,7 +93,24 @@ SPEC_DIR_REGEXP: 'spec/cli'
93
93
 
94
94
  spectator .my-spectator-config
95
95
 
96
+ #### With a `.spectator.rb` script file
97
+
98
+ ```ruby
99
+ # contents of ".spectator.rb" file
100
+ module Spectator
101
+ class SuccessNotifier
102
+ def notify(success)
103
+ fork { `say #{say_message(success)}`}
104
+ end
105
+
106
+ def say_message(success)
107
+ success ? 'All right' : 'Ouch'
108
+ end
109
+ end
110
+ end
111
+ ```
112
+
96
113
 
97
114
  ## License
98
115
 
99
- Copyright © 2011-2012 Elia Schito, released under the [MIT license](https://github.com/elia/spectator/blob/master/MIT-LICENSE)
116
+ Copyright © 2011-2014 Elia Schito, released under the [MIT license](https://github.com/elia/spectator/blob/master/MIT-LICENSE)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # coding: utf-8
3
3
 
4
- usage = "Usage: spectator [yaml-config]"
4
+ usage = "Usage: spectator [yaml-config|ruby-script-file|...]"
5
5
  case ARGV.first
6
6
  when '-h'
7
7
  puts usage
@@ -20,10 +20,18 @@ end
20
20
  require 'spectator'
21
21
 
22
22
  require 'yaml'
23
- config_file = ARGV.first || '.spectator'
24
- YAML.load_file(config_file).each do |name, value|
25
- ENV[name] ||= value
26
- end if File.exist? config_file
23
+
24
+ config_files = ARGV.empty? ? %w[.spectator .spectator.rb] : ARGV
25
+
26
+ config_files.each do |config_file|
27
+ if config_file.end_with?('.rb')
28
+ load config_file if File.exist? config_file
29
+ else
30
+ YAML.load_file(config_file).each do |name, value|
31
+ ENV[name] ||= value
32
+ end if File.exist? config_file
33
+ end
34
+ end
27
35
 
28
36
  config = Spectator.config(debug: ARGV.include?('--debug'))
29
37
  Spectator.run(config)
@@ -39,6 +39,11 @@ module Spectator
39
39
  listener = listener.filter %r{^(#{config.base_dir_regexp}|#{config.spec_dir_regexp})/}
40
40
  listener = listener.change do |modified, added, removed|
41
41
  p ['modified, added, removed', modified, added, removed]
42
+
43
+ if added.any? or removed.any?
44
+ Spectator::SpecsMatcher.reset_matchable_spec_files!
45
+ end
46
+
42
47
  files = [modified, added].flatten
43
48
  files.each { |relative| queue.push relative }
44
49
  p on_change
@@ -29,10 +29,17 @@ module Spectator
29
29
  end
30
30
 
31
31
  def match_specs matchable_paths
32
- matchable_paths.uniq.map do |path|
33
- # Dir['**/**'].grep(%r{^#{config.spec_dir_regexp}}).grep(/\b#{path}((_spec)?\.rb)?$/)
34
- Dir['**/**'].grep(%r{^#{config.spec_dir_regexp}}).grep(/\b#{path}_spec\.rb$/)
35
- end.flatten
32
+ matchable_paths.uniq.flat_map do |path|
33
+ all_matchable_spec_files.grep(/\b#{path}_spec\.rb$/)
34
+ end
35
+ end
36
+
37
+ def all_matchable_spec_files
38
+ @@all_matchable_spec_files ||= Dir['**/**'].grep(%r{^#{config.spec_dir_regexp}})
39
+ end
40
+
41
+ def self.reset_matchable_spec_files!
42
+ @@all_matchable_spec_files = nil
36
43
  end
37
44
 
38
45
  attr_reader :config, :files
@@ -1,3 +1,3 @@
1
1
  module Spectator
2
- VERSION = '1.3.2'
2
+ VERSION = '1.4.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spectator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elia
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-07 00:00:00.000000000 Z
12
+ date: 2014-12-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: listen
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
143
  version: '0'
144
144
  requirements: []
145
145
  rubyforge_project: rspec-rails-watchr
146
- rubygems_version: 2.2.2
146
+ rubygems_version: 2.4.3
147
147
  signing_key:
148
148
  specification_version: 4
149
149
  summary: Watches specs for a Ruby or Rails project
@@ -151,3 +151,4 @@ test_files:
151
151
  - spec/spec_helper.rb
152
152
  - spec/spectator/specs_matcher_spec.rb
153
153
  - spec/spectator_spec.rb
154
+ has_rdoc: