Module: Joosy::SprocketsHelper
- Defined in:
- app/helpers/joosy/sprockets_helper.rb
Class Method Summary collapse
Instance Method Summary collapse
- #extract_sources_and_sizes_from_include_tag(name) ⇒ Object
- #require_joosy_preloader_for(app_asset, options = {}) ⇒ Object
Class Method Details
.joosy_resources(namespaces = nil) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/helpers/joosy/sprockets_helper.rb', line 27 def self.joosy_resources(namespaces=nil) predefined = {} filtered_resources = Joosy::Rails::Engine.resources if namespaces namespaces = Array.wrap namespaces filtered_resources = filtered_resources.select{|key, _| namespaces.include? key } end filtered_resources.each do |namespace, resources| next unless resources && resources.size > 0 joosy_namespace = namespace.to_s.camelize.split('::').join('.') predefined[joosy_namespace] = resources end predefined end |
Instance Method Details
#extract_sources_and_sizes_from_include_tag(name) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 |
# File 'app/helpers/joosy/sprockets_helper.rb', line 4 def extract_sources_and_sizes_from_include_tag(name) code = javascript_include_tag name resources = code.scan(/(?:href|src)=['"]([^'"]+)['"]/).flatten resources.map do |resource| uri = URI.parse resource path = ::Rails.root.to_s + "/public" + uri.path size = File.size(path) rescue 0 [resource, size] end.to_json.html_safe end |
#require_joosy_preloader_for(app_asset, options = {}) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'app/helpers/joosy/sprockets_helper.rb', line 16 def require_joosy_preloader_for(app_asset, ={}) preloader_asset = "joosy/preloaders/#{[:preloader] || 'caching'}" force_preloader = [:force] || false if force_preloader require_asset preloader_asset else require_asset Rails.env == 'development' ? app_asset : preloader_asset end end |