2011-01-01から1年間の記事一覧
導入した環境 $ cat /etc/redhat-release CentOS release 5.5 (Final) $ ruby -v ruby 1.8.6 (2010-02-05 patchlevel 399) [i686-linux] $ gem -v 1.3.7 新しめの gcc が必要 gcc 4.1 ではダメ $ gcc --version gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-50)…
とりあえず以下ダラダラのアウトプットはこちら gist に置いといた https://gist.github.com/1437782 作りたいもの 僕は神になる。ヒト(クラス)を作ってみるぞ 人とは、名前と年齢を持っている存在である 人とは、名前と年齢を伝える為、ちゃんとご挨拶がで…
やりたいこと タイトルの通り reliable-msg を Ruby 1.9 系でも動くようにしたい git でソースを作者様リポジトリから取ってくる [hamajyotan@host ~]$ git clone https://github.com/assaf/reliable-msg.git Cloning into reliable-msg... remote: Counting…
ReliableMsgAgent で「ap4r と同様のメッセージディスパッチ」をする ap4r の I/F を用いてメッセージを put する put したメッセージは、 ap4r にディスパッチさせずに reliable-msg-agent に自律的に取得させる。要するに pull 型アプローチをとる ap4r の…
ちなみに 下記は、Ruby 1.9系では構文エラーになる。 知ってちょっとびっくりした # # test.rb # class RetryTest def initialize @x = 0 puts "initialize!!" end def test x @x += 1 yield @x retry if x > @x end end puts RUBY_VERSION t = RetryTest.ne…
ReliableMsgAgent まだまだ改善の余地があるが書いてみました。 https://github.com/hamajyotan/reliable-msg-agent こんな実装 ReliableMsg に置いてあるメッセージを自律的に取得する メッセージに応じて何か処理をする 「何か処理」は自分で定義できる Re…
reliable-msg 俗に言うメッセージキュー。キューを保持しており、 Push, Pop が可能。 Push されたメッセージはファイルあるいはデータベースに永続化され、 キューに(意図せぬ)再起動などがあったとしてもメッセージがロストしない。 reliable-msg のインス…
Hash#map は Enumerable モジュールから 以下引用 各要素に対してブロックを評価した結果を全て含む配列を返します。 試す h = {:one => 1, :two => 2, :three => 3} => {:one=>1, :two=>2, :three=>3} h.map { |k,v| [k, v*2] } => [[:one, 2], [:two, 4], …
Ruby の後処理省力化のイディオム 「openしたら必ずclose」するために・・・ openにブロックを渡す ブロックでは、対象リソースを引数に与える openは、ブロック評価後にensureでcloseをする 上記実装 irb(main):001:0> class Foo irb(main):002:1> def open…
こんな感じで データベースは mysql ruby は rvm で導入する web サーバは apache + unicorn http://example.jp でバーチャルホスト redmine 専用ユーザで実行 以下の手順の前提条件 redmine の実行ユーザ名は redmine MySQL について root ユーザのパスワー…