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
<<<<<<< HEAD
          instance.extend Rails32PathResolver if asset_pipeline_enabled?
          instance
        end

        def rails_defined?
          const_defined? :Rails
=======
        
          if uses_rails32?
            instance.extend Rails32PathResolver
          elsif uses_rails? #fallback to rails without asset pipeline
            instance.extend RailsPathResolver
          end

          instance
        end

        def uses_rails?
          const_defined?(:Rails)
        end

        def uses_rails32?
          uses_rails?  &&  ::Rails::VERSION::STRING =~ /^[3-9]\.[1-9]/
>>>>>>> c8c05bfdca05b2ee989fd7040676cebe6f2f2b88
        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