pax_global_header00006660000000000000000000000064134574323520014522gustar00rootroot0000000000000052 comment=6d8004e492d150581ce868b31536b483d83e1953 ruby-jekyll-include-cache-0.2.0/000077500000000000000000000000001345743235200164545ustar00rootroot00000000000000ruby-jekyll-include-cache-0.2.0/jekyll-include-cache.gemspec000066400000000000000000000036051345743235200240010ustar00rootroot00000000000000######################################################### # This file has been automatically generated by gem2tgz # ######################################################### # -*- encoding: utf-8 -*- # stub: jekyll-include-cache 0.2.0 ruby lib Gem::Specification.new do |s| s.name = "jekyll-include-cache".freeze s.version = "0.2.0" s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= s.require_paths = ["lib".freeze] s.authors = ["Ben Balter".freeze] s.date = "2019-03-21" s.email = ["ben.balter@github.com".freeze] s.files = ["lib/jekyll-include-cache.rb".freeze, "lib/jekyll-include-cache/cache.rb".freeze, "lib/jekyll-include-cache/tag.rb".freeze, "lib/jekyll-include-cache/version.rb".freeze] s.homepage = "https://github.com/benbalter/jekyll-include-cache".freeze s.licenses = ["MIT".freeze] s.rubygems_version = "2.5.2.1".freeze s.summary = "A Jekyll plugin to cache the rendering of Liquid includes".freeze if s.respond_to? :specification_version then s.specification_version = 4 if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then s.add_runtime_dependency(%q.freeze, ["< 5.0", ">= 3.7"]) s.add_development_dependency(%q.freeze, ["~> 3.5"]) s.add_development_dependency(%q.freeze, ["~> 0.51"]) s.add_development_dependency(%q.freeze, ["~> 0.3"]) else s.add_dependency(%q.freeze, ["< 5.0", ">= 3.7"]) s.add_dependency(%q.freeze, ["~> 3.5"]) s.add_dependency(%q.freeze, ["~> 0.51"]) s.add_dependency(%q.freeze, ["~> 0.3"]) end else s.add_dependency(%q.freeze, ["< 5.0", ">= 3.7"]) s.add_dependency(%q.freeze, ["~> 3.5"]) s.add_dependency(%q.freeze, ["~> 0.51"]) s.add_dependency(%q.freeze, ["~> 0.3"]) end end ruby-jekyll-include-cache-0.2.0/lib/000077500000000000000000000000001345743235200172225ustar00rootroot00000000000000ruby-jekyll-include-cache-0.2.0/lib/jekyll-include-cache.rb000066400000000000000000000011611345743235200235220ustar00rootroot00000000000000# frozen_string_literal: true require "jekyll" module JekyllIncludeCache autoload :Tag, "jekyll-include-cache/tag" autoload :Cache, "jekyll-include-cache/cache" class << self def cache @cache ||= if defined? Jekyll::Cache Jekyll::Cache.new(self.class.name) else JekyllIncludeCache::Cache.new end end def reset JekyllIncludeCache.cache.clear end end end Liquid::Template.register_tag("include_cached", JekyllIncludeCache::Tag) Jekyll::Hooks.register :site, :pre_render do |_site| JekyllIncludeCache.reset end ruby-jekyll-include-cache-0.2.0/lib/jekyll-include-cache/000077500000000000000000000000001345743235200231765ustar00rootroot00000000000000ruby-jekyll-include-cache-0.2.0/lib/jekyll-include-cache/cache.rb000066400000000000000000000010301345743235200245600ustar00rootroot00000000000000# frozen_string_literal: true # Jekyll 4.x comptable caching class for pre-4.x compatability module JekyllIncludeCache class Cache extend Forwardable def_delegators :@cache, :[]=, :key?, :delete, :clear def initialize(_name = nil) @cache = {} end def getset(key) if key?(key) @cache[key] else value = yield @cache[key] = value value end end def [](key) if key?(key) @cache[key] else raise end end end end ruby-jekyll-include-cache-0.2.0/lib/jekyll-include-cache/tag.rb000066400000000000000000000014721345743235200243020ustar00rootroot00000000000000# frozen_string_literal: true require "digest/md5" module JekyllIncludeCache class Tag < Jekyll::Tags::IncludeTag def render(context) path = path(context) params = parse_params(context) if @params key = key(path, params) return unless path if JekyllIncludeCache.cache.key?(key) Jekyll.logger.debug "Include cache hit:", path JekyllIncludeCache.cache[key] else Jekyll.logger.debug "Include cache miss:", path JekyllIncludeCache.cache[key] = super end end private def path(context) site = context.registers[:site] file = render_variable(context) || @file locate_include_file(context, file, site.safe) end def key(path, params) Digest::MD5.hexdigest(path.to_s + params.to_s) end end end ruby-jekyll-include-cache-0.2.0/lib/jekyll-include-cache/version.rb000066400000000000000000000001211345743235200252020ustar00rootroot00000000000000# frozen_string_literal: true module JekyllIncludeCache VERSION = "0.2.0" end