Module: Javascripter::Helper
- Defined in:
- lib/javascripter/helper.rb
Instance Method Summary collapse
-
#add_javascript(*javascripts) ⇒ Object
add a javascript to the include list.
-
#ignore_javascript(*javascripts) ⇒ Object
ignore a javascript.
-
#javascript(*input) ⇒ Object
alias for javascript_include_tag.
-
#javascript_folder(path) ⇒ Object
returns an entire directory of javascripts recursively.
-
#javascripts(options = {}) ⇒ Object
Override this if needed.
- #page_javascripts(options = {}) ⇒ Object
Instance Method Details
#add_javascript(*javascripts) ⇒ Object
add a javascript to the include list
97 98 99 100 101 102 |
# File 'lib/javascripter/helper.rb', line 97 def add_javascript(*javascripts) @javascripts_add ||= [] javascripts.each do |javascript| @javascripts_add << javascript end end |
#ignore_javascript(*javascripts) ⇒ Object
ignore a javascript
105 106 107 108 109 110 |
# File 'lib/javascripter/helper.rb', line 105 def ignore_javascript(*javascripts) @javascripts_ignore ||= [] javascripts.each do |javascript| @javascripts_ignore << javascript end end |
#javascript(*input) ⇒ Object
alias for javascript_include_tag
5 6 7 8 9 |
# File 'lib/javascripter/helper.rb', line 5 def javascript(*input) input = [input].flatten javascript_include_tag(*input) end |
#javascript_folder(path) ⇒ Object
returns an entire directory of javascripts recursively
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/javascripter/helper.rb', line 26 def javascript_folder(path) if use_cache? return javascript("min/#{path}.js") else result = [] Dir["#{Rails.public_path}/javascripts/#{path}/**/*.js"].each do |item| result << item.gsub("#{Rails.public_path}/javascripts/", "") end return javascript(result) end end |
#javascripts(options = {}) ⇒ Object
Override this if needed
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/javascripter/helper.rb', line 12 def javascripts(={}) [ # include the default sources (minus application.js) javascript(ActionView::Helpers::AssetTagHelper::JAVASCRIPT_DEFAULT_SOURCES), # include the dynamic page javascripts page_javascripts(), # application.js always needs to be at the end javascript("application") ].join("\n") end |
#page_javascripts(options = {}) ⇒ Object
Include Javascripts on the page options to an array of strings for javascripts to include options sets an array of strings for javascripts to exclude options sets the cache option to javascript_include_tag (only for nonconditional items)
Automatically includes javascripts (if they exist on filesystem)
- javascripts for [controller]/[controller].js and [controller]/[action].js
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/javascripter/helper.rb', line 46 def page_javascripts(={}) # initialize collection javascripts = [] conditional_scripts = [] @javascripts_add ||= [] @javascripts_ignore ||= [] # Additional scripts (if requested) if [:include] @javascripts_add = [[:include]].flatten + @javascripts_add end # Exclude scripts (if requested) if [:exclude] @javascripts_ignore = [[:exclude]].flatten + @javascripts_ignore end # Add more scripts @javascripts_add.each do |javascript| javascripts << javascript end # Ignore scripts @javascripts_ignore.each do |javascript| javascripts.delete(javascript) end # dedup javascript array javascripts.uniq! # Build Output html_output = javascript_include_tag(*javascripts) # Controller/action scripts conditional_scripts << "#{controller.controller_name}" conditional_scripts << "#{controller.controller_name}/#{controller.action_name}" # only add conditional scripts if they exist on disk conditional_scripts.each do |javascript| if File.exist?("#{RAILS_ROOT}/public/javascripts/#{javascript}.js") html_output << "\n" html_output << javascript_include_tag(javascript) end end # return output return html_output end |