aboutsummaryrefslogtreecommitdiffstats
path: root/core/utils.rb
diff options
context:
space:
mode:
authortoshi <toshi@03aab468-d3d2-4883-8b12-f661bbf03fa8>2010-10-18 12:40:10 +0000
committertoshi <toshi@03aab468-d3d2-4883-8b12-f661bbf03fa8>2010-10-18 12:40:10 +0000
commit009f8f814668d90354447df65cd63389c985f359 (patch)
treec834be9bae6f0a83a114d724dcb83373bc7d63e0 /core/utils.rb
parent85021a105bdccdb2dd9e784add261de2909f716c (diff)
downloadmikutter-009f8f814668d90354447df65cd63389c985f359.tar.gz
fix sqlite unavailable if dont exists database file
fix favorited icon indisplay problem git-svn-id: svn://toshia.dip.jp/mikutter/trunk@149 03aab468-d3d2-4883-8b12-f661bbf03fa8
Diffstat (limited to 'core/utils.rb')
-rw-r--r--core/utils.rb35
1 files changed, 28 insertions, 7 deletions
diff --git a/core/utils.rb b/core/utils.rb
index 40552af9..3726b506 100644
--- a/core/utils.rb
+++ b/core/utils.rb
@@ -52,6 +52,15 @@ Dir::chdir(File::dirname(__FILE__))
miquire :lib, 'escape'
miquire :lib, 'lazy'
+# Config::CONFROOT内のファイル名を得る。
+# confroot(*path)
+# は
+# File::expand_path(File.join(Config::CONFROOT, *path))
+# と等価。
+def confroot(*path)
+ File::expand_path(File.join(Config::CONFROOT, *path))
+end
+
# 複数条件if
# 条件を二つ持ち、a&b,a&!b,!a&b,!a&!bの4パターンに分岐する
# procs配列は前から順番に、上記の条件の順番に対応している。
@@ -359,7 +368,10 @@ class Object
# freezeされていない同じ内容のオブジェクトを作って返す。
# メルト 溶けてしまいそう dupだなんて 絶対に 言えない
def melt
- dup end end
+ if frozen?
+ dup
+ else
+ self end end end
#
# integer
@@ -536,17 +548,26 @@ end
class Hash
# キーの名前を変換する。
- def convert_key(rule)
+ def convert_key(rule = nil)
+ if block_given?
+ convert_key_proc(&Proc.new)
+ else
+ convert_key_hash(rule) end end
+
+ def convert_key_proc(&rule)
+ result = {}
+ self.each_pair { |key, val|
+ result[rule.call(key)] = val }
+ result end
+
+ def convert_key_hash(rule)
result = {}
self.each_pair { |key, val|
if rule[key]
result[rule[key]] = val
else
- result[key.to_sym] = val
- end
- }
- result
- end
+ result[key.to_sym] = val end }
+ result end
# キーを全てto_symしたhashを新たにつくる
def symbolize