jasmine-rails 0.0.3 → 0.1.0

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/README.md CHANGED
@@ -52,7 +52,7 @@ Next, edit the generated `spec/javascripts/support/jasmine.yml` file to ensure t
52
52
  spec_files:
53
53
  - "**/*[Ss]pec.{js,coffee}"
54
54
 
55
- src_dir:
55
+ src_dir: app/assets/javascripts
56
56
 
57
57
  spec_dir: spec/javascripts
58
58
 
@@ -106,20 +106,14 @@ If the tests fail, jasmine-headless-webkit will leave its generated spec runner
106
106
 
107
107
  [Guard](https://github.com/guard/guard) is a great tool for triggering spec runs when files change. To use it, you can bundle these gems:
108
108
 
109
- group :test, :development do
109
+ group :development do
110
110
  ...
111
- gem 'guard-rails-assets'
112
111
  gem 'guard-jasmine-headless-webkit'
113
112
  ...
114
113
  end
115
114
 
116
115
  In my Guardfile, this configuration is working well for me:
117
116
 
118
- guard 'rails-assets' do
119
- watch(%r{^.*/assets/.+$})
120
- watch('config/application.rb')
121
- end
122
-
123
117
  spec_location = "spec/javascripts/%s_spec"
124
118
 
125
119
  guard 'jasmine-headless-webkit' do
data/Rakefile CHANGED
@@ -20,7 +20,12 @@ RDoc::Task.new(:rdoc) do |rdoc|
20
20
  rdoc.rdoc_files.include('lib/**/*.rb')
21
21
  end
22
22
 
23
- APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
23
+
24
+
25
+
26
+ Bundler::GemHelper.install_tasks
27
+
28
+ est/dummy/Rakefile", __FILE__)
24
29
  load 'rails/tasks/engine.rake'
25
30
 
26
31
 
@@ -1,7 +1 @@
1
- // This is a manifest file that'll be compiled into including all the files listed below.
2
- // Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
3
- // be included in the compiled file accessible from http://example.com/assets/application.js
4
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
5
- // the compiled file.
6
- //
7
1
  //= require_jasmine js
@@ -1,7 +1,3 @@
1
1
  /*
2
- * This is a manifest file that'll automatically include all the stylesheets available in this directory
3
- * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4
- * the top of the compiled file, but it's generally better to create a new file per style scope.
5
- *
6
2
  *= require_jasmine css
7
3
  */
@@ -1,40 +1,38 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2
- <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
1
+ <!DOCTYPE html>
2
+ <html>
3
3
  <head>
4
4
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"/>
5
- <title>Jasmine suite</title>
5
+ <title>Jasmine Specs</title>
6
6
 
7
7
  <%= stylesheet_link_tag "jasmine_rails/application" %>
8
8
  <%= javascript_include_tag "jasmine_rails/application" %>
9
9
 
10
10
  <!-- executing jasmine's runner -->
11
11
  <script type="text/javascript">
12
- var jsApiReporter;
13
12
  (function() {
14
- var jasmineEnv = jasmine.getEnv();
13
+ var jasmineEnv = jasmine.getEnv();
14
+ jasmineEnv.updateInterval = 1000;
15
15
 
16
- jsApiReporter = new jasmine.JsApiReporter();
17
- var trivialReporter = new jasmine.TrivialReporter();
16
+ var htmlReporter = new jasmine.HtmlReporter();
18
17
 
19
- jasmineEnv.addReporter(jsApiReporter);
20
- jasmineEnv.addReporter(trivialReporter);
18
+ jasmineEnv.addReporter(htmlReporter);
21
19
 
22
- jasmineEnv.specFilter = function(spec) {
23
- return trivialReporter.specFilter(spec);
24
- };
20
+ jasmineEnv.specFilter = function(spec) {
21
+ return htmlReporter.specFilter(spec);
22
+ };
25
23
 
26
- var currentWindowOnload = window.onload;
24
+ var currentWindowOnload = window.onload;
27
25
 
28
- window.onload = function() {
29
- if (currentWindowOnload) {
30
- currentWindowOnload();
31
- }
32
- execJasmine();
33
- };
34
-
35
- function execJasmine() {
36
- jasmineEnv.execute();
26
+ window.onload = function() {
27
+ if (currentWindowOnload) {
28
+ currentWindowOnload();
37
29
  }
30
+ execJasmine();
31
+ };
32
+
33
+ function execJasmine() {
34
+ jasmineEnv.execute();
35
+ }
38
36
 
39
37
  })();
40
38
  </script>
@@ -42,5 +40,5 @@
42
40
  <body>
43
41
  <div id="jasmine_content"></div>
44
42
  <%= yield %>
45
- <body>
43
+ </body>
46
44
  </html>
data/config/routes.rb CHANGED
@@ -1,5 +1,5 @@
1
- require 'jasmine-core'
2
- require 'jasmine'
1
+ require 'jasmine-core' ##<--TODO why is this here?
2
+ require 'jasmine' ##<--TODO why is this here?
3
3
 
4
4
  JasmineRails::Engine.routes.draw do
5
5
  root :to => "spec_runner#index"
data/lib/jasmine-rails.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "jasmine_rails/engine"
2
+ require "jasmine_rails/jhw_adapter"
2
3
 
3
4
  module JasmineRails
4
5
  end
@@ -0,0 +1,56 @@
1
+ require 'jasmine-headless-webkit'
2
+
3
+ module JasmineRails
4
+
5
+ class JhwAdapter
6
+
7
+ def initialize
8
+ @options = Jasmine::Headless::Options.new
9
+ @runner = Jasmine::Headless::Runner.new(@options)
10
+ Jasmine::Headless::CacheableAction.enabled = @options[:enable_cache]
11
+ end
12
+
13
+ def css_files
14
+ @css_files_list ||= CssFilesList.new(
15
+ :config => @runner.jasmine_config,
16
+ :only => @options[:files],
17
+ :seed => @options[:seed]
18
+ ).files
19
+ end
20
+
21
+ def js_files
22
+ @js_files_list ||= JsFilesList.new(
23
+ :config => @runner.jasmine_config,
24
+ :only => @options[:files],
25
+ :seed => @options[:seed]
26
+ ).files
27
+ end
28
+ end
29
+
30
+
31
+ class JsFilesList < Jasmine::Headless::FilesList
32
+
33
+ def self.default_files
34
+ %w{jasmine.js jasmine-html}
35
+ end
36
+
37
+ def self.extension_filter
38
+ extensions = (%w{.js} + Sprockets.engine_extensions)
39
+ %r{(#{extensions.join('|')})$}
40
+ end
41
+
42
+ end
43
+
44
+ class CssFilesList < Jasmine::Headless::FilesList
45
+
46
+ def self.default_files
47
+ %w{jasmine.css}
48
+ end
49
+
50
+ def self.extension_filter
51
+ extensions = (%w{.css .scss .sass .less})
52
+ %r{(#{extensions.join('|')})$}
53
+ end
54
+ end
55
+
56
+ end
@@ -1,3 +1,3 @@
1
1
  module JasmineRails
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -2,37 +2,23 @@ require 'jasmine-core'
2
2
  require 'sprockets/directive_processor'
3
3
 
4
4
  class ProcessesJasmineDirectives < Sprockets::DirectiveProcessor
5
- ASSET_TYPES = ["css","js"]
6
-
7
5
  def process_require_jasmine_directive(asset_type)
8
- return unless ASSET_TYPES.include?(asset_type)
9
-
10
- send("require_jasmine_#{asset_type}")
11
- send("require_user_#{asset_type}")
12
- end
13
-
14
- ASSET_TYPES.each do |asset_type|
15
- define_method "require_jasmine_#{asset_type}" do
16
- Jasmine::Core.send("#{asset_type}_files").each do |f|
17
- context.require_asset "/#{Jasmine::Core.path}/#{f}"
18
- end
19
- end
20
-
21
- define_method "require_user_#{asset_type}" do
22
- config = Jasmine::Config.new
23
- config.send("#{asset_type}_files").each do |f|
24
- context.require_asset full_path_for(f,config)
25
- end
6
+ reset_circular_dependencies
7
+ context.depend_on(Rails.root)
8
+ JasmineRails::JhwAdapter.new.send("#{asset_type}_files").each do |full_path|
9
+ context.depend_on(full_path)
10
+ context.require_asset(full_path)
26
11
  end
27
12
  end
28
-
29
- private
30
-
31
- def full_path_for(partial_path,config)
32
- if partial_path.include?(config.spec_path)
33
- partial_path.gsub(/#{config.spec_path}/,config.spec_dir)
34
- else
35
- "#{Rails.root}#{partial_path}"
36
- end
13
+
14
+ private
15
+
16
+ def reset_circular_dependencies
17
+ #This is an internal thread-local variable Sprockets uses.
18
+ # Unfortunately, it's the only way I've found to avoid
19
+ # (seemingly) spurious `CircularDependencyError`s from being
20
+ # raised whenever a file changes.
21
+ Thread.current[:sprockets_circular_calls] = nil
37
22
  end
23
+
38
24
  end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :jasmine-rails do
3
+ # # Task goes here
4
+ # end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jasmine-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-02-12 00:00:00.000000000Z
14
+ date: 2012-07-31 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
18
- requirement: &889853470 !ruby/object:Gem::Requirement
18
+ requirement: !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,10 +23,15 @@ dependencies:
23
23
  version: 3.1.0
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *889853470
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ! '>='
30
+ - !ruby/object:Gem::Version
31
+ version: 3.1.0
27
32
  - !ruby/object:Gem::Dependency
28
33
  name: jasmine
29
- requirement: &889852800 !ruby/object:Gem::Requirement
34
+ requirement: !ruby/object:Gem::Requirement
30
35
  none: false
31
36
  requirements:
32
37
  - - ! '>='
@@ -34,10 +39,15 @@ dependencies:
34
39
  version: '0'
35
40
  type: :runtime
36
41
  prerelease: false
37
- version_requirements: *889852800
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
38
48
  - !ruby/object:Gem::Dependency
39
49
  name: jasmine-headless-webkit
40
- requirement: &889852090 !ruby/object:Gem::Requirement
50
+ requirement: !ruby/object:Gem::Requirement
41
51
  none: false
42
52
  requirements:
43
53
  - - ! '>='
@@ -45,10 +55,15 @@ dependencies:
45
55
  version: '0'
46
56
  type: :runtime
47
57
  prerelease: false
48
- version_requirements: *889852090
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
49
64
  - !ruby/object:Gem::Dependency
50
65
  name: rspec
51
- requirement: &889851630 !ruby/object:Gem::Requirement
66
+ requirement: !ruby/object:Gem::Requirement
52
67
  none: false
53
68
  requirements:
54
69
  - - ! '>='
@@ -56,10 +71,15 @@ dependencies:
56
71
  version: '0'
57
72
  type: :development
58
73
  prerelease: false
59
- version_requirements: *889851630
74
+ version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
60
80
  - !ruby/object:Gem::Dependency
61
81
  name: gimme
62
- requirement: &889851010 !ruby/object:Gem::Requirement
82
+ requirement: !ruby/object:Gem::Requirement
63
83
  none: false
64
84
  requirements:
65
85
  - - ! '>='
@@ -67,7 +87,12 @@ dependencies:
67
87
  version: '0'
68
88
  type: :development
69
89
  prerelease: false
70
- version_requirements: *889851010
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
71
96
  description: Provides a Jasmine Spec Runner that plays nicely with Rails 3.1 assets
72
97
  and sets up jasmine-headless-webkit
73
98
  email:
@@ -88,8 +113,10 @@ files:
88
113
  - config/routes.rb
89
114
  - lib/jasmine-rails.rb
90
115
  - lib/jasmine_rails/engine.rb
116
+ - lib/jasmine_rails/jhw_adapter.rb
91
117
  - lib/jasmine_rails/version.rb
92
118
  - lib/processes_jasmine_directives.rb
119
+ - lib/tasks/jasmine-rails_tasks.rake
93
120
  - MIT-LICENSE
94
121
  - Rakefile
95
122
  - README.md
@@ -105,21 +132,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
105
132
  - - ! '>='
106
133
  - !ruby/object:Gem::Version
107
134
  version: '0'
108
- segments:
109
- - 0
110
- hash: -122910413
111
135
  required_rubygems_version: !ruby/object:Gem::Requirement
112
136
  none: false
113
137
  requirements:
114
138
  - - ! '>='
115
139
  - !ruby/object:Gem::Version
116
140
  version: '0'
117
- segments:
118
- - 0
119
- hash: -122910413
120
141
  requirements: []
121
142
  rubyforge_project:
122
- rubygems_version: 1.8.6
143
+ rubygems_version: 1.8.24
123
144
  signing_key:
124
145
  specification_version: 3
125
146
  summary: Makes Jasmine easier on Rails 3.1