Module: Trackman::Assets::AssetFactory

Included in:
Asset, RemoteAssetFactory
Defined in:
lib/trackman/assets/asset_factory.rb

Instance Method Summary collapse

Instance Method Details

#add_content_behavior(instance) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/trackman/assets/asset_factory.rb', line 21

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::Resolver
  end
  instance.extend Trackman::Components::Hashable

  instance
end

#asset_pipeline_enabled?Boolean

Returns:

  • (Boolean)


37
38
39
40
41
42
43
# File 'lib/trackman/assets/asset_factory.rb', line 37

def asset_pipeline_enabled?
   rails_defined? && 
   Rails.respond_to?(:application) &&
   Rails.application.config.assets.enabled &&
   Rails.application.respond_to?(:assets) &&
   Rails.application.assets
end

#create(attributes = {}) ⇒ Object



4
5
6
7
8
# File 'lib/trackman/assets/asset_factory.rb', line 4

def create attributes = {}
  path = attributes[:path]
  instance = retrieve_parent(path).new attributes
  add_content_behavior instance
end

#rails_defined?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/trackman/assets/asset_factory.rb', line 33

def rails_defined?
  Object.const_defined?(:Rails)
end

#retrieve_parent(path) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/trackman/assets/asset_factory.rb', line 10

def retrieve_parent path
  if File.extname(path) == '.html'
    parent = HtmlAsset
  elsif File.extname(path) == '.css'
    parent = CssAsset 
  else
    parent = Asset
  end
  parent 
end