mynyml-watchr 0.3.0 → 0.5.2

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.
data/test/test_watchr.rb CHANGED
@@ -8,175 +8,52 @@ class TestWatchr < Test::Unit::TestCase
8
8
 
9
9
  ## options
10
10
 
11
- test "debug" do
11
+ test "debug option" do
12
12
  Watchr.options.debug.should be(false)
13
13
  Watchr.options.debug = true
14
14
  Watchr.options.debug.should be(true)
15
15
  end
16
- end
17
-
18
- class TestScript < Test::Unit::TestCase
19
- include Watchr
20
-
21
- ## api
22
-
23
- test "watch" do
24
- script = Script.new
25
- script.watch('pattern') { nil }
26
-
27
- script.map.first[0].should be('pattern')
28
- script.map.first[1].call.should be(nil)
29
- end
30
-
31
- test "default action" do
32
- script = Script.new
33
- script.default_action { nil }
34
- script.watch('pattern')
35
-
36
- script.map.first[0].should be('pattern')
37
- script.map.first[1].call.should be(nil)
38
- end
39
-
40
- test "automatically picks up changes to script file" do
41
- file = Fixture.create('script.watchr', "watch('abc')")
42
- script = Script.new(file)
43
- script.changed?.should be(false)
44
-
45
- script.stubs(:reference_time).returns(Time.now - 10) #mock sleep
46
-
47
- Fixture.create('script.watchr', "watch('def')")
48
- script.changed?.should be(true)
49
- end
50
-
51
- test "reparses script file" do
52
- file = Fixture.create('script.watchr', "watch('abc')")
53
- script = Script.new(file)
54
- script.map.first.should include('abc')
55
- script.map.first.should exclude('def')
56
-
57
- script.stubs(:reference_time).returns(Time.now - 10) #mock sleep
58
- Fixture.create('script.watchr', "watch('def')")
59
- script.parse!
60
- script.map.first.should include('def')
61
- script.map.first.should exclude('abc')
62
- end
63
- end
64
-
65
- class TestRunner < Test::Unit::TestCase
66
- include Watchr
67
-
68
- def teardown
69
- Fixture.delete_all
70
- Watchr.options = nil
71
- end
72
16
 
73
- test "maps observed files to their pattern and the actions they trigger" do
74
- file_a = Fixture.create('a.rb')
75
- file_b = Fixture.create('b.rb')
76
- script = Script.new
77
- script.watch(file_a.pattern) { 'ohaie' }
78
- script.watch(file_b.pattern) { 'kthnx' }
17
+ ## functionality
79
18
 
80
- runner = Runner.new(script)
81
- runner.map[file_a.rel][0].should be(file_a.pattern)
82
- runner.map[file_b.rel][0].should be(file_b.pattern)
83
- runner.map[file_a.rel][1].call.should be('ohaie')
84
- runner.map[file_b.rel][1].call.should be('kthnx')
85
- end
86
-
87
- test "latest mtime" do
88
- file_a = Fixture.create('a.rb')
89
- file_b = Fixture.create('b.rb')
90
- script = Script.new
91
- script.watch(file_a.pattern) { 'ohaie' }
92
- script.watch(file_b.pattern) { 'kthnx' }
93
-
94
- runner = Runner.new(script)
95
- file_a.touch
96
-
97
- runner.last_updated_file.rel.should be(file_a.rel)
98
- end
99
-
100
- test "monitors file changes" do
101
- file_a = Fixture.create('a.rb')
102
- script = Script.new
103
- script.watch(file_a.pattern) { nil }
104
-
105
- runner = Runner.new(script)
106
- runner.changed?.should be(false)
107
-
108
- # fake Kernel.sleep(2)
109
- file_a.mtime = Time.now - 2
110
- runner.init_time = Time.now - 2
111
-
112
- file_a.touch
113
- runner.changed?.should be(true)
114
- end
115
-
116
- test "calls action corresponding to file changed" do
117
- script = Script.new
118
- script.watch(Fixture.create.pattern) { throw(:ohaie) }
119
-
120
- runner = Runner.new(script)
121
- runner.init_time = Time.now - 2
122
- runner.changed?
123
- assert_throws(:ohaie) do
124
- runner.instance_eval { call_action! }
125
- end
126
- end
127
-
128
- test "passes match data to action" do
129
- file_a = Fixture.create('a.rb')
130
- script = Script.new
131
- pattern = Fixture::DIR.join('(.*)\.(.*)$').rel
132
- script.watch((pattern)) {|md| [md[1], md[2]].join('|') }
133
-
134
- runner = Runner.new(script)
135
- runner.init_time = Time.now - 2
136
- file_a.touch
137
- runner.changed?
138
- runner.instance_eval { call_action! }.should be('a|rb')
19
+ test "debug" do
20
+ capture_io { Watchr.debug('abc') }.stdout.should be('')
21
+ Watchr.options.debug = true
22
+ capture_io { Watchr.debug('abc') }.stdout.should be("[watchr debug] abc\n")
139
23
  end
140
24
 
141
- test "doesn't run at startup" do
142
- file = Fixture.create('a.rb')
143
- script = Script.new
144
- script.watch(file.pattern) { nil }
25
+ test "picking handler" do
26
+ Watchr.handler = nil
27
+ ENV['HANDLER'] = 'linux'
28
+ Watchr.handler.should be(Watchr::EventHandler::Unix)
145
29
 
146
- runner = Runner.new(script)
147
- runner.changed?.should be(false)
148
- end
30
+ Watchr.handler = nil
31
+ ENV['HANDLER'] = 'bsd'
32
+ Watchr.handler.should be(Watchr::EventHandler::Unix)
149
33
 
150
- test "a path only triggers its last matching pattern's action" do
151
- file_a = Fixture.create('fix_a.rb')
152
- file_b = Fixture.create('fix_b.rb')
153
- script = Script.new
154
- script.watch('fix_a\.rb') { throw(:ohaie) }
155
- script.watch('fix_.*\.rb') { throw(:kkthx) }
34
+ Watchr.handler = nil
35
+ ENV['HANDLER'] = 'darwin'
36
+ Watchr.handler.should be(Watchr::EventHandler::Unix)
156
37
 
157
- runner = Runner.new(script)
158
- runner.init_time = Time.now - 2
159
- file_a.touch
160
- runner.changed?
161
- assert_throws(:kkthx) do
162
- runner.instance_eval { call_action! }
163
- end
164
- end
38
+ Watchr.handler = nil
39
+ ENV['HANDLER'] = 'unix'
40
+ Watchr.handler.should be(Watchr::EventHandler::Unix)
165
41
 
166
- test "updates map when script changes" do
167
- file_a = Fixture.create('aaa')
168
- file_b = Fixture.create('bbb')
169
- script = Fixture.create('script.watchr', "watch('aaa')")
42
+ Watchr.handler = nil
43
+ ENV['HANDLER'] = 'mswin'
44
+ Watchr.handler.should be(Watchr::EventHandler::Portable)
170
45
 
171
- # fake Kernel.sleep(2)
172
- script.mtime = Time.now - 2
46
+ Watchr.handler = nil
47
+ ENV['HANDLER'] = 'cygwin'
48
+ Watchr.handler.should be(Watchr::EventHandler::Portable)
173
49
 
174
- runner = Runner.new(script)
175
- assert runner.paths.first.match('aaa')
50
+ Watchr.handler = nil
51
+ ENV['HANDLER'] = 'portable'
52
+ Watchr.handler.should be(Watchr::EventHandler::Portable)
176
53
 
177
- Fixture.create('script.watchr', "watch('bbb')")
178
-
179
- runner.trigger
180
- assert runner.paths.first.match('bbb')
54
+ Watchr.handler = nil
55
+ ENV['HANDLER'] = 'other'
56
+ Watchr.handler.should be(Watchr::EventHandler::Portable)
181
57
  end
182
58
  end
59
+
data/watchr.gemspec CHANGED
@@ -1,71 +1,62 @@
1
- --- !ruby/object:Gem::Specification
2
- name: watchr
3
- version: !ruby/object:Gem::Version
4
- version: 0.3.0
5
- platform: ruby
6
- authors:
7
- - Martin Aumont
8
- autorequire:
9
- bindir: bin
10
- cert_chain: []
11
-
12
- date: 2009-08-26 00:00:00 -04:00
13
- default_executable:
14
- dependencies: []
15
-
16
- description: Continious anything; project files observer/trigger.
17
- email: mynyml@gmail.com
18
- executables:
19
- - watchr
20
- extensions: []
21
-
22
- extra_rdoc_files: []
23
-
24
- files:
25
- - Rakefile
26
- - test
27
- - test/test_watchr.rb
28
- - test/test_helper.rb
29
- - TODO.txt
30
- - bin
31
- - bin/watchr
32
- - lib
33
- - lib/watchr
34
- - lib/watchr/version.rb
35
- - lib/watchr.rb
36
- - README.rdoc
37
- - LICENSE
38
- - yard.watchr
39
- - rdoc.watchr
40
- - specs.watchr
41
- - watchr.gemspec
42
- has_rdoc: true
43
- homepage: ""
44
- licenses: []
45
-
46
- post_install_message:
47
- rdoc_options: []
48
-
49
- require_paths:
50
- - lib
51
- required_ruby_version: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- version: "0"
56
- version:
57
- required_rubygems_version: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: "0"
62
- version:
63
- requirements: []
64
-
65
- rubyforge_project:
66
- rubygems_version: 1.3.5
67
- signing_key:
68
- specification_version: 3
69
- summary: Continious anything
70
- test_files: []
71
1
 
2
+ Gem::Specification.new do |s|
3
+ s.name = 'watchr'
4
+ s.version = '0.5.2'
5
+ s.date = '2009-09-17'
6
+ s.summary = "Modern continious testing (flexible alternative to autotest)"
7
+ s.description = "Modern continious testing (flexible alternative to autotest)."
8
+ s.author = "mynyml"
9
+ s.email = 'mynyml@gmail.com'
10
+ s.homepage = 'http://mynyml.com/ruby/flexible-continuous-testing'
11
+ s.has_rdoc = true
12
+ s.rdoc_options = %w( --main README.rdoc )
13
+ s.extra_rdoc_files = %w( README.rdoc )
14
+ s.require_path = "lib"
15
+ s.bindir = "bin"
16
+ s.executables = "watchr"
17
+ s.files = %w[
18
+ README.rdoc
19
+ LICENSE
20
+ TODO.txt
21
+ Rakefile
22
+ bin/watchr
23
+ lib/watchr.rb
24
+ lib/watchr/version.rb
25
+ lib/watchr/script.rb
26
+ lib/watchr/controller.rb
27
+ lib/watchr/event_handlers/base.rb
28
+ lib/watchr/event_handlers/unix.rb
29
+ lib/watchr/event_handlers/portable.rb
30
+ test/test_helper.rb
31
+ test/test_watchr.rb
32
+ test/test_script.rb
33
+ test/test_controller.rb
34
+ test/event_handlers/test_base.rb
35
+ test/event_handlers/test_unix.rb
36
+ test/event_handlers/test_portable.rb
37
+ specs.watchr
38
+ docs.watchr
39
+ watchr.gemspec
40
+ ]
41
+ s.test_files = %w[
42
+ test/test_helper.rb
43
+ test/test_watchr.rb
44
+ test/test_script.rb
45
+ test/test_controller.rb
46
+ test/event_handlers/test_base.rb
47
+ test/event_handlers/test_unix.rb
48
+ test/event_handlers/test_portable.rb
49
+ ]
50
+
51
+ #require 'rbconfig'
52
+ #unless Config::CONFIG['host_os'] =~ /mswin|windows|cygwin/i
53
+ unless RUBY_PLATFORM =~ /mswin|windows|cygwin/i
54
+ s.add_dependency 'rev', '>= 0.3.0'
55
+ end
56
+
57
+ s.add_development_dependency 'mocha'
58
+ s.add_development_dependency 'jeremymcanally-matchy'
59
+ s.add_development_dependency 'jeremymcanally-pending'
60
+ s.add_development_dependency 'mynyml-every'
61
+ s.add_development_dependency 'mynyml-redgreen'
62
+ end
metadata CHANGED
@@ -1,51 +1,115 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mynyml-watchr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
- - Martin Aumont
7
+ - mynyml
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-25 21:00:00 -07:00
12
+ date: 2009-09-17 00:00:00 -07:00
13
13
  default_executable:
14
- dependencies: []
15
-
16
- description: Continious anything; project files observer/trigger.
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rev
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.3.0
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: mocha
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: jeremymcanally-matchy
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: jeremymcanally-pending
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: mynyml-every
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: mynyml-redgreen
67
+ type: :development
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: "0"
74
+ version:
75
+ description: Modern continious testing (flexible alternative to autotest).
17
76
  email: mynyml@gmail.com
18
77
  executables:
19
78
  - watchr
20
79
  extensions: []
21
80
 
22
- extra_rdoc_files: []
23
-
81
+ extra_rdoc_files:
82
+ - README.rdoc
24
83
  files:
25
- - Rakefile
26
- - test
27
- - test/test_watchr.rb
28
- - test/test_helper.rb
84
+ - README.rdoc
85
+ - LICENSE
29
86
  - TODO.txt
30
- - bin
87
+ - Rakefile
31
88
  - bin/watchr
32
- - lib
33
- - lib/watchr
34
- - lib/watchr/version.rb
35
89
  - lib/watchr.rb
36
- - README.rdoc
37
- - LICENSE
38
- - yard.watchr
39
- - rdoc.watchr
90
+ - lib/watchr/version.rb
91
+ - lib/watchr/script.rb
92
+ - lib/watchr/controller.rb
93
+ - lib/watchr/event_handlers/base.rb
94
+ - lib/watchr/event_handlers/unix.rb
95
+ - lib/watchr/event_handlers/portable.rb
96
+ - test/test_helper.rb
97
+ - test/test_watchr.rb
98
+ - test/test_script.rb
99
+ - test/test_controller.rb
100
+ - test/event_handlers/test_base.rb
101
+ - test/event_handlers/test_unix.rb
102
+ - test/event_handlers/test_portable.rb
40
103
  - specs.watchr
104
+ - docs.watchr
41
105
  - watchr.gemspec
42
106
  has_rdoc: true
43
- homepage: ""
44
- licenses: []
45
-
107
+ homepage: http://mynyml.com/ruby/flexible-continuous-testing
108
+ licenses:
46
109
  post_install_message:
47
- rdoc_options: []
48
-
110
+ rdoc_options:
111
+ - --main
112
+ - README.rdoc
49
113
  require_paths:
50
114
  - lib
51
115
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -65,7 +129,13 @@ requirements: []
65
129
  rubyforge_project:
66
130
  rubygems_version: 1.3.5
67
131
  signing_key:
68
- specification_version: 3
69
- summary: Continious anything
70
- test_files: []
71
-
132
+ specification_version: 2
133
+ summary: Modern continious testing (flexible alternative to autotest)
134
+ test_files:
135
+ - test/test_helper.rb
136
+ - test/test_watchr.rb
137
+ - test/test_script.rb
138
+ - test/test_controller.rb
139
+ - test/event_handlers/test_base.rb
140
+ - test/event_handlers/test_unix.rb
141
+ - test/event_handlers/test_portable.rb