module ActionView::Helpers::AssetTagHelper
alias_method :rails_javascript_include_tag, :javascript_include_tag
# Adds a new option to Rails' built-in javascript_include_tag
# helper - :unobtrusive. Works in the same way as :defaults - specifying
# :unobtrusive will make sure the necessary javascript
# libraries and behaviours file +script+ tags are loaded. Will happily
# work along side :defaults.
#
# <%= javascript_include_tag :defaults, :unobtrusive %>
#
# This replaces the old +unobtrusive_javascript_files+ helper.
def javascript_include_tag(*sources)
main_sources, application_source = [], []
if sources.include?(:unobtrusive)
sources.delete(:unobtrusive)
sources.push('prototype') unless sources.include?(:defaults)
sources.push('lowpro')
behaviours_url = content_tag("script", "", { "type" => "text/javascript", "src" => UnobtrusiveJavascript::Settings.behaviours_url })
end
unless sources.empty?
main_sources = rails_javascript_include_tag(*sources).split("\n")
application_source = main_sources.pop if main_sources.last.include?('application.js')
end
[main_sources.join("\n"), behaviours_url, application_source].join("\n")
end
end