Sha256: ce1fa80d506922ce6601dbd042b4f36f7bfa88f79ef4814040820b55f9c9ff66

Contents?: true

Size: 1.44 KB

Versions: 2

Compression:

Stored size: 1.44 KB

Contents

# 3rd-party
require "jekyll"


# internal
require "jekyll/assets_plugin/configuration"
require "jekyll/assets_plugin/environment"


module Jekyll
  module AssetsPlugin
    module SitePatch

      def self.included base
        base.class_eval do
          alias_method :write_without_assets, :write
          alias_method :write, :write_with_assets
        end
      end


      def assets_config
        @assets_config ||= Configuration.new(self.config["assets"] || {})
      end


      def assets
        @assets ||= Environment.new self
      end


      def asset_files
        @asset_files ||= []
      end


      def asset_path *args
        asset     = assets[*args]
        baseurl   = "#{assets_config.baseurl}/"
        cachebust = assets_config.cachebust

        case cachebust
        when :none then baseurl << asset.logical_path
        when :soft then baseurl << asset.logical_path << "?cb=#{asset.digest}"
        when :hard then baseurl << asset.digest_path
        else raise "Unknown cachebust strategy: #{cachebust.inspect}"
        end
      end


      def bundle_asset! asset
        if not asset_files.include? asset
          file = AssetFile.new self, asset

          asset_files   << file
          static_files  << file
        end
      end


      def write_with_assets
        static_files.push(*asset_files).uniq!
        write_without_assets
      end

    end
  end
end


Jekyll::Site.send :include, Jekyll::AssetsPlugin::SitePatch

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jekyll-assets-0.3.5 lib/jekyll/assets_plugin/site_patch.rb
jekyll-assets-0.3.4 lib/jekyll/assets_plugin/site_patch.rb