OSDN Git Service

- update css(for textarea)
[feedblog/feedgenerator.git] / common.rb
1 #!/usr/local/bin/ruby\r
2 # -*- coding: utf-8 -*-\r
3 #\r
4 #= 共通ライブラリ集\r
5 #\r
6 #Autohr::    Kureha Hisame (http://lunardial.sakura.ne.jp/)\r
7 #Version::   1.0.0.0\r
8 #Copyright:: Copyright 2013 Kureha Hisame (http://lunardial.sakura.ne.jp/)\r
9 #License::   GPLv3\r
10 \r
11 require "logger"\r
12 \r
13 # = WebLoggerクラス\r
14 #\r
15 # ロガーを取得する為のクラスです\r
16 class WebLogger\r
17   @@max_log_size = 10 * 1024 * 1024\r
18   \r
19   def self.get_logger(script_name = "", log_dir = "", release_flag = false)\r
20     if script_name.empty?\r
21       log_filename = "#{log_dir}/default.log"\r
22       log_filename_bk = "#{log_dir}/default.log.bk.log"\r
23     else\r
24       log_filename = "#{log_dir}/" + File.basename(script_name, ".*") + ".log"\r
25       log_filename_bk = "#{log_dir}/" + File.basename(script_name, ".*") + ".bk.log"\r
26     end\r
27     if File.exist?(log_filename)\r
28       status = File::stat(log_filename)\r
29       if status.size > @@max_log_size\r
30         File.rename(log_filename, log_filename_bk)\r
31       end\r
32     end\r
33 \r
34     logger = Object::Logger.new(log_filename)\r
35 \r
36     if release_flag == true\r
37       logger.level = Object::Logger::ERROR\r
38     else\r
39       logger.level = Object::Logger::DEBUG\r
40     end\r
41 \r
42     logger\r
43   end\r
44 end\r
45 \r
46 # = HtmlWriterクラス\r
47\r
48 # テンプレートファイル(*.erb)を読み込み、管理するクラスです\r
49 class HtmlWriter\r
50   # 初期化メソッドです\r
51   #\r
52   # _template_ :: テンプレートファイル(*.erb)のパス\r
53   # _binding_ :: binding変数\r
54   def initialize(template, binding)\r
55     @erb = ERB.new(myopen(template, "r:utf-8") {|f| f.read}, nil, "-")\r
56     @binding = binding\r
57   end\r
58 \r
59   # テンプレートファイルの文字列を返却するメソッドです\r
60   def to_code\r
61     @erb.result(@binding)\r
62   end\r
63 end\r
64 \r
65 \r
66 # = Objectクラス\r
67 #\r
68 # 基本クラスのオーバーライドを行います\r
69 class Object\r
70   # myopenメソッド\r
71   #\r
72   # ruby-1.9.x以降ではファイルを開いた際、エンコードの指定を行わないとエラーの原因になります。\r
73   # ただしruby-1.8.6以前はエンコードの指定に対応していないため、独自メソッドを定義してファイルの入出力を行います。\r
74   #\r
75   # _arg[0]_ :: 入出力を行うファイルのパス\r
76   # _arg[1]_ :: モードの指定。例 : w:utf-8(書き込みモード・UTF-8エンコードでファイルを開く)\r
77   def myopen(*arg)\r
78     mode = arg[1]\r
79     rdonly_p = true\r
80     case mode\r
81     when String\r
82       arg[1] = mode[/[^:]+/] if RUBY_VERSION < "1.8.7" && mode.include?(':')\r
83       rdonly_p = /\A[^:]*[wa+]/ !~ mode\r
84     when Numeric\r
85       rdonly_p = !(mode & (IO::WRONY | IO::RDWR))\r
86     end\r
87     open(*arg) do |f|\r
88       f.flock(rdonly_p ? File::LOCK_SH : File::LOCK_EX)\r
89       return yield(f)\r
90     end\r
91   end\r
92 end\r
93 \r
94 class NilClass\r
95   def blank?\r
96     nil?\r
97   end\r
98 end\r
99 \r
100 class Array\r
101   def blank?\r
102     empty?\r
103   end\r
104 end\r
105 \r
106 class String\r
107   def blank?\r
108     empty?\r
109   end\r
110 end\r
111 \r