Sha256: 7efdc7b796d93b2a2abf481122b5e5ca9a8ee3b56389739c81ed03bfd66ff971

Contents?: true

Size: 1.41 KB

Versions: 1

Compression:

Stored size: 1.41 KB

Contents

# 3rd-party
require 'sprockets'


# internal
require 'jekyll/assets_plugin/asset_file'
require 'jekyll/assets_plugin/configuration'


module Jekyll
  module AssetsPlugin
    # Patch that provides #assets and #assets_config to Site
    #
    module SitePatch
      def assets_config
        @assets_config ||= Configuration.new(self.config['assets'] || {})
      end

      def assets
        unless @assets
          @assets = Sprockets::Environment.new(self.source)

          assets_config.sources.each(&@assets.method(:append_path))

          if js_compressor = assets_config.js_compressor
            @assets.js_compressor = js_compressor
          end

          if css_compressor = assets_config.css_compressor
            @assets.css_compressor = css_compressor
          end

          @assets.context_class.class_eval <<-RUBY, __FILE__, __LINE__
            def asset_path(path, options = {})
              asset = environment.find_asset path, options
              raise FileNotFound, "couldn't find file '\#{path}'" unless asset
              "/#{assets_config.dirname}/\#{asset.digest_path}".squeeze "/"
            end
          RUBY
        end

        @assets
      end

      def has_bundled_asset? asset
        if asset.is_a? String
          asset = assets[asset]
        end

        !self.static_files.index do |file|
          file.is_a? AssetFile and file.asset == asset
        end.nil?
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jekyll-assets-0.1.0 lib/jekyll/assets_plugin/site_patch.rb