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
91 92 93 94 95 96 |
# File 'lib/javascripter/helper.rb', line 91 def add_javascript(*javascripts) @javascripts_add ||= [] javascripts.each do |javascript| @javascripts_add << javascript end end |
#ignore_javascript(*javascripts) ⇒ Object
ignore a javascript
99 100 101 102 103 104 |
# File 'lib/javascripter/helper.rb', line 99 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
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/javascripter/helper.rb', line 20 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 |
# File 'lib/javascripter/helper.rb', line 12 def javascripts(={}) [ page_javascripts(), 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
40 41 42 43 44 45 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 |
# File 'lib/javascripter/helper.rb', line 40 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 |