class Middleman::CachingProxy::Extension
Attributes
add_to_cache[R]
copy_from_cache[R]
Public Class Methods
new(app, options_hash = {}, &block)
click to toggle source
Calls superclass method
# File lib/middleman/caching_proxy/extension.rb, line 39 def initialize(app, options_hash = {}, &block) super if Semantic::Version.new(Middleman::VERSION).major <= 3 app.send :include, InstanceMethods end if !options.cache_key raise "Please supply a cache_key value" end @copy_from_cache = [] @add_to_cache = [] @cache = nil end
Public Instance Methods
add(item)
click to toggle source
# File lib/middleman/caching_proxy/extension.rb, line 64 def add(item) if cache.has?(item) copy_from_cache << item true else add_to_cache << item false end end
after_build(_builder)
click to toggle source
# File lib/middleman/caching_proxy/extension.rb, line 59 def after_build(_builder) copy_new_files_to_cache cache.save end
manipulate_resource_list(resources)
click to toggle source
# File lib/middleman/caching_proxy/extension.rb, line 55 def manipulate_resource_list(resources) resources + cached_resources end
Private Instance Methods
cache()
click to toggle source
# File lib/middleman/caching_proxy/extension.rb, line 76 def cache @cache ||= Cache.new(path: options.cache_directory, key: options.cache_key) end
cached_resources()
click to toggle source
# File lib/middleman/caching_proxy/extension.rb, line 89 def cached_resources copy_from_cache.map do |item| cached_path = cache.full_path(item: item) # TODO: Handle directory_indexes extension build_path = relative_build_path(item.path) CachedResource.new( path: item.path, cached_path: cached_path, build_path: build_path ) end end
copy_new_files_to_cache()
click to toggle source
# File lib/middleman/caching_proxy/extension.rb, line 80 def copy_new_files_to_cache add_to_cache.each do |item| # Handle directory_indexes extension resource = app.sitemap.find_resource_by_path(item.path) build_path = relative_build_path(resource.destination_path) cache.add item: item, source: build_path end end
relative_build_path(path)
click to toggle source
# File lib/middleman/caching_proxy/extension.rb, line 100 def relative_build_path(path) File.join("build", path) end