機能 #722 » 0001-DSL.patch
core/plugin.rb | ||
---|---|---|
202 | 202 |
add_event_filter(:defined_settings) do |tabs| |
203 | 203 |
[tabs.melt << [name, place, @name]] end end |
204 | 204 | |
205 |
# 画像ファイルのパスを得る |
|
206 |
# ==== Args |
|
207 |
# - String filename ファイル名 |
|
208 |
def get_skin(filename) |
|
209 |
plugin_skin_dir = File.join(spec[:path], "skin") |
|
210 | ||
211 |
if File.exist?(plugin_skin_dir) |
|
212 |
Skin.get(filename, [plugin_skin_dir]) |
|
213 |
else |
|
214 |
Skin.get(filename) |
|
215 |
end |
|
216 |
end |
|
217 | ||
205 | 218 |
# マジックメソッドを追加する。 |
206 | 219 |
# on_?name :: add_event(name) |
207 | 220 |
# filter_?name :: add_event_filter(name) |
core/skin.rb | ||
---|---|---|
19 | 19 | |
20 | 20 |
def self.user_dir |
21 | 21 |
if USER_SKIN |
22 |
p [SKIN_ROOT, USER_SKIN] |
|
23 | 22 |
File.join(SKIN_ROOT, USER_SKIN) |
24 | 23 |
else |
25 | 24 |
nil |
26 | 25 |
end |
27 | 26 |
end |
28 | 27 | |
29 |
def self.get(filename, default = default_image) |
|
30 |
valid_path = [ user_dir, default_dir ].compact.map { |_| |
|
28 |
def self.get(filename, fallback_dirs = []) |
|
29 |
search_path = [ user_dir, fallback_dirs, default_dir ].flatten.compact |
|
30 | ||
31 |
valid_path = search_path.map { |_| |
|
31 | 32 |
File.join(_, filename) |
32 | 33 |
}.select { |_| |
33 | 34 |
FileTest.exist?(_) |
... | ... | |
36 | 37 |
if valid_path |
37 | 38 |
valid_path |
38 | 39 |
else |
39 |
default |
|
40 |
default_image
|
|
40 | 41 |
end |
41 | 42 |
end |
42 | 43 |
end |