class Octopress::Ink::Assets::Asset
Constants
- FRONT_MATTER
Attributes
base[R]
dir[R]
exists[RW]
file[R]
plugin[R]
replacement[R]
root[R]
Public Class Methods
new(plugin, base, file)
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 10 def initialize(plugin, base, file) @file = file @base = base @plugin = plugin @root = plugin.assets_path @dir = File.join(plugin.slug, base) @exists = {} file_check end
Public Instance Methods
add()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 83 def add Plugins.static_files << StaticFile.new(path, destination) end
asset_info()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 24 def asset_info message = filename.ljust(35) if replaced? message += "Replaced by #{@replacement} plugin" elsif disabled? message += "Disabled by configuration" elsif path.to_s != plugin_path shortpath = File.join(Plugins.custom_dir.sub(Dir.pwd,''), dir).sub('/','') message += "From: #{File.join(shortpath,filename)}" end message end
content()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 119 def content @content ||= begin if read =~ FRONT_MATTER $POSTMATCH else read end end end
copy(target_dir)
click to toggle source
Copy asset to user override directory
# File lib/octopress-ink/assets/asset.rb, line 89 def copy(target_dir) return unless exists? plugin_path if target_dir target_dir = File.join(target_dir, base) else target_dir = user_dir end FileUtils.mkdir_p File.join(target_dir, File.dirname(file)) FileUtils.cp plugin_path, File.join(target_dir, file) target_dir.sub!(Dir.pwd+'/', '') "+ ".green + "#{File.join(target_dir, filename)}" end
data()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 144 def data if read =~ FRONT_MATTER SafeYAML.load($1) else {} end end
destination()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 115 def destination File.join(base, plugin.slug, file) end
disable()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 51 def disable @disabled = true end
disabled?()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 43 def disabled? @disabled || is_disabled(base, filename) || replaced? end
ext()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 75 def ext File.extname(filename) end
filename()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 39 def filename file end
info()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 20 def info " - #{asset_info}" end
is_disabled(base, file)
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 55 def is_disabled(base, file) config = @plugin.config['disable'] config.include?(base) || config.include?(File.join(base, filename)) end
path()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 60 def path @path ||= begin files = [] files << user_path files << plugin_path files = files.flatten.reject { |f| !exists? f } if files.empty? raise IOError.new "Could not find #{File.basename(file)} at #{file}" end files[0] end end
payload()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 129 def payload @payload ||= begin p = Ink.payload p['jekyll'] = { 'version' => Jekyll::VERSION, 'environment' => Jekyll.env } p['site'] = Octopress.site.config p['site']['data'] = Octopress.site.site_data p['page'] = data p end end
read()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 79 def read File.read(path) end
remove_jekyll_asset()
click to toggle source
Remove files from Jekyll’s static_files array so it doesn’t end up in the compiled site directory.
# File lib/octopress-ink/assets/asset.rb, line 107 def remove_jekyll_asset Octopress.site.static_files.clone.each do |sf| if sf.kind_of?(Jekyll::StaticFile) && sf.path == path.to_s Octopress.site.static_files.delete(sf) end end end
replaced?()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 47 def replaced? !@replacement.nil? end
Private Instance Methods
exists?(file)
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 188 def exists?(file) exists[file] ||= File.exists?(file) exists[file] end
file_check()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 182 def file_check if !exists? plugin_path raise "\nPlugin: #{plugin.name}: Could not find #{File.basename(file)} at #{plugin_path}".red end end
local_plugin_path()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 174 def local_plugin_path File.join Octopress.site.source, dir, file end
plugin_dir()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 162 def plugin_dir File.join root, base end
plugin_path()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 166 def plugin_path File.join plugin_dir, file end
source_dir()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 154 def source_dir if exists? user_path user_dir else plugin_dir end end
user_dir()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 170 def user_dir File.join Plugins.custom_dir, dir end
user_path()
click to toggle source
# File lib/octopress-ink/assets/asset.rb, line 178 def user_path File.join user_dir, filename end