guard-jasmine 2.0.0 → 2.0.1
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/generators/guard_jasmine/install_generator.rb +2 -3
- data/lib/generators/guard_jasmine/templates/Guardfile +4 -4
- data/lib/guard/jasmine.rb +14 -21
- data/lib/guard/jasmine/cli.rb +5 -10
- data/lib/guard/jasmine/coverage.rb +7 -9
- data/lib/guard/jasmine/formatter.rb +8 -11
- data/lib/guard/jasmine/inspector.rb +1 -4
- data/lib/guard/jasmine/phantomjs/guard-jasmine.js +12 -4
- data/lib/guard/jasmine/phantomjs/src/guard-jasmine.coffee +14 -4
- data/lib/guard/jasmine/runner.rb +508 -523
- data/lib/guard/jasmine/server.rb +42 -43
- data/lib/guard/jasmine/task.rb +2 -5
- data/lib/guard/jasmine/util.rb +1 -5
- data/lib/guard/jasmine/version.rb +1 -1
- metadata +16 -58
data/lib/guard/jasmine/server.rb
CHANGED
@@ -7,15 +7,13 @@ require 'jasmine'
|
|
7
7
|
|
8
8
|
module Guard
|
9
9
|
class Jasmine
|
10
|
-
|
11
10
|
# Start and stop a Jasmine test server for requesting the specs
|
12
11
|
# from PhantomJS.
|
13
12
|
#
|
14
13
|
module Server
|
15
14
|
class << self
|
16
|
-
|
17
15
|
attr_accessor :process
|
18
|
-
|
16
|
+
attr_accessor :cmd
|
19
17
|
# Start the internal test server for getting the Jasmine runner.
|
20
18
|
#
|
21
19
|
# @param [Hash] options the server options
|
@@ -32,14 +30,14 @@ module Guard
|
|
32
30
|
timeout = options[:server_timeout]
|
33
31
|
|
34
32
|
case server
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
33
|
+
when :webrick, :mongrel, :thin, :puma
|
34
|
+
start_rack_server(server, port, options)
|
35
|
+
when :unicorn
|
36
|
+
start_unicorn_server(port, options)
|
37
|
+
when :jasmine_gem
|
38
|
+
start_rake_server(port, 'jasmine', options)
|
39
|
+
else
|
40
|
+
start_rake_server(port, server.to_s, options) unless server == :none
|
43
41
|
end
|
44
42
|
|
45
43
|
wait_for_server(port, timeout) unless server == :none
|
@@ -48,9 +46,9 @@ module Guard
|
|
48
46
|
# Stop the server thread.
|
49
47
|
#
|
50
48
|
def stop
|
51
|
-
if
|
49
|
+
if process
|
52
50
|
::Guard::UI.info 'Guard::Jasmine stops server.'
|
53
|
-
|
51
|
+
process.stop(5)
|
54
52
|
end
|
55
53
|
end
|
56
54
|
|
@@ -72,9 +70,9 @@ module Guard
|
|
72
70
|
# @return [Symbol] the server strategy
|
73
71
|
#
|
74
72
|
def detect_server(spec_dir)
|
75
|
-
if spec_dir && File.
|
73
|
+
if spec_dir && File.exist?(File.join(spec_dir, 'support', 'jasmine.yml'))
|
76
74
|
:jasmine_gem
|
77
|
-
elsif File.
|
75
|
+
elsif File.exist?('config.ru')
|
78
76
|
%w(unicorn thin mongrel puma).each do |server|
|
79
77
|
begin
|
80
78
|
require server
|
@@ -108,15 +106,7 @@ module Guard
|
|
108
106
|
coverage = options[:coverage] ? 'on' : 'off'
|
109
107
|
|
110
108
|
::Guard::UI.info "Guard::Jasmine starts #{ server } spec server on port #{ port } in #{ environment } environment (coverage #{ coverage })."
|
111
|
-
|
112
|
-
self.process = ChildProcess.build(*['rackup', '-E', environment.to_s, '-p', port.to_s, '-s', server.to_s, rackup_config].compact)
|
113
|
-
self.process.environment['COVERAGE'] = options[:coverage].to_s
|
114
|
-
self.process.environment['IGNORE_INSTRUMENTATION'] = options[:ignore_instrumentation].to_s
|
115
|
-
self.process.io.inherit! if options[:verbose]
|
116
|
-
self.process.start
|
117
|
-
|
118
|
-
rescue => e
|
119
|
-
::Guard::UI.error "Cannot start Rack server: #{ e.message }"
|
109
|
+
execute(options, ['rackup', '-E', environment.to_s, '-p', port.to_s, '-s', server.to_s, rackup_config])
|
120
110
|
end
|
121
111
|
|
122
112
|
# Start the Rack server of the current project. This
|
@@ -132,14 +122,7 @@ module Guard
|
|
132
122
|
coverage = options[:coverage] ? 'on' : 'off'
|
133
123
|
|
134
124
|
::Guard::UI.info "Guard::Jasmine starts Unicorn spec server on port #{ port } in #{ environment } environment (coverage #{ coverage })."
|
135
|
-
|
136
|
-
self.process = ChildProcess.build('unicorn_rails', '-E', environment.to_s, '-p', port.to_s)
|
137
|
-
self.process.environment['COVERAGE'] = options[:coverage].to_s
|
138
|
-
self.process.io.inherit! if options[:verbose]
|
139
|
-
self.process.start
|
140
|
-
|
141
|
-
rescue => e
|
142
|
-
::Guard::UI.error "Cannot start Unicorn server: #{ e.message }"
|
125
|
+
execute(options, ['unicorn_rails', '-E', environment.to_s, '-p', port.to_s])
|
143
126
|
end
|
144
127
|
|
145
128
|
# Start the Jasmine gem server of the current project.
|
@@ -149,15 +132,27 @@ module Guard
|
|
149
132
|
# @option options [Symbol] server the rack server to use
|
150
133
|
#
|
151
134
|
def start_rake_server(port, task, options)
|
152
|
-
|
153
135
|
::Guard::UI.info "Guard::Jasmine starts Jasmine Gem test server on port #{ port }."
|
136
|
+
execute(options, ['rake', task, "JASMINE_PORT=#{ port }"])
|
137
|
+
end
|
154
138
|
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
139
|
+
# Builds a child process with the given command and arguments
|
140
|
+
# @param [Array<string>] array of arguments to send to ChildProcess
|
141
|
+
def execute(options, cmd)
|
142
|
+
if RUBY_PLATFORM == "java"
|
143
|
+
cmd.unshift("jruby", "-S")
|
144
|
+
else
|
145
|
+
cmd.unshift("ruby", "-S")
|
146
|
+
end
|
147
|
+
self.cmd = cmd
|
148
|
+
self.process = ChildProcess.build(*cmd.compact)
|
149
|
+
process.environment['COVERAGE'] = options[:coverage].to_s
|
150
|
+
process.environment['IGNORE_INSTRUMENTATION'] = options[:ignore_instrumentation].to_s
|
151
|
+
process.io.inherit! if options[:verbose]
|
152
|
+
process.start
|
159
153
|
rescue => e
|
160
|
-
::Guard::UI.error "Cannot start
|
154
|
+
::Guard::UI.error "Cannot start server using command #{ cmd.join(' ') }."
|
155
|
+
::Guard::UI.error "Error was: #{ e.message }"
|
161
156
|
end
|
162
157
|
|
163
158
|
# Wait until the Jasmine test server is running.
|
@@ -166,8 +161,8 @@ module Guard
|
|
166
161
|
# @param [Number] timeout the server wait timeout
|
167
162
|
#
|
168
163
|
def wait_for_server(port, timeout)
|
169
|
-
Timeout
|
170
|
-
|
164
|
+
Timeout.timeout(timeout) do
|
165
|
+
loop do
|
171
166
|
begin
|
172
167
|
::TCPSocket.new('127.0.0.1', port).close
|
173
168
|
break
|
@@ -179,12 +174,16 @@ module Guard
|
|
179
174
|
end
|
180
175
|
|
181
176
|
rescue Timeout::Error
|
182
|
-
::Guard::UI.warning
|
177
|
+
::Guard::UI.warning "Timeout while waiting for the server to startup"
|
178
|
+
::Guard::UI.warning "Most likely there is a configuration error that's preventing the server from starting"
|
179
|
+
::Guard::UI.warning "You may need to increase the `:server_timeout` option."
|
180
|
+
::Guard::UI.warning "The commandline that was used to start the server was:"
|
181
|
+
::Guard::UI.warning cmd.join(' ')
|
182
|
+
::Guard::UI.warning "You should attempt to run that and see if any errors occur"
|
183
|
+
|
183
184
|
throw :task_has_failed
|
184
185
|
end
|
185
|
-
|
186
186
|
end
|
187
187
|
end
|
188
|
-
|
189
188
|
end
|
190
189
|
end
|
data/lib/guard/jasmine/task.rb
CHANGED
@@ -6,12 +6,10 @@ require 'rake/tasklib'
|
|
6
6
|
require 'guard/jasmine/cli'
|
7
7
|
|
8
8
|
module Guard
|
9
|
-
|
10
9
|
# Provides a method to define a Rake task that
|
11
10
|
# runs the Jasmine specs.
|
12
11
|
#
|
13
12
|
class JasmineTask < ::Rake::TaskLib
|
14
|
-
|
15
13
|
# Name of the main, top level task
|
16
14
|
attr_accessor :name
|
17
15
|
|
@@ -39,14 +37,13 @@ module Guard
|
|
39
37
|
rescue SystemExit => e
|
40
38
|
case e.status
|
41
39
|
when 1
|
42
|
-
|
40
|
+
raise 'Some specs have failed'
|
43
41
|
when 2
|
44
|
-
|
42
|
+
raise "The spec couldn't be run: #{ e.message }'"
|
45
43
|
end
|
46
44
|
end
|
47
45
|
end
|
48
46
|
end
|
49
47
|
end
|
50
|
-
|
51
48
|
end
|
52
49
|
end
|
data/lib/guard/jasmine/util.rb
CHANGED
@@ -4,11 +4,9 @@ require 'guard/jasmine/formatter'
|
|
4
4
|
|
5
5
|
module Guard
|
6
6
|
class Jasmine
|
7
|
-
|
8
7
|
# Provider of some shared utility methods.
|
9
8
|
#
|
10
9
|
module Util
|
11
|
-
|
12
10
|
# Verifies if the Jasmine test runner is available.
|
13
11
|
# If the runner is not available within 15 seconds, then
|
14
12
|
# the availability check will cancel.
|
@@ -40,7 +38,7 @@ module Guard
|
|
40
38
|
available
|
41
39
|
end
|
42
40
|
|
43
|
-
rescue Timeout::Error
|
41
|
+
rescue Timeout::Error
|
44
42
|
::Guard::Jasmine::Formatter.error 'Timeout waiting for the Jasmine test runner.'
|
45
43
|
false
|
46
44
|
|
@@ -110,8 +108,6 @@ module Guard
|
|
110
108
|
|
111
109
|
nil
|
112
110
|
end
|
113
|
-
|
114
111
|
end
|
115
|
-
|
116
112
|
end
|
117
113
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guard-jasmine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Kessler
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-12-
|
12
|
+
date: 2014-12-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: guard
|
@@ -25,6 +25,20 @@ dependencies:
|
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '2.8'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: guard-compat
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0.3'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0.3'
|
28
42
|
- !ruby/object:Gem::Dependency
|
29
43
|
name: jasmine
|
30
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,62 +151,6 @@ dependencies:
|
|
137
151
|
- - ">="
|
138
152
|
- !ruby/object:Gem::Version
|
139
153
|
version: '0'
|
140
|
-
- !ruby/object:Gem::Dependency
|
141
|
-
name: guard-coffeescript
|
142
|
-
requirement: !ruby/object:Gem::Requirement
|
143
|
-
requirements:
|
144
|
-
- - ">="
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: '0'
|
147
|
-
type: :development
|
148
|
-
prerelease: false
|
149
|
-
version_requirements: !ruby/object:Gem::Requirement
|
150
|
-
requirements:
|
151
|
-
- - ">="
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: '0'
|
154
|
-
- !ruby/object:Gem::Dependency
|
155
|
-
name: guard-shell
|
156
|
-
requirement: !ruby/object:Gem::Requirement
|
157
|
-
requirements:
|
158
|
-
- - ">="
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
version: '0'
|
161
|
-
type: :development
|
162
|
-
prerelease: false
|
163
|
-
version_requirements: !ruby/object:Gem::Requirement
|
164
|
-
requirements:
|
165
|
-
- - ">="
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
version: '0'
|
168
|
-
- !ruby/object:Gem::Dependency
|
169
|
-
name: guard-rspec
|
170
|
-
requirement: !ruby/object:Gem::Requirement
|
171
|
-
requirements:
|
172
|
-
- - ">="
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
version: '0'
|
175
|
-
type: :development
|
176
|
-
prerelease: false
|
177
|
-
version_requirements: !ruby/object:Gem::Requirement
|
178
|
-
requirements:
|
179
|
-
- - ">="
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
version: '0'
|
182
|
-
- !ruby/object:Gem::Dependency
|
183
|
-
name: rspec
|
184
|
-
requirement: !ruby/object:Gem::Requirement
|
185
|
-
requirements:
|
186
|
-
- - "~>"
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
version: '3'
|
189
|
-
type: :development
|
190
|
-
prerelease: false
|
191
|
-
version_requirements: !ruby/object:Gem::Requirement
|
192
|
-
requirements:
|
193
|
-
- - "~>"
|
194
|
-
- !ruby/object:Gem::Version
|
195
|
-
version: '3'
|
196
154
|
- !ruby/object:Gem::Dependency
|
197
155
|
name: yard
|
198
156
|
requirement: !ruby/object:Gem::Requirement
|