module SpecificAssets::InstanceMethods
Public Instance Methods
add_css(*asset_name)
click to toggle source
# File lib/specific_assets/specific_assets.rb, line 9 def add_css(*asset_name) @css_specific += asset_name end
add_js(*asset_name)
click to toggle source
# File lib/specific_assets/specific_assets.rb, line 5 def add_js(*asset_name) @js_specific += asset_name end
css_assets()
click to toggle source
This method is called in view to include all css assets:
css_assets.each { |css| stylesheet_link_tag(css) }
# File lib/specific_assets/specific_assets.rb, line 25 def css_assets unless self.class.css_specific.nil? (filter_class_assets("css") + @css_specific).uniq else @css_specific end end
initialize_assets()
click to toggle source
# File lib/specific_assets/specific_assets.rb, line 33 def initialize_assets @js_specific ||= [] @css_specific ||= [] end
js_assets()
click to toggle source
This method is called in view to include all js assets:
js_assets.each { |js| javascript_include_tag(js) }
# File lib/specific_assets/specific_assets.rb, line 15 def js_assets unless self.class.js_specific.nil? (filter_class_assets("js") + @js_specific).uniq else @js_specific end end
Private Instance Methods
filter_class_assets(asset_type)
click to toggle source
Because assets end up being collected in a class variable assets from other controllers usually end up in the controller that has nothing to do with them. This method filters assets and returns the ones which are relevant to the current controller.
# File lib/specific_assets/specific_assets.rb, line 44 def filter_class_assets(asset_type) self.class.send("#{asset_type}_specific").map { |a| a[:controller] == self.class.to_s ? a[:asset] : nil }.compact end