Module: Joosy::SprocketsHelper

Defined in:
app/helpers/joosy/sprockets_helper.rb

Class Method Summary collapse

Instance Method Summary collapse

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, options={})
  preloader_asset = "joosy/preloaders/#{options[:preloader] || 'caching'}"
  force_preloader = options[:force] || false

  if force_preloader
    require_asset preloader_asset
  else
    require_asset Rails.env == 'development' ? app_asset : preloader_asset
  end
end