jasmine-rails 0.4.2 → 0.4.3

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/Rakefile CHANGED
@@ -3,20 +3,66 @@ begin
3
3
  require 'bundler/setup'
4
4
  rescue LoadError
5
5
  puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ exit # bundler is required for testbeds
6
7
  end
7
8
 
8
- APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
9
- load 'rails/tasks/engine.rake'
9
+ require 'testbeds/rake'
10
+ require 'rspec/core/rake_task'
10
11
  Bundler::GemHelper.install_tasks
11
12
 
12
- task :run_jasmine_rake_in_dummy do
13
- system <<-BASH
14
- cd spec/dummy
15
- bundle exec rake spec:javascript
16
- BASH
17
- end
13
+ if File.directory?(File.expand_path('spec/testbeds', File.dirname(__FILE__)))
14
+ all_test_tasks = []
18
15
 
19
- require 'rspec/core/rake_task'
20
- RSpec::Core::RakeTask.new(:run_browser_spec_in_dummy)
16
+ each_testbed do |testbed| # namespace 'testbed:rails-3.2'
17
+
18
+ desc "run specs with phantomjs in #{testbed.name}"
19
+ task :run_jasmine_rake_in_dummy do
20
+ p testbed.gemfile
21
+ ENV['BUNDLE_GEMFILE'] = testbed.gemfile
22
+ cmd = 'bundle exec rake testbed:current:spec:javascript'
23
+ raise 'specs failed' unless system cmd
24
+ end
21
25
 
22
- task :default => [:run_jasmine_rake_in_dummy, :run_browser_spec_in_dummy]
26
+ desc "run specs with browser in #{testbed.name}"
27
+ task :run_browser_spec_in_dummy do
28
+ p testbed.gemfile
29
+ ENV['BUNDLE_GEMFILE'] = testbed.gemfile
30
+ unless Rake::Task.task_defined?('_in_browser')
31
+ RSpec::Core::RakeTask.new(:_in_browser) do |t|
32
+ deps = testbed.dependencies
33
+ t.pattern = "spec/jasmine_spec.rb"
34
+ t.rspec_opts = deps.collect { |d| [ '-r', d ] }.flatten
35
+ end
36
+ end
37
+ Rake::Task['_in_browser'].invoke
38
+ Rake::Task['_in_browser'].reenable
39
+ end
40
+
41
+ desc "run all tests in #{testbed.name}"
42
+ task :all => [
43
+ "#{testbed.namespace}:run_jasmine_rake_in_dummy",
44
+ "#{testbed.namespace}:run_browser_spec_in_dummy"
45
+ ]
46
+
47
+ all_test_tasks << "#{testbed.namespace}:all"
48
+ end
49
+
50
+ desc "run all tests"
51
+ task :default => all_test_tasks
52
+ else
53
+ desc "run all tests"
54
+ task :default do
55
+ puts "To run tests, you must generate testbeds:"
56
+ puts
57
+ puts "1. Install bundle for each file in gemfiles/*:"
58
+ Dir['gemfiles/*'].each do |dir|
59
+ next if dir['.lock']
60
+ puts " BUNDLE_GEMFILE=#{dir} bundle install"
61
+ end
62
+ puts
63
+ puts "2. Execute `generate-testbeds` to generate testbed apps."
64
+ puts " (Don't use `bundle exec` for this.)"
65
+ puts
66
+ puts "3. Run `rake` again."
67
+ end
68
+ end
@@ -5,6 +5,7 @@ module JasmineRails
5
5
  isolate_namespace JasmineRails
6
6
 
7
7
  initializer :assets do |config|
8
+ Rails.application.config.assets.debug = false
8
9
  Rails.application.config.assets.paths << Jasmine::Core.path
9
10
  Rails.application.config.assets.paths << JasmineRails.spec_dir
10
11
  end
@@ -7,6 +7,12 @@ module JasmineRails
7
7
  mattr_accessor :disabled
8
8
  extend ActiveSupport::Concern
9
9
  included do
10
+ if ::Rails::VERSION::MAJOR == 4
11
+ alias_method :compute_public_path, :compute_asset_path
12
+ alias_method :compute_asset_path_with_offline_asset, :compute_public_path_with_offline_asset
13
+ alias_method_chain :compute_asset_path, :offline_asset
14
+ end
15
+
10
16
  alias_method_chain :compute_public_path, :offline_asset
11
17
  end
12
18
 
@@ -14,17 +20,13 @@ module JasmineRails
14
20
  return compute_public_path_without_offline_asset(source, dir, options) if JasmineRails::OfflineAssetPaths.disabled
15
21
  return source if source.starts_with?('/')
16
22
  content = Rails.application.assets[source].to_s
17
- source_path = offline_asset_dir.join(source)
23
+ source_path = Rails.root.join('spec/tmp/assets').join(source)
18
24
 
19
25
  FileUtils.mkdir_p File.dirname(source_path)
20
26
  Rails.logger.debug "Compiling #{source} to #{source_path}"
21
27
  File.open(source_path, 'w') {|f| f << content }
22
- "assets/#{source}"
28
+ "/assets/#{source}"
23
29
  end
24
30
 
25
- private
26
- def offline_asset_dir
27
- Rails.root.join('spec/tmp/assets')
28
- end
29
31
  end
30
32
  end
@@ -1,3 +1,3 @@
1
1
  module JasmineRails
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.3"
3
3
  end
@@ -10,7 +10,11 @@ namespace :spec do
10
10
  task :javascript => :environment do
11
11
  Rails.application.config.assets.debug = false
12
12
  require 'jasmine_rails/offline_asset_paths'
13
- ActionView::AssetPaths.send :include, JasmineRails::OfflineAssetPaths
13
+ if Rails::VERSION::MAJOR == 4
14
+ Sprockets::Rails::Helper.send :include, JasmineRails::OfflineAssetPaths
15
+ else
16
+ ActionView::AssetPaths.send :include, JasmineRails::OfflineAssetPaths
17
+ end
14
18
  spec_filter = ENV['SPEC']
15
19
  app = ActionController::Integration::Session.new(Rails.application)
16
20
  path = JasmineRails.route_path
@@ -19,7 +23,7 @@ namespace :spec do
19
23
  raise "Jasmine runner at '#{path}' returned a #{app.response.status} error: #{app.response.message}" unless app.response.success?
20
24
  html = app.response.body
21
25
  runner_path = Rails.root.join('spec/tmp/runner.html')
22
- File.open(runner_path, 'w') {|f| f << html}
26
+ File.open(runner_path, 'w') {|f| f << html.gsub('/assets', './assets')}
23
27
 
24
28
  run_cmd %{phantomjs "#{File.join(File.dirname(__FILE__), 'runner.js')}" "file://#{runner_path.to_s}?spec=#{spec_filter}"}
25
29
  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.4.2
4
+ version: 0.4.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2013-04-25 00:00:00.000000000 Z
14
+ date: 2013-05-13 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -29,6 +29,22 @@ dependencies:
29
29
  - - ! '>='
30
30
  - !ruby/object:Gem::Version
31
31
  version: 3.1.0
32
+ - !ruby/object:Gem::Dependency
33
+ name: sprockets-rails
34
+ requirement: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
32
48
  - !ruby/object:Gem::Dependency
33
49
  name: jasmine-core
34
50
  requirement: !ruby/object:Gem::Requirement
@@ -45,6 +61,22 @@ dependencies:
45
61
  - - ~>
46
62
  - !ruby/object:Gem::Version
47
63
  version: '1.3'
64
+ - !ruby/object:Gem::Dependency
65
+ name: testbeds
66
+ requirement: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ type: :development
73
+ prerelease: false
74
+ version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
48
80
  description: Provides a Jasmine Spec Runner that plays nicely with Rails 3.1 assets
49
81
  and sets up jasmine-headless-webkit
50
82
  email:
@@ -85,12 +117,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
117
  - - ! '>='
86
118
  - !ruby/object:Gem::Version
87
119
  version: '0'
120
+ segments:
121
+ - 0
122
+ hash: 2871315701798434786
88
123
  required_rubygems_version: !ruby/object:Gem::Requirement
89
124
  none: false
90
125
  requirements:
91
126
  - - ! '>='
92
127
  - !ruby/object:Gem::Version
93
128
  version: '0'
129
+ segments:
130
+ - 0
131
+ hash: 2871315701798434786
94
132
  requirements: []
95
133
  rubyforge_project:
96
134
  rubygems_version: 1.8.23