module Sprockets::Helpers::RailsHelper

Public Instance Methods

javascript_include_tag_with_enforced_precompile(*sources) click to toggle source
# File lib/assets_precompile_enforcer/sprockets/helpers/rails_helper.rb, line 6
def javascript_include_tag_with_enforced_precompile(*sources)
  sources_without_options(sources).each do |source|
    ensure_asset_will_be_precompiled!(source, 'js') if enforce_precompile?
  end
  javascript_include_tag_without_enforced_precompile(*sources)
end

Private Instance Methods

asset_list() click to toggle source
# File lib/assets_precompile_enforcer/sprockets/helpers/rails_helper.rb, line 33
def asset_list
  ignored = Rails.application.config.assets.ignore_for_precompile || []
  precompile = Rails.application.config.assets.precompile || []
  precompile + ignored
end
enforce_precompile?() click to toggle source
# File lib/assets_precompile_enforcer/sprockets/helpers/rails_helper.rb, line 29
def enforce_precompile?
  Rails.application.config.assets.enforce_precompile
end
ensure_asset_will_be_precompiled!(source, ext) click to toggle source
# File lib/assets_precompile_enforcer/sprockets/helpers/rails_helper.rb, line 39
def ensure_asset_will_be_precompiled!(source, ext)
  source = source.to_s
  return if asset_paths.is_uri?(source)
  asset_file = asset_environment.resolve(asset_paths.rewrite_extension(source, nil, ext))
  unless asset_environment.send(:logical_path_for_filename, asset_file, asset_list)

    # Allow user to define a custom error message
    error_message_proc = Rails.application.config.assets.precompile_error_message_proc

    error_message = if error_message_proc
      error_message_proc.call(asset_file)
    else
      "#{File.basename(asset_file)} must be added to config.assets.precompile, otherwise it won't be precompiled for production!"
    end

    raise AssetPaths::AssetNotPrecompiledError.new(error_message)
  end
end
sources_without_options(sources) click to toggle source
# File lib/assets_precompile_enforcer/sprockets/helpers/rails_helper.rb, line 25
def sources_without_options(sources)
  sources.last.is_a?(Hash) && sources.last.extractable_options? ? sources[0..-2] : sources
end