guard-jasmine 0.9.13 → 0.9.14

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -190,9 +190,9 @@ Guard::Jasmine can be adapted to all kind of projects. Please read the
190
190
 
191
191
  ```ruby
192
192
  guard 'jasmine' do
193
- watch(%r{app/assets/javascripts/(.+)\.(js\.coffee|js)}) { |m| "spec/javascripts/#{m[1]}_spec.#{m[2]}" }
194
- watch(%r{spec/javascripts/(.+)_spec\.(js\.coffee|js)}) { |m| "spec/javascripts/#{m[1]}_spec.#{m[2]}" }
195
- watch(%r{spec/javascripts/spec\.(js\.coffee|js)}) { "spec/javascripts" }
193
+ watch(%r{spec/javascripts/spec\.(js\.coffee|js|coffee)$}) { "spec/javascripts" }
194
+ watch(%r{spec/javascripts/.+_spec\.(js\.coffee|js|coffee)$})
195
+ watch(%r{app/assets/javascripts/(.+?)\.(js\.coffee|js|coffee)$}) { |m| "spec/javascripts/#{m[1]}_spec.#{m[2]}" }
196
196
  end
197
197
  ```
198
198
 
@@ -207,9 +207,9 @@ guard 'jasmine', :all_on_start => false, :specdoc => :always do
207
207
  end
208
208
  ```
209
209
 
210
- ### General options
210
+ ### Server options
211
211
 
212
- The general options configures the environment that is needed to run Guard::Jasmine:
212
+ The server options configures the server environment that is needed to run Guard::Jasmine:
213
213
 
214
214
  ```ruby
215
215
  :server => :jasmine_gem # Jasmine server to use, either :auto, :none,
@@ -235,9 +235,6 @@ If you're setting the `:server` option to `:none`, you can supply the Jasmine ru
235
235
  ```ruby
236
236
  :jasmine_url => 'http://192.168.1.5/jasmine' # URL where Jasmine is served.
237
237
  # default: http://127.0.0.1:8888/jasmine
238
-
239
- :clean => false # Clean the spec list by only keep Jasmine specs within the project.
240
- # default: true
241
238
  ```
242
239
 
243
240
  Detecting the server with the `auto` option does only detect the jasmine gem or webrick. If you want to use mongrel or
@@ -247,15 +244,28 @@ The reason why the Server environment is set to `development` by default is that
247
244
  the asset pipeline doesn't concatenate the JavaScripts and you'll see the line number in the real file,
248
245
  instead of a ridiculous high line number in a single, very large JavaScript.
249
246
 
250
- In general you want to leave the `:clean` flag on, which ensures that only Jasmine specs (files ending with `_spec.js`,
251
- `_spec.coffee` and `_spec.js.coffee` inside your project are passed to the runner. If you have a custom project
252
- structure or spec naming convention, you can set `:clean` to false to skip that file filter.
247
+ #### Use a custom server
248
+
249
+ If you supply an unknown server name as the `:server` option, then Guard::Jasmine will execute
250
+ a `rake` task with the given server name as task in a child process. For example, if you configure
251
+ `:server => 'start_my_server'`, then the command `rake start_my_server` will be executed and
252
+ you have to make sure the server starts on the port that you can get from the `JASMINE_PORT`
253
+ environment variable.
253
254
 
254
255
  ### Spec runner options
255
256
 
256
257
  The spec runner options configures the behavior driven development (or BDD) cycle:
257
258
 
258
259
  ```ruby
260
+ :spec_dir => false # Directory with the Jasmine specs.
261
+ # default: 'spec/javascripts'
262
+
263
+ :clean => false # Clean the spec list by only keep Jasmine specs within the project.
264
+ # default: true
265
+
266
+ :all_on_start => false # Run all suites on start.
267
+ # default: true
268
+
259
269
  :all_on_start => false # Run all suites on start.
260
270
  # default: true
261
271
 
@@ -271,6 +281,10 @@ The `:keep_failed` failed option remembers failed suites and not failed specs. T
271
281
  avoid additional round trip time to request the Jasmine test runner for each single spec, which is mostly more expensive
272
282
  than running a whole suite.
273
283
 
284
+ In general you want to leave the `:clean` flag on, which ensures that only Jasmine specs (files ending with `_spec.js`,
285
+ `_spec.coffee` and `_spec.js.coffee` inside your project are passed to the runner. If you have a custom project
286
+ structure or spec naming convention, you can set `:clean` to false to skip that file filter.
287
+
274
288
  ### Specdoc options
275
289
 
276
290
  Guard::Jasmine can generate an RSpec like specdoc in the console after running the specs and you can set when it will
@@ -26,6 +26,7 @@ module Guard
26
26
  :port => 8888,
27
27
  :jasmine_url => 'http://localhost:8888/jasmine',
28
28
  :timeout => 10000,
29
+ :spec_dir => 'spec/javascripts',
29
30
  :notification => true,
30
31
  :hide_success => false,
31
32
  :all_on_start => true,
@@ -48,6 +49,7 @@ module Guard
48
49
  # @option options [String] :jasmine_url the url of the Jasmine test runner
49
50
  # @option options [String] :phantomjs_bin the location of the PhantomJS binary
50
51
  # @option options [Integer] :timeout the maximum time in milliseconds to wait for the spec runner to finish
52
+ # @option options [String] :spec_dir the directory with the Jasmine specs
51
53
  # @option options [Boolean] :notification show notifications
52
54
  # @option options [Boolean] :hide_success hide success message notification
53
55
  # @option options [Integer] :max_error_notify maximum error notifications to show
@@ -79,7 +81,7 @@ module Guard
79
81
  def start
80
82
  if Jasmine.phantomjs_bin_valid?(options[:phantomjs_bin])
81
83
 
82
- Server.start(options[:server], options[:port], options[:server_env]) unless options[:server] == :none
84
+ Server.start(options[:server], options[:port], options[:server_env], options[:spec_dir]) unless options[:server] == :none
83
85
 
84
86
  if Jasmine.runner_available?(options[:jasmine_url])
85
87
  run_all if options[:all_on_start]
@@ -111,7 +113,7 @@ module Guard
111
113
  # @raise [:task_has_failed] when run_on_change has failed
112
114
  #
113
115
  def run_all
114
- passed, failed_specs = Runner.run(['spec/javascripts'], options)
116
+ passed, failed_specs = Runner.run([options[:spec_dir]], options)
115
117
 
116
118
  self.last_failed_paths = failed_specs
117
119
  self.last_run_failed = !passed
@@ -126,7 +128,7 @@ module Guard
126
128
  #
127
129
  def run_on_change(paths)
128
130
  specs = options[:keep_failed] ? paths + self.last_failed_paths : paths
129
- specs = Inspector.clean(specs) if options[:clean]
131
+ specs = Inspector.clean(specs, options) if options[:clean]
130
132
  return false if specs.empty?
131
133
 
132
134
  passed, failed_specs = Runner.run(specs, options)
@@ -63,13 +63,19 @@ module Guard
63
63
  :default => 'test',
64
64
  :desc => 'The server environment to use, for example `development`, `test` etc.'
65
65
 
66
+ method_option :spec_dir,
67
+ :type => :string,
68
+ :aliases => '-d',
69
+ :default => 'spec/javascripts',
70
+ :desc => 'The directory with the Jasmine specs'
71
+
66
72
  # Run the Guard::Jasmine::Runner with options from
67
73
  # the command line.
68
74
  #
69
75
  # @param [Array<String>] paths the name of the specs to run
70
76
  #
71
77
  def spec(*paths)
72
- paths = ['spec/javascripts'] if paths.empty?
78
+ paths = [options.spec_dir] if paths.empty?
73
79
 
74
80
  runner = {}
75
81
  runner[:jasmine_url] = options.url
@@ -77,8 +83,9 @@ module Guard
77
83
  runner[:timeout] = options.timeout
78
84
  runner[:port] = options.port
79
85
  runner[:server_env] = options.server_env
86
+ runner[:spec_dir] = options.spec_dir
80
87
  runner[:console] = [:always, :never, :failure].include?(options.console.to_sym) ? options.console.to_sym : :failure
81
- runner[:server] = [:auto, :none, :webrick, :mongrel, :thin, :jasmine_gem].include?(options.server.to_sym) ? options.server.to_sym : :auto
88
+ runner[:server] = options.server.to_sym
82
89
 
83
90
  runner[:notification] = false
84
91
  runner[:hide_success] = true
@@ -86,7 +93,7 @@ module Guard
86
93
  runner[:specdoc] = :always
87
94
 
88
95
  if CLI.phantomjs_bin_valid?(runner[:phantomjs_bin])
89
- ::Guard::Jasmine::Server.start(runner[:server], runner[:port], runner[:server_env]) unless runner[:server] == :none
96
+ ::Guard::Jasmine::Server.start(runner[:server], runner[:port], runner[:server_env], runner[:spec_dir]) unless runner[:server] == :none
90
97
 
91
98
  if CLI.runner_available?(runner[:jasmine_url])
92
99
  result = ::Guard::Jasmine::Runner.run(paths, runner)
@@ -101,9 +108,7 @@ module Guard
101
108
  Process.exit 2
102
109
  end
103
110
 
104
- rescue Exception => e
105
- raise e if e.is_a?(SystemExit)
106
-
111
+ rescue => e
107
112
  ::Guard::UI.error e.message
108
113
  Process.exit 2
109
114
  end
@@ -13,14 +13,16 @@ module Guard
13
13
  # Jasmine specs in either JavaScript or CoffeeScript.
14
14
  #
15
15
  # @param [Array<String>] paths the changed paths
16
+ # @param [Hash] options the options for the Guard
17
+ # @option options [String] :spec_dir the directory with the Jasmine specs
16
18
  # @return [Array<String>] the valid spec files
17
19
  #
18
- def clean(paths)
20
+ def clean(paths, options)
19
21
  paths.uniq!
20
22
  paths.compact!
21
23
 
22
- if paths.include?('spec/javascripts')
23
- paths = ['spec/javascripts']
24
+ if paths.include?(options[:spec_dir])
25
+ paths = [options[:spec_dir]]
24
26
  else
25
27
  paths = paths.select { |p| jasmine_spec?(p) }
26
28
  end
@@ -19,17 +19,19 @@ module Guard
19
19
  # @option options [String] :jasmine_url the url of the Jasmine test runner
20
20
  # @option options [String] :phantomjs_bin the location of the PhantomJS binary
21
21
  # @option options [Integer] :timeout the maximum time in milliseconds to wait for the spec runner to finish
22
+ # @option options [String] :spec_dir the directory with the Jasmine specs
22
23
  # @option options [Boolean] :notification show notifications
23
24
  # @option options [Boolean] :hide_success hide success message notification
24
25
  # @option options [Integer] :max_error_notify maximum error notifications to show
25
26
  # @option options [Symbol] :specdoc options for the specdoc output, either :always, :never
26
27
  # @option options [Symbol] :console options for the console.log output, either :always, :never or :failure
28
+ # @option options [String] :spec_dir the directory with the Jasmine specs
27
29
  # @return [Boolean, Array<String>] the status of the run and the failed files
28
30
  #
29
31
  def run(paths, options = { })
30
32
  return [false, []] if paths.empty?
31
33
 
32
- notify_start_message(paths)
34
+ notify_start_message(paths, options)
33
35
 
34
36
  results = paths.inject([]) do |results, file|
35
37
  results << evaluate_response(run_jasmine_spec(file, options), file, options)
@@ -45,9 +47,11 @@ module Guard
45
47
  # Shows a notification in the console that the runner starts.
46
48
  #
47
49
  # @param [Array<String>] paths the spec files or directories
50
+ # @param [Hash] options the options for the execution
51
+ # @option options [String] :spec_dir the directory with the Jasmine specs
48
52
  #
49
- def notify_start_message(paths)
50
- message = if paths == ['spec/javascripts']
53
+ def notify_start_message(paths, options)
54
+ message = if paths == [options[:spec_dir]]
51
55
  'Run all Jasmine suites'
52
56
  else
53
57
  "Run Jasmine suite#{ paths.size == 1 ? '' : 's' } #{ paths.join(' ') }"
@@ -99,12 +103,13 @@ module Guard
99
103
  # Get the Jasmine test runner URL with the appended suite name
100
104
  # that acts as the spec filter.
101
105
  #
106
+ # @param [String] file the spec file
102
107
  # @param [Hash] options the options for the execution
103
108
  # @option options [String] :jasmine_url the url of the Jasmine test runner
104
109
  # @return [String] the Jasmine url
105
110
  #
106
111
  def jasmine_suite(file, options)
107
- options[:jasmine_url] + query_string_for_suite(file)
112
+ options[:jasmine_url] + query_string_for_suite(file, options)
108
113
  end
109
114
 
110
115
  # Get the PhantomJS script that executes the spec and extracts
@@ -122,10 +127,12 @@ module Guard
122
127
  # found.
123
128
  #
124
129
  # @param [String] file the spec file
130
+ # @param [Hash] options the options for the execution
131
+ # @option options [String] :spec_dir the directory with the Jasmine specs
125
132
  # @return [String] the suite name
126
133
  #
127
- def query_string_for_suite(file)
128
- return '' if file == 'spec/javascripts'
134
+ def query_string_for_suite(file, options)
135
+ return '' if file == options[:spec_dir]
129
136
 
130
137
  query_string = ''
131
138
 
@@ -163,7 +170,7 @@ module Guard
163
170
 
164
171
  result
165
172
 
166
- rescue Exception => e
173
+ rescue => e
167
174
  if json == ''
168
175
  Formatter.error("No response from the Jasmine runner!")
169
176
  else
@@ -18,15 +18,18 @@ module Guard
18
18
  # @param [String] strategy the server strategy to use
19
19
  # @param [Number] port the server port
20
20
  # @param [String] environment the Rails environment
21
+ # @param [String] spec_dir the spec directory
21
22
  #
22
- def start(strategy, port, environment)
23
- strategy = detect_server if strategy == :auto
23
+ def start(strategy, port, environment, spec_dir)
24
+ strategy = detect_server(spec_dir) if strategy == :auto
24
25
 
25
26
  case strategy
26
27
  when :webrick, :mongrel, :thin
27
28
  start_rack_server(port, environment, strategy)
28
29
  when :jasmine_gem
29
- start_jasmine_gem_server(port)
30
+ start_rake_server(port, 'jasmine')
31
+ else
32
+ start_rake_server(port, strategy.to_s) unless strategy == :none
30
33
  end
31
34
 
32
35
  wait_for_server(port) unless strategy == :none
@@ -56,33 +59,35 @@ module Guard
56
59
  self.process.io.inherit! if ::Guard.respond_to?(:options) && ::Guard.options[:verbose]
57
60
  self.process.start
58
61
 
59
- rescue Exception => e
62
+ rescue => e
60
63
  ::Guard::UI.error "Cannot start Rack server: #{ e.message }"
61
64
  end
62
65
 
63
66
  # Start the Jasmine gem server of the current project.
64
67
  #
65
68
  # @param [Number] port the server port
69
+ # @param [String] task the rake task name
66
70
  #
67
- def start_jasmine_gem_server(port)
71
+ def start_rake_server(port, task)
68
72
  ::Guard::UI.info "Guard::Jasmine starts Jasmine Gem test server on port #{ port }."
69
73
 
70
- self.process = ChildProcess.build('rake', 'jasmine', "JASMINE_PORT=#{ port }")
74
+ self.process = ChildProcess.build('rake', task, "JASMINE_PORT=#{ port }")
71
75
  self.process.io.inherit! if ::Guard.respond_to?(:options) && ::Guard.options[:verbose]
72
76
  self.process.start
73
77
 
74
- rescue Exception => e
78
+ rescue => e
75
79
  ::Guard::UI.error "Cannot start Jasmine Gem server: #{ e.message }"
76
80
  end
77
81
 
78
82
  # Detect the server to use
79
83
  #
84
+ # @param [String] spec_dir the spec directory
80
85
  # @return [Symbol] the server strategy
81
86
  #
82
- def detect_server
87
+ def detect_server(spec_dir)
83
88
  if File.exists?('config.ru')
84
89
  :webrick
85
- elsif File.exists?(File.join('spec', 'javascripts', 'support', 'jasmine.yml'))
90
+ elsif File.exists?(File.join(spec_dir, 'support', 'jasmine.yml'))
86
91
  :jasmine_gem
87
92
  else
88
93
  :none
@@ -1,5 +1,5 @@
1
1
  guard 'jasmine' do
2
- watch(%r{app/assets/javascripts/(.+)\.(js\.coffee|js|coffee)$}) { |m| "spec/javascripts/#{m[1]}_spec.#{m[2]}" }
3
- watch(%r{spec/javascripts/(.+)_spec\.(js\.coffee|js|coffee)$}) { |m| puts m.inspect; "spec/javascripts/#{m[1]}_spec.#{m[2]}" }
4
- watch(%r{spec/javascripts/spec\.(js\.coffee|js|coffee)$}) { "spec/javascripts" }
2
+ watch(%r{spec/javascripts/spec\.(js\.coffee|js|coffee)$}) { "spec/javascripts" }
3
+ watch(%r{spec/javascripts/.+_spec\.(js\.coffee|js|coffee)$})
4
+ watch(%r{app/assets/javascripts/(.+?)\.(js\.coffee|js|coffee)$}) { |m| "spec/javascripts/#{m[1]}_spec.#{m[2]}" }
5
5
  end
@@ -29,7 +29,7 @@ module Guard
29
29
  response.code.to_i == 200
30
30
  end
31
31
 
32
- rescue Exception => e
32
+ rescue => e
33
33
  ::Guard::Jasmine::Formatter.error "Jasmine test runner isn't available at #{ url }: #{ e.message }"
34
34
 
35
35
  false
@@ -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.9.13'
4
+ VERSION = '0.9.14'
5
5
  end
6
6
  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: 0.9.13
4
+ version: 0.9.14
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-29 00:00:00.000000000 Z
12
+ date: 2012-03-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: guard
16
- requirement: &70365361675340 !ruby/object:Gem::Requirement
16
+ requirement: &70306138105320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.8.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70365361675340
24
+ version_requirements: *70306138105320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: multi_json
27
- requirement: &70365361674960 !ruby/object:Gem::Requirement
27
+ requirement: &70306138104940 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70365361674960
35
+ version_requirements: *70306138104940
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: childprocess
38
- requirement: &70365361674500 !ruby/object:Gem::Requirement
38
+ requirement: &70306138104480 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70365361674500
46
+ version_requirements: *70306138104480
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: thor
49
- requirement: &70365361674080 !ruby/object:Gem::Requirement
49
+ requirement: &70306138104060 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70365361674080
57
+ version_requirements: *70306138104060
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &70365361673660 !ruby/object:Gem::Requirement
60
+ requirement: &70306138103640 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70365361673660
68
+ version_requirements: *70306138103640
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: guard-rspec
71
- requirement: &70365361673240 !ruby/object:Gem::Requirement
71
+ requirement: &70306138103220 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70365361673240
79
+ version_requirements: *70306138103220
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rspec
82
- requirement: &70365361703020 !ruby/object:Gem::Requirement
82
+ requirement: &70306138102800 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70365361703020
90
+ version_requirements: *70306138102800
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: yard
93
- requirement: &70365361702600 !ruby/object:Gem::Requirement
93
+ requirement: &70306138102380 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70365361702600
101
+ version_requirements: *70306138102380
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: redcarpet
104
- requirement: &70365361702180 !ruby/object:Gem::Requirement
104
+ requirement: &70306138101960 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70365361702180
112
+ version_requirements: *70306138101960
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: pry
115
- requirement: &70365361701760 !ruby/object:Gem::Requirement
115
+ requirement: &70306138101540 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,7 +120,18 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70365361701760
123
+ version_requirements: *70306138101540
124
+ - !ruby/object:Gem::Dependency
125
+ name: yajl-ruby
126
+ requirement: &70306138101120 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: *70306138101120
124
135
  description: Guard::Jasmine automatically tests your Jasmine specs on PhantomJS
125
136
  email:
126
137
  - michi@netzpiraten.ch
@@ -133,23 +144,16 @@ files:
133
144
  - bin/guard-jasmine
134
145
  - bin/guard-jasmine-debug
135
146
  - lib/guard/jasmine/cli.rb
136
- - lib/guard/jasmine/cli.rbc
137
147
  - lib/guard/jasmine/formatter.rb
138
- - lib/guard/jasmine/formatter.rbc
139
148
  - lib/guard/jasmine/inspector.rb
140
- - lib/guard/jasmine/inspector.rbc
141
149
  - lib/guard/jasmine/phantomjs/run-jasmine.coffee
142
150
  - lib/guard/jasmine/runner.rb
143
- - lib/guard/jasmine/runner.rbc
144
151
  - lib/guard/jasmine/server.rb
145
- - lib/guard/jasmine/server.rbc
146
152
  - lib/guard/jasmine/task.rb
147
153
  - lib/guard/jasmine/templates/Guardfile
148
154
  - lib/guard/jasmine/util.rb
149
155
  - lib/guard/jasmine/version.rb
150
- - lib/guard/jasmine/version.rbc
151
156
  - lib/guard/jasmine.rb
152
- - lib/guard/jasmine.rbc
153
157
  - LICENSE
154
158
  - README.md
155
159
  homepage: https://github.com/netzpirat/guard-jasmine