diff --git a/.travis.yml b/.travis.yml index 430030825..9f1d97134 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,16 +9,14 @@ rvm: gemfile: - gemfiles/rails_3.2.gemfile - - gemfiles/rails_4.0.gemfile - gemfiles/rails_4.0.5.gemfile - gemfiles/rails_4.0_with_therubyracer.gemfile + - gemfiles/rails_4.1.gemfile - gemfiles/rails_4.2_sprockets_2.gemfile - gemfiles/rails_4.2_sprockets_3.gemfile - gemfiles/rails_4.2_sprockets_4.gemfile - - gemfiles/rails_4.1.gemfile - gemfiles/rails_5.gemfile - gemfiles/rails_5_no_sprockets.gemfile - - gemfiles/rails_5_mini_racer.gemfile - gemfiles/rails_5_sprockets_4.gemfile matrix: @@ -26,16 +24,14 @@ matrix: exclude: - rvm: 2.1 gemfile: gemfiles/rails_3.2.gemfile - - rvm: 2.3.0 - gemfile: gemfiles/rails_3.2.gemfile - rvm: 2.1 - gemfile: gemfiles/rails_4.0.gemfile + gemfile: rails_4.0.5.gemfile - rvm: 2.1 gemfile: rails_4.0_with_therubyracer.gemfile - - rvm: 2.1 - gemfile: gemfiles/rails_4.1.gemfile - rvm: 2.1 gemfile: gemfiles/rails_4.2_sprockets_2.gemfile + - rvm: 2.1 + gemfile: gemfiles/rails_4.2_sprockets_3.gemfile - rvm: 2.1 gemfile: gemfiles/rails_4.2_sprockets_4.gemfile - rvm: 2.1 @@ -44,8 +40,6 @@ matrix: gemfile: gemfiles/rails_5_no_sprockets.gemfile - rvm: 2.1 gemfile: gemfiles/rails_5_sprockets_4.gemfile - - rvm: 2.1 - gemfile: gemfiles/rails_5_mini_racer.gemfile - rvm: jruby-9.0.1.0 gemfile: gemfiles/rails_4.0.gemfile - rvm: jruby-9.0.1.0 diff --git a/Appraisals b/Appraisals index 59f70c99d..2ce9f1822 100644 --- a/Appraisals +++ b/Appraisals @@ -1,10 +1,8 @@ appraise "rails-3.2" do gem 'rails', '~> 3.2.21' gem 'rack-cache', '~> 1.6.1' -end - -appraise "rails-4.0" do - gem 'rails', '~> 4.0.13' + # Modern turbolinks depends on `Rails.application.assets` which no-worky + gem 'turbolinks', '~> 2.0' end appraise "rails-4.0.5" do @@ -14,11 +12,13 @@ appraise "rails-4.0.5" do # sprockets-rails 2.2.2. Ensure that server rendering falls back to # `ServerRendering::EnvironmentContainer`.` gem 'rails', '4.0.5' + gem "turbolinks" end appraise "rails-4.0-with-therubyracer" do gem 'rails', '~> 4.0.13' gem 'therubyracer', '0.12.0', :platform => :mri + gem "turbolinks" end appraise "rails-4.1" do @@ -30,6 +30,7 @@ end appraise "rails-4.2-sprockets_2" do gem 'rails', '~> 4.2.1' gem "sprockets", "~> 2.12" + gem "turbolinks" end appraise "rails-4.2-sprockets_3" do @@ -51,7 +52,6 @@ end appraise "rails-5-no_sprockets" do gem 'rails', '~> 5.0.0' - gem "turbolinks", "~> 5.0.0" end appraise "rails-5-sprockets_4" do diff --git a/gemfiles/rails_3.2.gemfile b/gemfiles/rails_3.2.gemfile index 35210461e..f93296133 100644 --- a/gemfiles/rails_3.2.gemfile +++ b/gemfiles/rails_3.2.gemfile @@ -4,5 +4,6 @@ source "http://rubygems.org" gem "rails", "~> 3.2.21" gem "rack-cache", "~> 1.6.1" +gem "turbolinks", "~> 2.0" gemspec :path => "../" diff --git a/gemfiles/rails_4.0.5.gemfile b/gemfiles/rails_4.0.5.gemfile index 4f0772091..eeb73d957 100644 --- a/gemfiles/rails_4.0.5.gemfile +++ b/gemfiles/rails_4.0.5.gemfile @@ -3,5 +3,6 @@ source "http://rubygems.org" gem "rails", "4.0.5" +gem "turbolinks" gemspec :path => "../" diff --git a/gemfiles/rails_4.0.gemfile b/gemfiles/rails_4.0.gemfile deleted file mode 100644 index 8417b9d48..000000000 --- a/gemfiles/rails_4.0.gemfile +++ /dev/null @@ -1,7 +0,0 @@ -# This file was generated by Appraisal - -source "http://rubygems.org" - -gem "rails", "~> 4.0.13" - -gemspec :path => "../" diff --git a/gemfiles/rails_4.0_with_therubyracer.gemfile b/gemfiles/rails_4.0_with_therubyracer.gemfile index 7a40d4bac..4c854cc34 100644 --- a/gemfiles/rails_4.0_with_therubyracer.gemfile +++ b/gemfiles/rails_4.0_with_therubyracer.gemfile @@ -4,5 +4,6 @@ source "http://rubygems.org" gem "rails", "~> 4.0.13" gem "therubyracer", "0.12.0", :platform => :mri +gem "turbolinks" gemspec :path => "../" diff --git a/gemfiles/rails_4.2_sprockets_2.gemfile b/gemfiles/rails_4.2_sprockets_2.gemfile index 6866f4535..d31127374 100644 --- a/gemfiles/rails_4.2_sprockets_2.gemfile +++ b/gemfiles/rails_4.2_sprockets_2.gemfile @@ -4,5 +4,6 @@ source "http://rubygems.org" gem "rails", "~> 4.2.1" gem "sprockets", "~> 2.12" +gem "turbolinks" gemspec :path => "../" diff --git a/gemfiles/rails_5_mini_racer.gemfile b/gemfiles/rails_5_mini_racer.gemfile deleted file mode 100644 index cdd41a9fc..000000000 --- a/gemfiles/rails_5_mini_racer.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -# This file was generated by Appraisal - -source "http://rubygems.org" - -gem "rails", "~> 5.0.0.beta2" -gem "turbolinks", "~> 5.0.0.beta" -gem "mini_racer", platform: :mri - -gemspec :path => "../" diff --git a/gemfiles/rails_5_no_sprockets.gemfile b/gemfiles/rails_5_no_sprockets.gemfile index 88900115a..c2b8165cf 100644 --- a/gemfiles/rails_5_no_sprockets.gemfile +++ b/gemfiles/rails_5_no_sprockets.gemfile @@ -3,6 +3,5 @@ source "http://rubygems.org" gem "rails", "~> 5.0.0" -gem "turbolinks", "~> 5.0.0", require: false gemspec :path => "../" diff --git a/lib/react/server_rendering/yaml_manifest_container.rb b/lib/react/server_rendering/yaml_manifest_container.rb index a8da5cf85..8f5634cf8 100644 --- a/lib/react/server_rendering/yaml_manifest_container.rb +++ b/lib/react/server_rendering/yaml_manifest_container.rb @@ -6,18 +6,24 @@ module ServerRendering # but sometimes, they're compiled to other directories (or other servers) class YamlManifestContainer def initialize - @assets = YAML.load_file(::Rails.root.join("public", ::Rails.application.config.assets.prefix, "manifest.yml")) + @assets = YAML.load_file(public_asset_path("manifest.yml")) end def find_asset(logical_path) asset_path = @assets[logical_path] || raise("No compiled asset for #{logical_path}, was it precompiled?") - asset_full_path = ::Rails.root.join("public", ::Rails.application.config.assets.prefix, asset_path) - File.read(asset_full_path) + File.read(public_asset_path(asset_path)) end def self.compatible? ::Rails::VERSION::MAJOR == 3 end + + private + + def public_asset_path(asset_name) + asset_path = File.join("public", ::Rails.application.config.assets.prefix, asset_name) + ::Rails.root.join(asset_path) + end end end end diff --git a/react-rails.gemspec b/react-rails.gemspec index db68dd190..07cb88813 100644 --- a/react-rails.gemspec +++ b/react-rails.gemspec @@ -25,7 +25,6 @@ Gem::Specification.new do |s| s.add_development_dependency 'listen', '~> 3.0.0' # support Ruby 2.1 s.add_development_dependency 'poltergeist', '>= 0.3.3' s.add_development_dependency 'test-unit', '~> 2.5' - s.add_development_dependency 'turbolinks', '>= 2.0.0' s.add_development_dependency 'rails', '>= 3.2' s.add_dependency 'coffee-script-source', '~>1.8' diff --git a/test/react/server_rendering/sprockets_renderer_test.rb b/test/react/server_rendering/sprockets_renderer_test.rb index 4399c1bc2..5f3e5152e 100644 --- a/test/react/server_rendering/sprockets_renderer_test.rb +++ b/test/react/server_rendering/sprockets_renderer_test.rb @@ -10,7 +10,7 @@ class SprocketsRendererTest < ActiveSupport::TestCase CALLBACKS.each do |callback_name| test "#render should pass prerender options to ##{callback_name}" do - mocked_method = MiniTest::Mock.new + mocked_method = Minitest::Mock.new mocked_method.expect :call, '', [ "Todo", "{\"todo\":\"write tests\"}", diff --git a/test/react/server_rendering/yaml_manifest_container_test.rb b/test/react/server_rendering/yaml_manifest_container_test.rb index a694ab89c..b1e989b06 100644 --- a/test/react/server_rendering/yaml_manifest_container_test.rb +++ b/test/react/server_rendering/yaml_manifest_container_test.rb @@ -18,4 +18,3 @@ def test_find_asset_gets_asset_contents end end end -