OSDN Git Service

- modified PluginManager module. master
authorKureha Hisame <kureha@gmail.com>
Tue, 17 Sep 2013 14:35:24 +0000 (23:35 +0900)
committerKureha Hisame <kureha@gmail.com>
Tue, 17 Sep 2013 14:35:24 +0000 (23:35 +0900)
- modified resize image library.

common.rb
define.rb
feedgenerator.rb
filemanager.rb
resize.rb [deleted file]

index 45c38a3..3220a32 100644 (file)
--- a/common.rb
+++ b/common.rb
@@ -62,7 +62,6 @@ class HtmlWriter
   end\r
 end\r
 \r
-\r
 # = Objectクラス\r
 #\r
 # 基本クラスのオーバーライドを行います\r
index 6d566bc..4a554c5 100644 (file)
--- a/define.rb
+++ b/define.rb
@@ -53,6 +53,13 @@ LOG_DIR = "./logs/"
 # 開発用ログを出力するか?\r
 LOG_RELEASE_MODE = false\r
 \r
+# ファイルマネージャ用設定\r
+# サムネイル画像の最大幅(縦・横共通)を指定\r
+THUMBS_SIZE = 150\r
+# 必要がある場合はrubygems, rmagickのLOADPATHを指定\r
+$LOAD_PATH.push("/home/lunardial/local/lib")\r
+$LOAD_PATH.push("/home/lunardial/local/lib/ruby/gem/gems/rmagick-2.13.1/lib")\r
+\r
 # バージョン情報を示す文字列です\r
 APPVERSION = "- FeedGenerator for Ruby version 4.0.0.0 -<br>Copyright(c) 2009 Kureha.H (<a href=\"http://lunardial.sakura.ne.jp/\" target=\"_blank\">http://lunardial.sakura.ne.jp/</a>) & Yui Naruse (<a href=\"http://airemix.com/\" target=\"_blank\">http://airemix.com/</a>)"\r
 # タイトル領域に表示される文字列です\r
index 9dc4724..57252eb 100644 (file)
@@ -599,22 +599,25 @@ class FileUploader
   end\r
 end\r
 \r
-# = Pluginクラス\r
+# = PluginManagerクラス\r
 #\r
 # プラグインの処理を行うクラスです\r
-class FeedGenPluginManager\r
-  def self.exec(mode, filepath)\r
+class PluginManager\r
+  def self.exec(mode, module_name, filepath)\r
     feed = Feed.readxml(XMLPATH + filepath)\r
     entries = Entry.readxml(XMLPATH + filepath)\r
     feed.freeze\r
     entries.freeze\r
     Dir.foreach(PLUGINDIR) do |fn|\r
-      next unless File.extname(fn) == '.rb'\r
-      require File.join(PLUGINDIR, fn)\r
-      plugin_name = "FeedGenPlugins::"\r
-      plugin_name << File.basename(fn).gsub(/\.rb\Z/, "")\r
-      plugin_ins = plugin_name.split(/::/).inject(Object) { |c,name| c.const_get(name) }\r
-      plugin_ins.new.exec(mode, feed, entries)\r
+      begin \r
+        next unless File.extname(fn) == '.rb'\r
+        require File.join(PLUGINDIR, fn)\r
+        plugin_name = "#{module_name}::"\r
+        plugin_name << File.basename(fn).gsub(/\.rb\Z/, "")\r
+        plugin_ins = plugin_name.split(/::/).inject(Object) { |c,name| c.const_get(name) }\r
+        plugin_ins.new.exec(mode, feed, entries)\r
+      rescue\r
+      end\r
     end\r
   end\r
 end\r
@@ -657,7 +660,7 @@ class Controller
             params["mode"] = "error"\r
           else\r
             # 成功時はプラグイン処理を実施する\r
-            FeedGenPluginManager.exec("newentry", File.basename(session["filepath"]))\r
+            PluginManager.exec("newentry", "FeedGenPlugins", File.basename(session["filepath"]))\r
             session["info"] = "記事の新規作成が成功しました。"\r
           end\r
           # 画面を戻った際の処理\r
@@ -694,7 +697,7 @@ class Controller
             params["mode"] = "error"\r
           else\r
             # 成功時はプラグイン処理を実施する\r
-            FeedGenPluginManager.exec("editentry", File.basename(session["filepath"]))\r
+            PluginManager.exec("editentry", "FeedGenPlugins", File.basename(session["filepath"]))\r
             session["info"] = "記事の編集が完了しました。"\r
             \r
             # 一覧を更新後の内容で更新する。\r
@@ -729,7 +732,7 @@ class Controller
             params["mode"] = "error"\r
           else\r
             # 成功時はプラグイン処理を実施する\r
-            FeedGenPluginManager.exec("delentry", File.basename(session["filepath"]))\r
+            PluginManager.exec("delentry", "FeedGenPlugins", File.basename(session["filepath"]))\r
             session["info"] = "記事の削除に成功しました。"\r
             \r
             # 内容を更新する\r
index 7005ef5..f224b9a 100644 (file)
@@ -275,6 +275,25 @@ class WebFiler
 \r
 end\r
 \r
+# = PluginManagerクラス\r
+#\r
+# プラグインの処理を行うクラスです\r
+class PluginManager\r
+  def self.exec(mode, module_name, filename, filepath)\r
+    Dir.foreach(PLUGINDIR) do |fn|\r
+      begin \r
+        next unless File.extname(fn) == '.rb'\r
+        require File.join(PLUGINDIR, fn)\r
+        plugin_name = "#{module_name}::"\r
+        plugin_name << File.basename(fn).gsub(/\.rb\Z/, "")\r
+        plugin_ins = plugin_name.split(/::/).inject(Object) { |c,name| c.const_get(name) }\r
+        plugin_ins.new.exec(mode, filename, filepath)\r
+      rescue\r
+      end\r
+    end\r
+  end\r
+end\r
+\r
 # = Controllerクラス\r
 #\r
 # コントローラ部分に相当する処理を受け持つクラスです\r
@@ -319,14 +338,15 @@ class Controller
             end\r
             \r
             filer.upload(cgi["updata"], upload_filename)\r
-            # 独自改造 開始\r
+            \r
+            # サムネイル作成開始\r
             if params["thumbs"] == "true" and File.extname(upload_filename) =~ /\.(jpg|JPG|png|PNG)\Z/\r
               begin\r
-                require('./resize.rb')\r
+                require('./plugins/ResizeManager.rb')\r
                 if filer.relpath_list.size == 0\r
-                  ResizeManager.create_thumbs(IMGPATH + upload_filename)\r
+                  ResizeManager::ResizeManager.create_thumbs(IMGPATH + upload_filename)\r
                 else\r
-                  ResizeManager.create_thumbs(IMGPATH + filer.relpath_list.join("/") + "/" + upload_filename)\r
+                  ResizeManager::ResizeManager.create_thumbs(IMGPATH + filer.relpath_list.join("/") + "/" + upload_filename)\r
                 end\r
               rescue LoadError\r
                 # With no action\r
@@ -337,18 +357,21 @@ class Controller
               end\r
             end\r
             # 独自改造 終了\r
+                        \r
           rescue FileExistedException\r
             session["error"] = "既に同名のファイルが存在します!"\r
           rescue WebSecurityException\r
             session["error"] = "ファイル名に使用できない文字列が含まれています!"\r
           end\r
+          \r
+          \r
         else\r
           session["error"] = "ファイルの容量が大きすぎます!"\r
         end\r
         \r
         # ファイル一覧を更新\r
-        Controller.update_session(session, filer);\r
-\r
+        Controller.update_session(session, filer)\r
+        \r
         session["info"] = "正常にファイル(#{upload_filename})のアップロードが完了しました。" if session["error"] == ""\r
         \r
         # 移動時\r
diff --git a/resize.rb b/resize.rb
deleted file mode 100644 (file)
index 932ea56..0000000
--- a/resize.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/local/bin/ruby 
-# -*- coding: utf-8 -*-
-
-THUMBS_SIZE = 150
-
-class ResizeManager
-  def self.create_thumbs(fname)
-    $LOAD_PATH.push("/home/lunardial/local/lib")
-    $LOAD_PATH.push("/home/lunardial/local/lib/ruby/gem/gems/rmagick-2.13.1/lib")
-    
-    require 'rubygems' 
-    require 'RMagick'
-    
-    img = Magick::Image.read(fname).first
-    
-    img.resize_to_fit!(THUMBS_SIZE, THUMBS_SIZE)
-    thumbs_name = fname.gsub(/#{File.extname(fname)}\Z/, "") + "_thumbs" + File.extname(fname)
-    img.write(thumbs_name)
-  end
-end