Class: ActiveAssets::ActiveExpansions::Assets
- Inherits:
-
Object
- Object
- ActiveAssets::ActiveExpansions::Assets
- Defined in:
- lib/active_assets/active_expansions/assets.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#expansions ⇒ Object
readonly
Returns the value of attribute expansions.
Instance Method Summary collapse
- #[](expansion_name) ⇒ Object
- #all(&blk) ⇒ Object
- #asset_type ⇒ Object
- #cache! ⇒ Object
- #expansion_names ⇒ Object
- #has_expansion?(name) ⇒ Boolean
-
#initialize(expansions) ⇒ Assets
constructor
A new instance of Assets.
- #paths(expansion_name) ⇒ Object
- #register! ⇒ Object
- #remove(expansion_name) ⇒ Object
Constructor Details
#initialize(expansions) ⇒ Assets
Returns a new instance of Assets.
8 9 10 |
# File 'lib/active_assets/active_expansions/assets.rb', line 8 def initialize(expansions) @expansions = expansions end |
Instance Attribute Details
#expansions ⇒ Object (readonly)
Returns the value of attribute expansions.
6 7 8 |
# File 'lib/active_assets/active_expansions/assets.rb', line 6 def expansions @expansions end |
Instance Method Details
#[](expansion_name) ⇒ Object
20 21 22 |
# File 'lib/active_assets/active_expansions/assets.rb', line 20 def [](expansion_name) @expansions[expansion_name] end |
#all(&blk) ⇒ Object
24 25 26 27 |
# File 'lib/active_assets/active_expansions/assets.rb', line 24 def all(&blk) @expansions.values.each(&blk) if block_given? @expansions.values end |
#asset_type ⇒ Object
37 38 39 |
# File 'lib/active_assets/active_expansions/assets.rb', line 37 def asset_type raise NoMethodError end |
#cache! ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/active_assets/active_expansions/assets.rb', line 60 def cache! all do |expansion| file_path = "#{"#{expansion.namespace}/" if expansion.namespace}#{expansion.name}.#{asset_type_short}" file_path = Rails.root.join('public', asset_type.pluralize, 'cache', file_path) paths = expansion.assets.select {|a| a.cache && (Array(a.group).include?(:all) || Array(a.group).include?(:deploy) || Array(a.group).any? {|e| Rails.env.send(:"#{e}?") }) }.map(&:path) cleanse_paths!(paths) FileUtils.mkdir_p(File.dirname(file_path)) File.open(file_path, 'w+') do |f| paths.each do |path| in_file = Rails.root.join('public', asset_type.pluralize, "#{path}.#{asset_type_short}") f.puts File.read(in_file) end end end end |
#expansion_names ⇒ Object
16 17 18 |
# File 'lib/active_assets/active_expansions/assets.rb', line 16 def expansion_names @expansions.keys end |
#has_expansion?(name) ⇒ Boolean
12 13 14 |
# File 'lib/active_assets/active_expansions/assets.rb', line 12 def has_expansion?(name) @expansions.has_key?(name) end |
#paths(expansion_name) ⇒ Object
29 30 31 |
# File 'lib/active_assets/active_expansions/assets.rb', line 29 def paths(expansion_name) self[expansion_name].assets.map(&:path) end |
#register! ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/active_assets/active_expansions/assets.rb', line 41 def register! all do |expansion| paths = if ActionController::Base.perform_caching group_assets = expansion.assets.select do |a| Array(a.group).include?(:deploy) || Array(a.group).any? {|e| e.to_s != 'all' && Rails.env.send(:"#{e}?") } end group_assets.map(&:path) + [File.join("cache#{"/#{expansion.namespace}" if expansion.namespace}", expansion.name.to_s)] else expansion.assets.select {|a| a.group == :all || Array(a.group).any? {|e| Rails.env.send(:"#{e}?") } }.map(&:path) end cleanse_paths!(paths) ActionView::Helpers::AssetTagHelper.send(:"register_#{asset_type}_expansion", expansion.name => paths) end end |
#remove(expansion_name) ⇒ Object
33 34 35 |
# File 'lib/active_assets/active_expansions/assets.rb', line 33 def remove(expansion_name) @expansions.delete(expansion_name) end |