Sha256: 11f5cc2e527743347c7cb48ac07a8e4322651cd61b8f3e6b1c29e46ff098f5ea

Contents?: true

Size: 1.47 KB

Versions: 39

Compression:

Stored size: 1.47 KB

Contents

module Middleman::CoreExtensions::Assets
  class << self
    def registered(app)
      # Disable Padrino cache buster until explicitly enabled
      app.set :asset_stamp, false
      
      app.extend ClassMethods
      
      app.helpers Helpers
      
      app.register_asset_handler :base do |path, prefix, request|
        path.include?("://") ? path : File.join(app.http_prefix || "/", prefix, path)
      end
    end
    alias :included :registered
  end
  
  module ClassMethods
    def register_asset_handler(handler_name, &block)
      @asset_handler_map   ||= []
      @asset_handler_stack ||= []
      
      if block_given?
        @asset_handler_stack << block
        @asset_handler_map   << handler_name
      end
    end
    
    def asset_handler_get_url(path, prefix="", request=nil)
      @asset_handler_map   ||= []
      @asset_handler_stack ||= []
      
      @asset_handler_stack.last.call(path, prefix, request)
    end
    
    def before_asset_handler(position, *args)
      @asset_handler_map   ||= []
      @asset_handler_stack ||= []
      
      current_index = @asset_handler_map.index(position)
      return nil unless current_index

      previous = current_index - 1
      if (previous >= 0) && (previous < @asset_handler_map.length)
        @asset_handler_stack[previous].call(*args)
      else
        nil
      end
    end
  end
  
  module Helpers
    def asset_url(path, prefix="")
      self.class.asset_handler_get_url(path, prefix, request)
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
middleman-2.0.16.1-x86-mingw32 lib/middleman/core_extensions/assets.rb
middleman-2.0.16.1 lib/middleman/core_extensions/assets.rb
middleman-2.0.16-x86-mingw32 lib/middleman/core_extensions/assets.rb
middleman-2.0.16 lib/middleman/core_extensions/assets.rb
middleman-2.0.15.4-x86-mingw32 lib/middleman/core_extensions/assets.rb
middleman-2.0.15.4 lib/middleman/core_extensions/assets.rb
middleman-2.0.15.3-x86-mingw32 lib/middleman/core_extensions/assets.rb
middleman-2.0.15.3 lib/middleman/core_extensions/assets.rb
middleman-2.0.15.2-x86-mingw32 lib/middleman/core_extensions/assets.rb
middleman-2.0.15.2 lib/middleman/core_extensions/assets.rb
middleman-2.0.15.1-x86-mingw32 lib/middleman/core_extensions/assets.rb
middleman-2.0.15.1 lib/middleman/core_extensions/assets.rb
middleman-2.0.15-x86-mingw32 lib/middleman/core_extensions/assets.rb
middleman-2.0.15 lib/middleman/core_extensions/assets.rb
middleman-2.0.14-x86-mingw32 lib/middleman/core_extensions/assets.rb
middleman-2.0.14 lib/middleman/core_extensions/assets.rb
middleman-2.0.14.pre2-x86-mingw32 lib/middleman/core_extensions/assets.rb
middleman-2.0.14.pre2 lib/middleman/core_extensions/assets.rb
middleman-2.0.13.2-x86-mingw32 lib/middleman/core_extensions/assets.rb
middleman-2.0.14.pre-x86-mingw32 lib/middleman/core_extensions/assets.rb