From 96f5b58ecd7afd2054fe6c97ac21208a4ccd8e57 Mon Sep 17 00:00:00 2001 From: moguno Date: Sun, 26 Oct 2014 21:54:01 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=81=8B=E3=82=89=E3=82=B9=E3=82=AD=E3=83=B3=E7=94=BB=E5=83=8F?= =?UTF-8?q?=E3=82=92=E5=8F=96=E5=BE=97=E3=81=99=E3=82=8B=E3=81=9F=E3=82=81?= =?UTF-8?q?=E3=81=AEDSL=E3=83=A1=E3=82=BD=E3=83=83=E3=83=89=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E3=81=97=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/plugin.rb | 13 +++++++++++++ core/skin.rb | 9 +++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/core/plugin.rb b/core/plugin.rb index 4b4c0e7..f2464b7 100644 --- a/core/plugin.rb +++ b/core/plugin.rb @@ -202,6 +202,19 @@ class Plugin add_event_filter(:defined_settings) do |tabs| [tabs.melt << [name, place, @name]] end end + # 画像ファイルのパスを得る + # ==== Args + # - String filename ファイル名 + def get_skin(filename) + plugin_skin_dir = File.join(spec[:path], "skin") + + if File.exist?(plugin_skin_dir) + Skin.get(filename, [plugin_skin_dir]) + else + Skin.get(filename) + end + end + # マジックメソッドを追加する。 # on_?name :: add_event(name) # filter_?name :: add_event_filter(name) diff --git a/core/skin.rb b/core/skin.rb index 4686fd7..3d4ab49 100644 --- a/core/skin.rb +++ b/core/skin.rb @@ -19,15 +19,16 @@ class Skin def self.user_dir if USER_SKIN - p [SKIN_ROOT, USER_SKIN] File.join(SKIN_ROOT, USER_SKIN) else nil end end - def self.get(filename, default = default_image) - valid_path = [ user_dir, default_dir ].compact.map { |_| + def self.get(filename, fallback_dirs = []) + search_path = [ user_dir, fallback_dirs, default_dir ].flatten.compact + + valid_path = search_path.map { |_| File.join(_, filename) }.select { |_| FileTest.exist?(_) @@ -36,7 +37,7 @@ class Skin if valid_path valid_path else - default + default_image end end end -- 2.1.2