Sha256: 7ed54f9c2ae1d69017bc0258329364bb87fe2a6138ea41555b00c37a3d9f9e98

Contents?: true

Size: 1.42 KB

Versions: 2

Compression:

Stored size: 1.42 KB

Contents

# 3rd-party
require "jekyll"


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


module Jekyll
  module AssetsPlugin
    module Patches
      module SitePatch

        def self.included base
          base.class_eval do
            alias_method :__orig_write, :write
            alias_method :write, :__wrap_write
          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["?"]

          AssetPath.new(assets[pathname, *args]).tap{ |ap|
            ap.anchor = anchor
            ap.query  = query
          }.to_s
        end


        def bundle_asset! asset
          if not asset_files.include? asset
            asset_files << asset
            asset.jekyll_assets.each{ |path| bundle_asset! assets[path] }
          end
        end


        def __wrap_write
          static_files.push(*asset_files).uniq!
          __orig_write
        end

      end
    end
  end
end


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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jekyll-assets-0.7.2 lib/jekyll/assets_plugin/patches/site_patch.rb
jekyll-assets-0.7.1 lib/jekyll/assets_plugin/patches/site_patch.rb