Sha256: c35d24493724433a92aeb7923642d5953b9dad8e04206e611350eb0c547ae55d

Contents?: true

Size: 1.03 KB

Versions: 43

Compression:

Stored size: 1.03 KB

Contents

module Trackman
  module Assets
    module Components
      module AssetFactory
        def create attributes = {}
          path = attributes[:path]

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

          instance = parent.new attributes

          if asset_pipeline_enabled?
            instance.extend Rails32PathResolver  
          elsif rails_defined? #fallback to rails without asset pipeline
            instance.extend RailsPathResolver
          end

          instance
        end

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

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

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
trackman-0.4.2 lib/trackman/assets/components/asset_factory.rb
trackman-0.4.1 lib/trackman/assets/components/asset_factory.rb
trackman-0.4.0 lib/trackman/assets/components/asset_factory.rb
trackman-0.3.5 lib/trackman/assets/components/asset_factory.rb
trackman-0.3.4 lib/trackman/assets/components/asset_factory.rb
trackman-0.3.2 lib/trackman/assets/components/asset_factory.rb
trackman-0.3.1 lib/trackman/assets/components/asset_factory.rb
trackman-0.3.0 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.90 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.89 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.88 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.87 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.86 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.85 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.84 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.83 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.82 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.81 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.80 lib/trackman/assets/components/asset_factory.rb
trackman-0.2.65 lib/trackman/assets/components/asset_factory.rb