Sha256: cab072861dbec14a5c72d712e32505a78e82753def2e7ec4dbd6f6a7738e1b6e

Contents?: true

Size: 1.87 KB

Versions: 10

Compression:

Stored size: 1.87 KB

Contents

# 3rd-party
require "jekyll"


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


module Jekyll
  module AssetsPlugin
    module Patches
      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 pathname, *args
          pathname, _, anchor = pathname.rpartition "#" if pathname["#"]
          pathname, _, query  = pathname.rpartition "?" if pathname["?"]

          asset     = assets[pathname, *args]
          baseurl   = "#{assets_config.baseurl}/"

          case cachebust = assets_config.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

          baseurl << (:soft == cachebust ? "&" : "?") << query if query
          baseurl << "#" << anchor if anchor

          baseurl
        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
end


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

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
jekyll-assets-0.4.3 lib/jekyll/assets_plugin/patches/site_patch.rb
jekyll-assets-0.5.4 lib/jekyll/assets_plugin/patches/site_patch.rb
jekyll-assets-0.5.3 lib/jekyll/assets_plugin/patches/site_patch.rb
jekyll-assets-0.5.2 lib/jekyll/assets_plugin/patches/site_patch.rb
jekyll-assets-0.5.1 lib/jekyll/assets_plugin/patches/site_patch.rb
jekyll-assets-0.5.0 lib/jekyll/assets_plugin/patches/site_patch.rb
jekyll-assets-0.4.2 lib/jekyll/assets_plugin/patches/site_patch.rb
jekyll-assets-0.4.1 lib/jekyll/assets_plugin/patches/site_patch.rb
jekyll-assets-0.4.0 lib/jekyll/assets_plugin/patches/site_patch.rb
jekyll-assets-0.3.8 lib/jekyll/assets_plugin/patches/site_patch.rb