Sha256: e240b2dce55dffed5a1f273206a7137cb09e1e23a3959672e1f5c2cca9abd5aa
Contents?: true
Size: 1.2 KB
Versions: 7
Compression:
Stored size: 1.2 KB
Contents
module Trackman module Assets module AssetFactory def create attributes = {} path = attributes[:path] instance = retrieve_parent(path).new attributes add_content_behavior instance end def retrieve_parent path if File.extname(path) == '.html' parent = HtmlAsset elsif File.extname(path) == '.css' parent = CssAsset else parent = Asset end parent end def add_content_behavior instance if asset_pipeline_enabled? instance.extend Trackman::Path::Rails32Resolver, BundledAsset return instance elsif rails_defined? #fallback to rails without asset pipeline instance.extend Trackman::Path::RailsResolver end instance.extend Trackman::Components::Hashable instance end def rails_defined? Object.const_defined?(:Rails) end def asset_pipeline_enabled? rails_defined? && Rails.respond_to?(:application) && Rails.application.config.assets.enabled && Rails.application.respond_to?(:assets) && Rails.application.assets end end end end
Version data entries
7 entries across 7 versions & 1 rubygems