Sha256: 7ea5f8c4f806a478f2ddb4c3454caec55e5c399312e40b473b7ad94129459b9b

Contents?: true

Size: 1.33 KB

Versions: 13

Compression:

Stored size: 1.33 KB

Contents

# Asset Host module
class Middleman::Extensions::AssetHost < ::Middleman::Extension
  option :host, nil, 'The asset host to use, or false for no asset host, or a Proc to determine asset host'

  def initialize(app, options_hash={}, &block)
    super

    # Backwards compatible API
    app.config.define_setting :asset_host, nil, 'The asset host to use, or false for no asset host, or a Proc to determine asset host'

    app.compass_config do |config|
      if asset_host = extensions[:asset_host].host
        if asset_host.is_a?(Proc)
          config.asset_host(&asset_host)
        else
          config.asset_host do |_|
            asset_host
          end
        end
      end
    end if app.respond_to?(:compass_config)
  end

  def host
    app.config[:asset_host] || options[:host]
  end

  helpers do
    # Override default asset url helper to include asset hosts
    #
    # @param [String] path
    # @param [String] prefix
    # @return [String]
    def asset_url(path, prefix='')
      controller = extensions[:asset_host]

      original_output = super
      return original_output unless controller.host

      asset_prefix = if controller.host.is_a?(Proc)
        controller.host.call(original_output)
      elsif controller.host.is_a?(String)
        controller.host
      end

      File.join(asset_prefix, original_output)
    end
  end
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
middleman-core-3.3.12 lib/middleman-more/extensions/asset_host.rb
middleman-core-3.3.11 lib/middleman-more/extensions/asset_host.rb
middleman-core-3.3.10 lib/middleman-more/extensions/asset_host.rb
middleman-core-3.3.9 lib/middleman-more/extensions/asset_host.rb
middleman-core-3.3.8 lib/middleman-more/extensions/asset_host.rb
middleman-core-3.3.7 lib/middleman-more/extensions/asset_host.rb
middleman-core-3.3.6 lib/middleman-more/extensions/asset_host.rb
middleman-core-3.3.5 lib/middleman-more/extensions/asset_host.rb
middleman-core-cj-3.3.6 lib/middleman-more/extensions/asset_host.rb
middleman-core-cj-3.3.5 lib/middleman-more/extensions/asset_host.rb
middleman-core-cj-3.3.4 lib/middleman-more/extensions/asset_host.rb
middleman-core-3.3.4 lib/middleman-more/extensions/asset_host.rb
middleman-core-3.3.3 lib/middleman-more/extensions/asset_host.rb