guard-jasmine 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Guard::Jasmine [![Build Status](https://secure.travis-ci.org/netzpirat/guard-jasmine.png)](http://travis-ci.org/netzpirat/guard-jasmine)
2
2
 
3
- Guard::Jasmine automatically tests your Jasmine specs when files are modified.
3
+ Guard::Jasmine automatically tests your Jasmine specs on Rails when files are modified.
4
4
 
5
5
  Tested on MRI Ruby 1.8.7, 1.9.2, 1.9.3, REE and the latest versions of JRuby & Rubinius.
6
6
 
@@ -22,21 +22,6 @@ various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.
22
22
 
23
23
  * Runs on Mac OS X, Linux and Windows.
24
24
 
25
- ## How it works
26
-
27
- ![Guard Jasmine](https://github.com/netzpirat/guard-jasmine/raw/master/resources/guard-jasmine.png)
28
-
29
- 1. Guard is triggered by a file modification.
30
- 2. Guard::Jasmine executes the [PhantomJS script][].
31
- 3. The PhantomJS script requests the Jasmine test runner via HTTP.
32
- 4. Rails uses the asset pipeline to get the Jasmine runner, the code to be tested and the specs.
33
- 5. The asset pipeline prepares the assets, compiles the CoffeeScripts if necessary.
34
- 6. The asset pipeline has finished to prepare the needed assets.
35
- 7. Rails returns the Jasmine runner HTML.
36
- 8. PhantomJS requests linked assets and runs the Jasmine tests headless.
37
- 9. The PhantomJS script extracts the result from the DOM and returns a JSON report.
38
- 10. Guard::Jasmine reports the results to the console and system notifications.
39
-
40
25
  ## Install
41
26
 
42
27
  ### Guard and Guard::Jasmine
@@ -47,7 +32,7 @@ Please make sure to have [Guard][] installed.
47
32
  Add Guard::Jasmine to your `Gemfile`:
48
33
 
49
34
  ```ruby
50
- group :development do
35
+ group :development, :test do
51
36
  gem 'guard-jasmine'
52
37
  end
53
38
  ```
@@ -58,10 +43,52 @@ Add the default Guard::Jasmine template to your `Guardfile` by running:
58
43
  $ guard init jasmine
59
44
  ```
60
45
 
61
- ### Jasminerice
46
+ ### PhantomJS
47
+
48
+ You need the PhantomJS browser installed on your system. You can download binaries for Mac OS X and Windows from
49
+ [the PhantomJS download section][].
50
+
51
+ Alternatively you can install [Homebrew][] on Mac OS X and install it with:
52
+
53
+ ```bash
54
+ $ brew install phantomjs
55
+ ```
56
+
57
+ If you are using Ubuntu 10.10, you can install it with apt:
58
+
59
+ ```bash
60
+ $ sudo add-apt-repository ppa:jerome-etienne/neoip
61
+ $ sudo apt-get update
62
+ $ sudo apt-get install phantomjs
63
+ ```
64
+
65
+ You can also build it from source for several other operating systems, please consult the
66
+ [PhantomJS build instructions][].
67
+
68
+ ## Rails 3.1 setup
62
69
 
63
70
  With Rails 3.1 you can write your Jasmine specs in addition to JavaScript with CoffeeScript, fully integrated into the
64
- Rails 3.1 asset pipeline with Jasminerice.
71
+ Rails 3.1 asset pipeline with [Jasminerice][]. You have full access to your running Rails app, but it's a good practice
72
+ to fake the server response. Check out the excellent [Sinon.JS][] documentation to learn more about this topic.
73
+
74
+ Guard::Jasmine will start a Rails Rack server to run your specs.
75
+
76
+ ### How it works
77
+
78
+ ![Guard Jasmine](https://github.com/netzpirat/guard-jasmine/raw/master/resources/guard-jasmine-rails31.jpg)
79
+
80
+ 1. Guard is triggered by a file modification.
81
+ 2. Guard::Jasmine executes the [PhantomJS script][].
82
+ 3. The PhantomJS script requests the Jasmine test runner via HTTP.
83
+ 4. Rails uses the asset pipeline to get the Jasmine runner, the code to be tested and the specs.
84
+ 5. The asset pipeline prepares the assets, compiles the CoffeeScripts if necessary.
85
+ 6. The asset pipeline has finished to prepare the needed assets.
86
+ 7. Rails returns the Jasmine runner HTML.
87
+ 8. PhantomJS requests linked assets and runs the Jasmine tests headless.
88
+ 9. The PhantomJS script collects the Jasmine runner results and returns a JSON report.
89
+ 10. Guard::Jasmine reports the results to the console and system notifications.
90
+
91
+ ### Jasminerice
65
92
 
66
93
  Please read the detailed installation and configuration instructions at [Jasminerice][].
67
94
 
@@ -88,27 +115,64 @@ asset pipeline manifest in `spec/javascripts/spec.js.coffee`:
88
115
  #=require_tree ./
89
116
  ```
90
117
 
91
- ### PhantomJS
118
+ ## Rails 2 & Rails 3 setup
92
119
 
93
- You need the PhantomJS browser installed on your system. You can download binaries for Mac OS X and Windows from
94
- [the PhantomJS download section][].
120
+ With Rails 2 or Rails 3 you can use [the Jasmine Gem][] to configure your Jasmine specs and server the Jasmine
121
+ runner. You don't have full access to your running Rails app, but it's anyway a good practice to fake the server
122
+ response. Check out the excellent [Sinon.JS][] documentation to learn more about this topic.
95
123
 
96
- Alternatively you can install [Homebrew][] on Mac OS X and install it with:
124
+ Guard::Jasmine will start a Jasmine Gem Rack server to run your specs.
125
+
126
+ ### How it works
127
+
128
+ ![Guard Jasmine](https://github.com/netzpirat/guard-jasmine/raw/master/resources/guard-jasmine-rails23.jpg)
129
+
130
+ 1. Guard is triggered by a file modification.
131
+ 2. Guard::Jasmine executes the [PhantomJS script][].
132
+ 3. The PhantomJS script requests the Jasmine test runner via HTTP.
133
+ 4. The Jasmine Gem reads your configuration and get the assets.
134
+ 5. The Jasmine Gem serves the the code to be tested and the specs.
135
+ 6. PhantomJS runs the Jasmine tests headless.
136
+ 7. The PhantomJS script collects the Jasmine runner results and returns a JSON report.
137
+ 8. Guard::Jasmine reports the results to the console and system notifications.
138
+
139
+ ### Jasmine Gem
140
+
141
+ Please read the detailed installation and configuration instructions at [the Jasmine Gem][].
142
+
143
+ In short, you add it to your `Gemfile`:
144
+
145
+ ```ruby
146
+ group :development, :test do
147
+ gem 'jasmine'
148
+ end
149
+ ```
150
+
151
+ and generate the configuration files:
152
+
153
+ #### for Rails 3
97
154
 
98
155
  ```bash
99
- $ brew install phantomjs
156
+ $ rails g jasmine:install
100
157
  ```
101
158
 
102
- If you are using Ubuntu 10.10, you can install it with apt:
159
+ #### for Rails 2
103
160
 
104
161
  ```bash
105
- $ sudo add-apt-repository ppa:jerome-etienne/neoip
106
- $ sudo apt-get update
107
- $ sudo apt-get install phantomjs
162
+ $ script/generate jasmine
108
163
  ```
109
164
 
110
- You can also build it from source for several other operating systems, please consult the
111
- [PhantomJS build instructions][].
165
+ Now you can configure your spec suite in the Jasmine configuration file `specs/javascripts/support/jasmine.yml`.
166
+
167
+ #### Writing CoffeeScript specs
168
+
169
+ It is also possible to use CoffeeScript in this setup, by using [Guard::CoffeeScript][] to compile your code and even
170
+ specs. Just add something like this *before* Guard::Jasmine:
171
+
172
+ ```ruby
173
+ guard 'coffeescript', :input => 'app/coffeescripts', :output => 'public/javascripts'
174
+ guard 'coffeescript', :input => 'spec/coffeescripts', :output => 'spec/javascripts'
175
+ ```
112
176
 
113
177
  ## Usage
114
178
 
@@ -143,8 +207,11 @@ end
143
207
  The general options configures the environment that is needed to run Guard::Jasmine:
144
208
 
145
209
  ```ruby
146
- :jasmine_url => 'http://192.168.1.5/jasmine' # URL where Jasmine is served.
147
- # default: http://127.0.0.1/jasmine
210
+ :server => :jasmine # Jasmine server to use, either :auto, :rack, :jasmine_gem or :none
211
+ # default: :auto
212
+
213
+ :port => 9292 # Jasmine server port to use.
214
+ # default: 8888
148
215
 
149
216
  :phantomjs_bin => '~/bin/phantomjs' # Path to phantomjs.
150
217
  # default: '/usr/local/bin/phantomjs'
@@ -153,6 +220,13 @@ The general options configures the environment that is needed to run Guard::Jasm
153
220
  # default: 10000
154
221
  ```
155
222
 
223
+ If you're setting the `:server` option to `:none`, you can supply the Jasmine runner url manually:
224
+
225
+ ```ruby
226
+ :jasmine_url => 'http://192.168.1.5/jasmine' # URL where Jasmine is served.
227
+ # default: http://127.0.0.1:8888/jasmine
228
+ ```
229
+
156
230
  ### Spec runner options
157
231
 
158
232
  The spec runner options configures the behavior driven development (or BDD) cycle:
@@ -229,81 +303,6 @@ These options affects what system notifications (growl, libnotify or notifu) are
229
303
  # default: 3
230
304
  ```
231
305
 
232
- ## A note on Rails 2 and 3
233
-
234
- This readme describes the use of Guard::Jasmine with Jasminerice through the asset pipeline, but it is not really
235
- a requirement for Guard::Jasmine. As long as you serve the Jasmine test runner under a certain url,
236
- it's freely up to you how you'll prepare the assets and serve the Jasmine runner.
237
-
238
- You can use [the Jasmine Gem][], configure the test suite in `jasmine.yml` and start the Jasmine test runner with
239
- the supplied Rake task:
240
-
241
- ```bash
242
- $ rake jasmine
243
- ```
244
-
245
- Next follows an example on how to configure your `Guardfile` with the Jasmine gem:
246
-
247
- ```ruby
248
- guard 'jasmine', :jasmine_url => 'http://127.0.0.1:8888' do
249
- watch(%r{public/javascripts/(.+)\.js}) { |m| "spec/javascripts/#{m[1]}_spec.js" }
250
- watch(%r{spec/javascripts/(.+)_spec\.js}) { |m| "spec/javascripts/#{m[1]}_spec.js" }
251
- watch(%r{spec/javascripts/support/jasmine\.yml}) { "spec/javascripts" }
252
- watch(%r{spec/javascripts/support/jasmine_config\.rb}) { "spec/javascripts" }
253
- end
254
- ```
255
-
256
- You can also use [guard-process](https://github.com/socialreferral/guard-process) to start the Jasmine Gem server when
257
- Guard starts:
258
-
259
- ```ruby
260
- guard 'process', :name => 'Jasmine server', :command => 'bundle exec rake jasmine' do
261
- watch(%r{spec/javascripts/support/*})
262
- end
263
-
264
- JASMINE_HOST = '127.0.0.1'
265
- JASMINE_PORT = '8888'
266
- JASMINE_URL = "http://#{JASMINE_HOST}:#{JASMINE_PORT}/"
267
-
268
- Thread.new do
269
- require 'socket'
270
-
271
- puts "\nWaiting for Jasmine to accept connections on #{JASMINE_URL}..."
272
- wait_for_open_connection(JASMINE_HOST, JASMINE_PORT)
273
- puts "Jasmine is now ready to accept connections; change a file or press ENTER run your suite."
274
- puts "You can also view and run specs by visiting:"
275
- puts JASMINE_URL
276
-
277
- guard 'jasmine', :jasmine_url => JASMINE_URL do
278
- watch(%r{public/javascripts/(.+)\.js}) { |m| "spec/javascripts/#{m[1]}_spec.js" }
279
- watch(%r{spec/javascripts/(.+)_spec\.js}) { |m| "spec/javascripts/#{m[1]}_spec.js" }
280
- watch(%r{spec/javascripts/support/jasmine\.yml}) { "spec/javascripts" }
281
- watch(%r{spec/javascripts/support/jasmine_config\.rb}) { "spec/javascripts" }
282
- end
283
- end
284
-
285
- def wait_for_open_connection(host, port)
286
- while true
287
- begin
288
- TCPSocket.new(host, port).close
289
- return
290
- rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
291
- end
292
- end
293
- end
294
- ```
295
-
296
- This elegant solution is provided by [Jason Morrison](http://twitter.com/#!/jayunit), see his original
297
- [Gist](https://gist.github.com/1224382).
298
-
299
- It is also possible to use CoffeeScript in this setup, by using [Guard::CoffeeScript][] to compile your code and even
300
- specs. Just add something like this *before* Guard::Jasmine:
301
-
302
- ```ruby
303
- guard 'coffeescript', :input => 'app/coffeescripts', :output => 'public/javascripts'
304
- guard 'coffeescript', :input => 'spec/coffeescripts', :output => 'spec/javascripts'
305
- ```
306
-
307
306
  ## Guard::Jasmine for your CI server
308
307
 
309
308
  Guard::Jasmine includes a little command line utility to run your specs once and output the specdoc to the console.
@@ -315,19 +314,24 @@ $ guard-jasmine
315
314
  You can get help on the available options with the `help` task:
316
315
 
317
316
  ```bash
318
- $ guard-jasmine help start
319
- Usage:
320
- guard-jasmine start
321
-
322
- Options:
323
- -u, [--url=URL] # The url of the Jasmine test runner
324
- # Default: http://127.0.0.1:3000/jasmine
325
- -b, [--bin=BIN] # The location of the PhantomJS binary
326
- # Default: /usr/local/bin/phantomjs
327
- -t, [--timeout=N] # The maximum time in milliseconds to wait for the spec runner to finish
328
- # Default: 10000
329
- -c, [--console=CONSOLE] # Whether to show console.log statements in the spec runner, either `always`, `never` or `failure`
330
- # Default: failure
317
+ Usage:
318
+ guard-jasmine spec
319
+
320
+ Options:
321
+ -s, [--server=SERVER] # Server to start, either `auto`, `rack`, `jasmine_gem` or `none`
322
+ # Default: auto
323
+ -p, [--port=N] # Server port to use
324
+ # Default: 8888
325
+ -u, [--url=URL] # The url of the Jasmine test runner
326
+ # Default: http://127.0.0.1:8888/jasmine
327
+ -b, [--bin=BIN] # The location of the PhantomJS binary
328
+ # Default: /usr/local/bin/phantomjs
329
+ -t, [--timeout=N] # The maximum time in milliseconds to wait for the spec runner to finish
330
+ # Default: 10000
331
+ -c, [--console=CONSOLE] # Whether to show console.log statements in the spec runner, either `always`, `never` or `failure`
332
+ # Default: failure
333
+
334
+ Run the Jasmine spec runner
331
335
  ```
332
336
 
333
337
  By default all specs are run, but you can supply multiple paths to your specs to run only a subset:
@@ -466,3 +470,4 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
466
470
  [Evergreen]: https://github.com/jnicklas/evergreen
467
471
  [PhantomJS script]: https://github.com/netzpirat/guard-jasmine/blob/master/lib/guard/jasmine/phantomjs/run-jasmine.coffee
468
472
  [Guard::CoffeeScript]: https://github.com/guard/guard-coffeescript
473
+ [Sinon.JS]: http://sinonjs.org
@@ -14,11 +14,14 @@ module Guard
14
14
  autoload :Formatter, 'guard/jasmine/formatter'
15
15
  autoload :Inspector, 'guard/jasmine/inspector'
16
16
  autoload :Runner, 'guard/jasmine/runner'
17
+ autoload :Server, 'guard/jasmine/server'
17
18
 
18
19
  attr_accessor :last_run_failed, :last_failed_paths
19
20
 
20
21
  DEFAULT_OPTIONS = {
21
- :jasmine_url => 'http://localhost:3000/jasmine',
22
+ :server => :auto,
23
+ :port => 8888,
24
+ :jasmine_url => 'http://localhost:8888/jasmine',
22
25
  :phantomjs_bin => '/usr/local/bin/phantomjs',
23
26
  :timeout => 10000,
24
27
  :notification => true,
@@ -36,6 +39,8 @@ module Guard
36
39
  #
37
40
  # @param [Array<Guard::Watcher>] watchers the watchers in the Guard block
38
41
  # @param [Hash] options the options for the Guard
42
+ # @option options [String] :server the server to use, either :rails or :jasmine
43
+ # @option options [String] :port the port for the Jasmine test server
39
44
  # @option options [String] :jasmine_url the url of the Jasmine test runner
40
45
  # @option options [String] :phantomjs_bin the location of the PhantomJS binary
41
46
  # @option options [Integer] :timeout the maximum time in milliseconds to wait for the spec runner to finish
@@ -52,6 +57,7 @@ module Guard
52
57
  def initialize(watchers = [], options = { })
53
58
  options = DEFAULT_OPTIONS.merge(options)
54
59
  options[:specdoc] = :failure if ![:always, :never, :failure].include? options[:specdoc]
60
+ options[:server] = :auto if ![:auto, :none, :rack, :jasmine_gem].include? options[:server]
55
61
 
56
62
  super(watchers, options)
57
63
 
@@ -65,6 +71,9 @@ module Guard
65
71
  #
66
72
  def start
67
73
  if phantomjs_bin_valid?(options[:phantomjs_bin])
74
+
75
+ Server.start(options[:server], options[:port]) unless options[:server] == :none
76
+
68
77
  if jasmine_runner_available?(options[:jasmine_url])
69
78
  run_all if options[:all_on_start]
70
79
  end
@@ -73,6 +82,14 @@ module Guard
73
82
  end
74
83
  end
75
84
 
85
+ # Gets called once when Guard stops.
86
+ #
87
+ # @raise [:task_has_failed] when stop has failed
88
+ #
89
+ def stop
90
+ Server.stop
91
+ end
92
+
76
93
  # Gets called when the Guard should reload itself.
77
94
  #
78
95
  # @raise [:task_has_failed] when run_on_change has failed
@@ -3,6 +3,7 @@ require 'guard/ui'
3
3
  require 'guard/jasmine/version'
4
4
  require 'guard/jasmine/runner'
5
5
  require 'guard/jasmine/formatter'
6
+ require 'guard/jasmine/server'
6
7
 
7
8
  module Guard
8
9
  class Jasmine
@@ -19,10 +20,22 @@ module Guard
19
20
 
20
21
  desc 'spec', 'Run the Jasmine spec runner'
21
22
 
23
+ method_option :server,
24
+ :type => :string,
25
+ :aliases => '-s',
26
+ :default => 'auto',
27
+ :desc => 'Server to start, either `auto`, `rack`, `jasmine_gem` or `none`'
28
+
29
+ method_option :port,
30
+ :type => :numeric,
31
+ :aliases => '-p',
32
+ :default => 8888,
33
+ :desc => 'Server port to use'
34
+
22
35
  method_option :url,
23
36
  :type => :string,
24
37
  :aliases => '-u',
25
- :default => 'http://127.0.0.1:3000/jasmine',
38
+ :default => 'http://127.0.0.1:8888/jasmine',
26
39
  :desc => 'The url of the Jasmine test runner'
27
40
 
28
41
  method_option :bin,
@@ -55,18 +68,28 @@ module Guard
55
68
  runner[:jasmine_url] = options.url
56
69
  runner[:phantomjs_bin] = options.bin
57
70
  runner[:timeout] = options.timeout
71
+ runner[:port] = options.port
58
72
  runner[:console] = [:always, :never, :failure].include?(options.console.to_sym) ? options.console.to_sym : :failure
73
+ runner[:server] = [:auto, :rack, :jasmine_gem].include?(options.server.to_sym) ? options.server.to_sym : :auto
59
74
 
60
75
  runner[:notification] = false
61
76
  runner[:hide_success] = true
62
77
  runner[:max_error_notify] = 0
63
78
  runner[:specdoc] = :always
64
79
 
80
+ ::Guard::Jasmine::Server.start(runner[:server], runner[:port]) unless runner[:server] == :none
65
81
  result = ::Guard::Jasmine::Runner.run(paths, runner)
66
- Kernel.exit (result.first ? 0 : 1)
82
+
83
+ ::Guard::Jasmine::Server.stop
84
+
85
+ exit_code = result.first ? 0 : 1
86
+ Process.exit exit_code
67
87
 
68
88
  rescue Exception => e
89
+ raise e if e.is_a?(SystemExit)
90
+
69
91
  ::Guard::UI.error e.message
92
+ Process.exit 2
70
93
  end
71
94
 
72
95
  desc 'version', 'Show the Guard::Jasmine version'
@@ -0,0 +1,111 @@
1
+ # coding: utf-8
2
+
3
+ module Guard
4
+ class Jasmine
5
+
6
+ # Start and stop a Jasmine test server for requesting the specs
7
+ # from PhantomJS.
8
+ #
9
+ module Server
10
+ class << self
11
+
12
+ attr_accessor :thread
13
+
14
+ # Start the internal test server for getting the Jasmine runner.
15
+ #
16
+ # @param [String] strategy the server strategy to use
17
+ # @param [Number] port the server port
18
+ #
19
+ def start(strategy, port)
20
+ strategy = detect_server if strategy == :auto
21
+
22
+ case strategy
23
+ when :rack
24
+ start_rack_server(port)
25
+ when :jasmine_gem
26
+ start_jasmine_gem_server(port)
27
+ end
28
+
29
+ wait_for_server(port) unless strategy == :none
30
+ end
31
+
32
+ # Stop the server thread.
33
+ #
34
+ def stop
35
+ self.thread.kill if self.thread && self.thread.alive?
36
+ end
37
+
38
+ private
39
+
40
+ # Start the Rack server of the current project. This
41
+ # will simply start a server that uses the `config.ru`
42
+ # in the current directory.
43
+ #
44
+ # @param [Number] port the server port
45
+ #
46
+ def start_rack_server(port)
47
+ require 'rack'
48
+
49
+ ::Guard::UI.info "Guard::Jasmine starts Rack test server on port #{ port }."
50
+
51
+ self.thread = Thread.new { Rack::Server.start(:config => 'config.ru', :Port => port, :AccessLog => []) }
52
+
53
+ rescue Exception => e
54
+ ::Guard::UI.error "Cannot start Rack server: #{ e.message }"
55
+ end
56
+
57
+ # Start the Jasmine gem server of the current project.
58
+ #
59
+ # @param [Number] port the server port
60
+ #
61
+ def start_jasmine_gem_server(port)
62
+ require 'jasmine/config'
63
+
64
+ jasmine_config_overrides = File.join(::Jasmine::Config.new.project_root, 'spec', 'javascripts' ,'support' ,'jasmine_config.rb')
65
+ require jasmine_config_overrides if File.exist?(jasmine_config_overrides)
66
+
67
+ ::Guard::UI.info "Guard::Jasmine starts Jasmine Gem test server on port #{ port }."
68
+
69
+ self.thread = Thread.new { ::Jasmine::Config.new.start_server(port) }
70
+
71
+ rescue Exception => e
72
+ ::Guard::UI.error "Cannot start Jasmine Gem server: #{ e.message }"
73
+ end
74
+
75
+ # Detect the server to use
76
+ #
77
+ # @return [Symbol] the server strategy
78
+ #
79
+ def detect_server
80
+ if File.exists?('config.ru')
81
+ :rack
82
+ elsif File.exists?(File.join('spec', 'javascripts', 'support', 'jasmine.yml'))
83
+ :jasmine_gem
84
+ else
85
+ :none
86
+ end
87
+ end
88
+
89
+ # Wait until the Jasmine test server is running.
90
+ #
91
+ # @param [Number] port the server port
92
+ #
93
+ def wait_for_server(port)
94
+ require 'socket'
95
+
96
+ while true
97
+ begin
98
+ ::TCPSocket.new('127.0.0.1', port).close
99
+ return
100
+ rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
101
+ # Ignore, server still not available
102
+ end
103
+ sleep 0.1
104
+ end
105
+ end
106
+
107
+ end
108
+ end
109
+
110
+ end
111
+ end
@@ -1,6 +1,6 @@
1
1
  module Guard
2
2
  module JasmineVersion
3
3
  # Guard::Jasmine version that is used for the Gem specification
4
- VERSION = '0.8.0'
4
+ VERSION = '0.8.1'
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-jasmine
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
4
+ hash: 61
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 8
9
- - 0
10
- version: 0.8.0
9
+ - 1
10
+ version: 0.8.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Kessler
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-10-31 00:00:00 Z
18
+ date: 2011-11-01 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: guard
@@ -82,9 +82,25 @@ dependencies:
82
82
  type: :runtime
83
83
  version_requirements: *id004
84
84
  - !ruby/object:Gem::Dependency
85
- name: bundler
85
+ name: rack
86
86
  prerelease: false
87
87
  requirement: &id005 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ~>
91
+ - !ruby/object:Gem::Version
92
+ hash: 17
93
+ segments:
94
+ - 1
95
+ - 3
96
+ - 5
97
+ version: 1.3.5
98
+ type: :runtime
99
+ version_requirements: *id005
100
+ - !ruby/object:Gem::Dependency
101
+ name: bundler
102
+ prerelease: false
103
+ requirement: &id006 !ruby/object:Gem::Requirement
88
104
  none: false
89
105
  requirements:
90
106
  - - ~>
@@ -95,11 +111,11 @@ dependencies:
95
111
  - 0
96
112
  version: "1.0"
97
113
  type: :development
98
- version_requirements: *id005
114
+ version_requirements: *id006
99
115
  - !ruby/object:Gem::Dependency
100
116
  name: guard-rspec
101
117
  prerelease: false
102
- requirement: &id006 !ruby/object:Gem::Requirement
118
+ requirement: &id007 !ruby/object:Gem::Requirement
103
119
  none: false
104
120
  requirements:
105
121
  - - ~>
@@ -110,11 +126,11 @@ dependencies:
110
126
  - 5
111
127
  version: "0.5"
112
128
  type: :development
113
- version_requirements: *id006
129
+ version_requirements: *id007
114
130
  - !ruby/object:Gem::Dependency
115
131
  name: rspec
116
132
  prerelease: false
117
- requirement: &id007 !ruby/object:Gem::Requirement
133
+ requirement: &id008 !ruby/object:Gem::Requirement
118
134
  none: false
119
135
  requirements:
120
136
  - - ~>
@@ -125,11 +141,11 @@ dependencies:
125
141
  - 7
126
142
  version: "2.7"
127
143
  type: :development
128
- version_requirements: *id007
144
+ version_requirements: *id008
129
145
  - !ruby/object:Gem::Dependency
130
146
  name: yard
131
147
  prerelease: false
132
- requirement: &id008 !ruby/object:Gem::Requirement
148
+ requirement: &id009 !ruby/object:Gem::Requirement
133
149
  none: false
134
150
  requirements:
135
151
  - - ~>
@@ -141,11 +157,11 @@ dependencies:
141
157
  - 3
142
158
  version: 0.7.3
143
159
  type: :development
144
- version_requirements: *id008
160
+ version_requirements: *id009
145
161
  - !ruby/object:Gem::Dependency
146
162
  name: redcarpet
147
163
  prerelease: false
148
- requirement: &id009 !ruby/object:Gem::Requirement
164
+ requirement: &id010 !ruby/object:Gem::Requirement
149
165
  none: false
150
166
  requirements:
151
167
  - - ~>
@@ -157,11 +173,11 @@ dependencies:
157
173
  - 2
158
174
  version: 1.17.2
159
175
  type: :development
160
- version_requirements: *id009
176
+ version_requirements: *id010
161
177
  - !ruby/object:Gem::Dependency
162
178
  name: pry
163
179
  prerelease: false
164
- requirement: &id010 !ruby/object:Gem::Requirement
180
+ requirement: &id011 !ruby/object:Gem::Requirement
165
181
  none: false
166
182
  requirements:
167
183
  - - ~>
@@ -174,7 +190,7 @@ dependencies:
174
190
  - 2
175
191
  version: 0.9.6.2
176
192
  type: :development
177
- version_requirements: *id010
193
+ version_requirements: *id011
178
194
  description: Guard::Jasmine automatically tests your Jasmine specs on PhantomJS
179
195
  email:
180
196
  - michi@netzpiraten.ch
@@ -193,6 +209,7 @@ files:
193
209
  - lib/guard/jasmine/inspector.rb
194
210
  - lib/guard/jasmine/phantomjs/run-jasmine.coffee
195
211
  - lib/guard/jasmine/runner.rb
212
+ - lib/guard/jasmine/server.rb
196
213
  - lib/guard/jasmine/templates/Guardfile
197
214
  - lib/guard/jasmine/version.rb
198
215
  - lib/guard/jasmine.rb