class Jekyll::Assets::Liquid::Tag::ProxiedAsset
Attributes
args[R]
asset[R]
env[R]
Public Class Methods
new(asset, args, env, tag)
click to toggle source
# File lib/jekyll/assets/liquid/tag/proxied_asset.rb, line 26 def initialize(asset, args, env, tag) @env = env @asset = asset @args = args @tag = tag cache_file proxy_file end
Public Instance Methods
cached?()
click to toggle source
# File lib/jekyll/assets/liquid/tag/proxied_asset.rb, line 46 def cached? @_cached end
digest()
click to toggle source
# File lib/jekyll/assets/liquid/tag/proxied_asset.rb, line 73 def digest Digest::SHA2.hexdigest( args.proxies.to_s ) end
digest_path()
click to toggle source
# File lib/jekyll/assets/liquid/tag/proxied_asset.rb, line 91 def digest_path name = asset.logical_path ext = File.extname(name) "#{name.chomp(ext)}-#{digest}#{ext}" end
filename()
click to toggle source
# File lib/jekyll/assets/liquid/tag/proxied_asset.rb, line 67 def filename env.in_cache_dir(digest_path) end
integrity()
click to toggle source
# File lib/jekyll/assets/liquid/tag/proxied_asset.rb, line 38 def integrity Sprockets::DigestUtils.integrity_uri( digest ) end
logical_path()
click to toggle source
We always digest a proxied asset so it's uniq based on what proxies you give us, it would be ignorant to treat it otherwise, we also make sure they are URL safe by digesting the args.
# File lib/jekyll/assets/liquid/tag/proxied_asset.rb, line 85 def logical_path digest_path end
source()
click to toggle source
# File lib/jekyll/assets/liquid/tag/proxied_asset.rb, line 61 def source File.binread(filename) end
write_to(name)
click to toggle source
# File lib/jekyll/assets/liquid/tag/proxied_asset.rb, line 52 def write_to(name) FileUtils.mkdir_p File.dirname(name) Sprockets::PathUtils.atomic_write(name) do |f| f.write source end end
Private Instance Methods
cache_file()
click to toggle source
# File lib/jekyll/assets/liquid/tag/proxied_asset.rb, line 111 def cache_file @_cached = File.file?(filename) return @_cached if @_cached dir = File.dirname(filename) FileUtils.mkdir_p dir unless dir == env.in_cache_dir FileUtils.cp asset.filename, filename true end
proxy_file()
click to toggle source
# File lib/jekyll/assets/liquid/tag/proxied_asset.rb, line 100 def proxy_file unless cached? args.proxies.each do |key, val| Proxies.get(key).first[:class].new(self, val, @args).process end end end