Sha256: 9019a5eff51e0179c12c303542fa9a1ad37c4137e10f2c77f06f116f5f34f27b

Contents?: true

Size: 1.47 KB

Versions: 33

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

33 entries across 33 versions & 1 rubygems

Version Path
middleman-2.0.9.pre.2-x86-mingw32 lib/middleman/core_extensions/assets.rb
middleman-2.0.9.pre.2 lib/middleman/core_extensions/assets.rb
middleman-2.0.9.pre-x86-mswin32 lib/middleman/core_extensions/assets.rb
middleman-2.0.9.pre lib/middleman/core_extensions/assets.rb
middleman-2.0.8 lib/middleman/core_extensions/assets.rb
middleman-2.0.7 lib/middleman/core_extensions/assets.rb
middleman-2.0.6 lib/middleman/core_extensions/assets.rb
middleman-2.0.5 lib/middleman/core_extensions/assets.rb
middleman-2.0.4 lib/middleman/core_extensions/assets.rb
middleman-2.0.3 lib/middleman/core_extensions/assets.rb
middleman-2.0.2 lib/middleman/core_extensions/assets.rb
middleman-2.0.1.1 lib/middleman/core_extensions/assets.rb
middleman-2.0.1 lib/middleman/core_extensions/assets.rb
middleman-2.0.0.3 lib/middleman/core_extensions/assets.rb
middleman-2.0.0.2 lib/middleman/core_extensions/assets.rb
middleman-2.0.0.1 lib/middleman/core_extensions/assets.rb
middleman-2.0.0 lib/middleman/core_extensions/assets.rb
middleman-2.0.0.rc99 lib/middleman/core_extensions/assets.rb
middleman-2.0.0.rc98 lib/middleman/core_extensions/assets.rb
middleman-2.0.0.rc97 lib/middleman/core_extensions/assets.rb