diff --git a/lib/sprockets/rails/helper.rb b/lib/sprockets/rails/helper.rb index 6d3d8610..56ae58da 100644 --- a/lib/sprockets/rails/helper.rb +++ b/lib/sprockets/rails/helper.rb @@ -21,14 +21,6 @@ def raise_runtime_errors Sprockets::Rails::Helper.raise_runtime_errors end - class DependencyError < StandardError - def initialize(path, dep) - msg = "Asset depends on '#{dep}' to generate properly but has not declared the dependency\n" - msg << "Please add: `//= depend_on_asset \"#{dep}\"` to '#{path}'" - super msg - end - end - class AssetFilteredError < StandardError def initialize(source) msg = "Asset filtered out and will not be served: " << @@ -71,7 +63,7 @@ def self.extended(obj) def compute_asset_path(path, options = {}) # Check if we are inside Sprockets context before calling check_dependencies!. - check_dependencies!(path) if defined?(_dependency_assets) + check_dependencies!(path) if defined?(depend_on) if digest_path = asset_digest_path(path) path = digest_path if digest_assets @@ -177,11 +169,10 @@ def stylesheet_link_tag(*sources) end protected - # Checks if the asset is included in the dependencies list. + # Ensures the asset is included in the dependencies list. def check_dependencies!(dep) - if raise_runtime_errors && !_dependency_assets.detect { |asset| asset.include?(dep) } - raise DependencyError.new(self.pathname, dep) - end + depend_on(dep) + depend_on_asset(dep) end # Raise errors when source does not exist or is not in the precompiled list diff --git a/test/fixtures/url.css.erb b/test/fixtures/url.css.erb index a2b7ddba..e9b8e469 100644 --- a/test/fixtures/url.css.erb +++ b/test/fixtures/url.css.erb @@ -1,2 +1 @@ -//= depend_on_asset "logo.png" p { background: url(<%= image_path "logo.png" %>); } diff --git a/test/fixtures/url.js.erb b/test/fixtures/url.js.erb index f0b408fd..c5518349 100644 --- a/test/fixtures/url.js.erb +++ b/test/fixtures/url.js.erb @@ -1,2 +1 @@ -//= depend_on_asset "foo.js" var url = '<%= javascript_path :foo %>'; diff --git a/test/test_helper.rb b/test/test_helper.rb index 34704776..bcd6dcc1 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -435,18 +435,13 @@ def test_asset_digest end end -class ErrorsInHelpersTest < HelperTest +class AutomaticDependenciesFromHelpersTest < HelperTest - def test_dependency_error - Sprockets::Rails::Helper.raise_runtime_errors = true - Sprockets::Rails::Helper.precompile = [ lambda {|logical_path| true } ] - @view.assets_environment = @assets + def test_dependency_added + @view.assets_environment = @assets - assert_raises Sprockets::Rails::Helper::DependencyError do - @view.asset_path("error/dependency.js") - end + @view.asset_path("url.css") - Sprockets::Rails::Helper.raise_runtime_errors = false - @view.asset_path("error/dependency.js") + assert_equal ["logo.png", "url.css.erb"], @assets['url.css'].send(:dependency_paths).map {|d| File.basename(d.pathname) }.sort end end