Class: Octopress::Ink::Assets::Asset
- Inherits:
-
Object
- Object
- Octopress::Ink::Assets::Asset
show all
- Defined in:
- lib/octopress-ink/assets/asset.rb
Constant Summary
collapse
- FRONT_MATTER =
/\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(plugin, base, file) ⇒ Asset
Returns a new instance of Asset.
10
11
12
13
14
15
16
17
18
|
# 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
|
Instance Attribute Details
#base ⇒ Object
Returns the value of attribute base.
5
6
7
|
# File 'lib/octopress-ink/assets/asset.rb', line 5
def base
@base
end
|
#dir ⇒ Object
Returns the value of attribute dir.
5
6
7
|
# File 'lib/octopress-ink/assets/asset.rb', line 5
def dir
@dir
end
|
#exists ⇒ Object
Returns the value of attribute exists.
6
7
8
|
# File 'lib/octopress-ink/assets/asset.rb', line 6
def exists
@exists
end
|
#file ⇒ Object
Returns the value of attribute file.
5
6
7
|
# File 'lib/octopress-ink/assets/asset.rb', line 5
def file
@file
end
|
#plugin ⇒ Object
Returns the value of attribute plugin.
5
6
7
|
# File 'lib/octopress-ink/assets/asset.rb', line 5
def plugin
@plugin
end
|
#replacement ⇒ Object
Returns the value of attribute replacement.
5
6
7
|
# File 'lib/octopress-ink/assets/asset.rb', line 5
def replacement
@replacement
end
|
#root ⇒ Object
Returns the value of attribute root.
5
6
7
|
# File 'lib/octopress-ink/assets/asset.rb', line 5
def root
@root
end
|
Instance Method Details
#asset_info ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# 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 ⇒ Object
119
120
121
122
123
124
125
126
127
|
# 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) ⇒ Object
Copy asset to user override directory
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# 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 ⇒ Object
144
145
146
147
148
149
150
|
# File 'lib/octopress-ink/assets/asset.rb', line 144
def data
if read =~ FRONT_MATTER
SafeYAML.load($1)
else
{}
end
end
|
#destination ⇒ Object
115
116
117
|
# File 'lib/octopress-ink/assets/asset.rb', line 115
def destination
File.join(base, plugin.slug, file)
end
|
#disable ⇒ Object
51
52
53
|
# File 'lib/octopress-ink/assets/asset.rb', line 51
def disable
@disabled = true
end
|
#disabled? ⇒ Boolean
43
44
45
|
# File 'lib/octopress-ink/assets/asset.rb', line 43
def disabled?
@disabled || is_disabled(base, filename) || replaced?
end
|
#ext ⇒ Object
75
76
77
|
# File 'lib/octopress-ink/assets/asset.rb', line 75
def ext
File.extname(filename)
end
|
#filename ⇒ Object
39
40
41
|
# File 'lib/octopress-ink/assets/asset.rb', line 39
def filename
file
end
|
#info ⇒ Object
20
21
22
|
# File 'lib/octopress-ink/assets/asset.rb', line 20
def info
" - #{asset_info}"
end
|
#is_disabled(base, file) ⇒ Object
55
56
57
58
|
# 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 ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# 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 ⇒ Object
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
# 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 ⇒ Object
79
80
81
|
# File 'lib/octopress-ink/assets/asset.rb', line 79
def read
File.read(path)
end
|
#remove_jekyll_asset ⇒ Object
Remove files from Jekyll’s static_files array so it doesn’t end up in the compiled site directory.
107
108
109
110
111
112
113
|
# 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? ⇒ Boolean
47
48
49
|
# File 'lib/octopress-ink/assets/asset.rb', line 47
def replaced?
!@replacement.nil?
end
|