Sha256: 822b1887516aff7901a97a8e34faf1fde373c1579035d70860a89f270a1b760d

Contents?: true

Size: 1.45 KB

Versions: 1

Compression:

Stored size: 1.45 KB

Contents

module Jasmine

  class AssetBundle
    def self.factory
      if Jasmine::Dependencies.rails3?
        return Rails3AssetBundle
      end
      if Jasmine::Dependencies.rails4?
        return Rails4AssetBundle
      end
    end

    class RailsAssetBundle
      def initialize(pathname)
        @pathname = pathname
      end

      private

      attr_reader :pathname
    end

    class Rails3AssetBundle < RailsAssetBundle

      def assets
        context = get_asset_context
        context.asset_paths.asset_for(pathname, 'js').to_a.map do |path|
          context.asset_path(path)
        end
      end

      private
      def get_asset_context
        context = ::Rails.application.assets.context_class
        context.extend(::Sprockets::Helpers::IsolatedHelper)
        context.extend(::Sprockets::Helpers::RailsHelper)
      end
    end

    class Rails4AssetBundle

      def initialize(pathname)
        @pathname = pathname
      end

      def assets
        context.get_original_assets(pathname)
      end

      private
      attr_reader :pathname

      def context
        return @context if @context
        @context = ActionView::Base.new
        @context.instance_eval do
          def get_original_assets(pathname)
            lookup_asset_for_path(pathname, :type => :javascript).to_a.map do |processed_asset|
              path_to_javascript(processed_asset.logical_path)
            end
          end
        end
        @context

      end
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jasmine-2.0.0.rc2 lib/jasmine/asset_bundle.rb