2013-02-01から1ヶ月間の記事一覧

undefined class/module とか言われてアプリの起動ができなくなってしまう

このアプリの環境はRails-2.3.17、memcached、jpmobileなのですが、 あるコントローラを踏むとこんな状態になってしまって困っていました。 ArgumentError (undefined class/module Mail): Rendered rescues/_trace (34.9ms) Rendered rescues/_request_and_…

=== の挙動

>> String==="" => true >> ""===String => false まじで知らなかった。 自分の中で、どっちも同じくtrueを返すことを期待してた。 case @option when String xxx when Hash xxx end こんな感じのコードって、String === @option って 評価されていたんです…

最速でSakuraのVPSにインストールしたubuntu-12.04にRails-3.2+PostgreSQL環境を構築する方法

以前の構築メモから時間が経ったので、 バージョンを上げて、改めてメモをしてみます。 さくらVPSにUbuntu12.04はインストール済みだという前提です。 目標は、 ubuntu-12.04LTS ruby-1.9.3 rails-3.2.12 passenger postgresql-8.4 の導入です。 postfixをイ…

pushと同時に、担当者を自分にして、ステータスをNewからAssignedに自動的に変更されるようにしたい

redmineにはリポジトリの連動機能があって、refs #1とか書くと、 自動的にチケット番号と紐付けてくれるのですが、これが実におしい。 担当者がまだ振られていない状態、 ステータスもNewの状態を gitのpushで自動的に変更したいと思いました。 というわけで…

文字列に紛れたメールアドレスを取得

irb(main):001:0> "xibbar <xibbar@ruby-lang.org>".scan(/[a-zA-Z0-9_\.-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9]+/) => ["xibbar@ruby-lang.org"] 必要になった時の思い出すのが面倒なのでメモ。</xibbar@ruby-lang.org>

パイプファイルで他のプログラムとデータのやりとりをする

組込の仕事をしてまして、 CのプログラムとRubyのプログラムでやりとりをする 必要が出て来ました。 実験してみましょう mkfifo /tmp/fifotestで/tmp/fifotestというパイプを作っておきます。 Rubyにはこれを扱うライブラリは標準ではないようです。 ruby -e…

UNIXのPAM認証をする

RubyプログラムからUNIXのログインIDとパスワードで認証したい。 昔話 昔のUNIXは/etc/passwdファイルにログインIDも パスワードも入っているものだったので、 # UNIX のログイン認証 require 'etc' def valid_login?(user, password) ent = Etc.getpwnam(us…

第30回Rails勉強会@東北のお知らせ

日時 2013年2月16日 13:00〜16:00 場所 株式会社ラビックス 参加したい方は、このfacebookページの中にある イベントで参加表明をお願いします。 https://www.facebook.com/events/427122837357108/ ネタがなかったらRailsCastsでもやります。 Ruby2.0とかや…

1.8.7でUTF-8文字列をUNICODEのコードポイント文字列へ変換する

最初のやりかたがあまりにもひどいので、String#to_unicodeを作ってみた。 class String def to_unicode self.split(//u).map{|s|s.size>1 ? "\\u%04x"%s.unpack("U*")[0] : s}.join end end > "aaあ".to_unicode => "aa\\u3042" うむ。よさそうだ。

1.8.7でUNICODEのコードポイント文字列をUTF-8文字列にデコードする

やっぱり欲しくなったので、UNICODEのコードポイントの 変換メソットをStringに追加するようにしてみました。 class String def unicode2utf8 self.gsub(/\\u([0-9a-fA-F]{4})/){[$1.hex].pack("U")} end end これを定義すると、 puts 'Element.update("temp…

rake で呼び出したrspecとcucumberのファイルを指定する

RSpec brake spec SPEC=./spec/controllers/mails_controller_spec.rb Cucumber brake cucumber FEATURE=./feature/controllers/mails_controller_spec.rb 普通、 alias brake="bundle exec rake"ぐらいはしてるよね。

Rails-2.3でUNICODEコードポイントに変換

かなり酷い技だけど、面倒くさいのでこうした。 ["aaあ"].to_json.gsub(/^\[\"(.*)\"\]$/){$1} => "aa\\u3042" ひどいわざ。