2012年6月15日金曜日

Rails3 rails g cucumber:feature hogeするとCould not find generator cucumber:feature.

中の人です。

cucumber 1.2にて
rails g cucumber:feature hogeを実行するとエラー。

 Could not find generator cucumber:feature.


検索しても分からない。ドキュメントを読んでみる。

History.md
## [v1.1.1](https://github.com/cucumber/cucumber-rails/compare/v1.1.0...v1.1.1)
### Removed features
The `cucumber:feature` generator has been removed. 

無いのかよ!

https://github.com/cucumber/cucumber-rails-training-wheels/blob/master/README.md
"cucumber-rails-training-wheels"
rails generate cucumber_rails_training_wheels:feature post title:string body:text number:integer published:boolean
これを使うらしいので書き残しておこう。

rails generate cucumber_rails_training_wheels:install ja
rails g cucumber_rails_training_wheels:feature hoge

Ruby StringにFixnumを加算(+)してもエラーにならない。毎回to_sをしなくてもいい

中の人です。

普通、RubyのStringとFixnumを加算(文字列結合)するとエラーになるので
"String"+Fixnum.to_s とする。

数値部分が多くなるとかなり、長く、醜い見にくい状態になります。

ネタなので実用性などは置いておいて・・・

#Stringクラスの演算子を置き換える。
class String
  def +(other)
    if other.class != "String" #:String の方がいいかな
      val = other.to_s
    else
     val = other
    end
    tmp = self.clone
    tmp << val
  end
end



これでto_sを書き忘れても安心!

追記

"String#{Fixnum}String"でいい気がする。

2012年6月9日土曜日

RubyMineがキーボードの入力を受け付けなくなる問題について(ibus、mozc、scim)

中の人です。

CentOs6、Ruby1.9、Rails3での開発でまともな開発環境を構築できなかったので
RubyMine2.0体験版を試した(10分?)後、購入しました。凄くいいじゃないか。

更に使っていて気づいたんだが、キーボードの入力をまったく受け付けなくなる。
なんぞ?公式で確認したらRubyMine+ibusの環境ではフリーズすることが判明。

じゃあ、InputMethod変えればいいんじゃないかと色々やってみた。
最終的にSCIM+Anthyで落ち着いた。




◆試行錯誤
テスト1.ibus+mozc
固まる。ibusそのものとの相性か。

テスト2.SCIM+Anthy
今のところ正常

2012/6/11 固まった。

原因
http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html#knownissues
そもそもJAVAが!ってことらしいのでJAVA8か、パッチが出るまで駄目みたいだ。
ibusの方がkillall ibus、ibus-daemon -dで起動できて楽かも。
SCIMだとRubyMineを抱え込んだまま死ぬ。
でもこのままでいいや・・・。


2012/6/12 固まった。キー押しっぱなしとか以外にも、画面切り替えでもなるような。
ps -ax|grep scimで出てきたのをkill -9 process_no で殺すけど、RubyMineは死ななかった。
殺す順番によるのか?

◆SCIM導入手順(概要)
1.CentOS5のDVDかCD(iso)を入手。
2.ibus関連全てアンインストール
削除する一覧表示

rpm -qa|grep ibus
rpm -qa|grep scim
rpm -qa|grep anthy
ガリガリ削除する
rpm -e -nodeps xxxxxxxxxxxxx
→libusbとかも引っかかるから気をつける。
3.SCIM関連入れる
rpm -ivh で以下のRPMを入れる。
anthy-7900-4.el5.i386.rpm
kasumi-2.0.1-1.1.fc6.i386.rpm
scim-1.4.4-41.el5.i386.rpm
scim-anthy-1.2.0-6.el5.i386.rpm
scim-bridge-0.4.5-8.el5.i386.rpm
scim-bridge-gtk-0.4.5-8.el5.i386.rpm
scim-libs-1.4.4-41.el5.i386.rpm
scim-qtimm-0.9.4-5.i386.rpm
4.~/.xinputrcのリンクをscim.confに切り替える。
ln -s /etc/X11/xinit/xinput.d/scim.conf ~/.xinputrc
5.インプットメソッドを有効にしてSCIMを選択。
6.リログイン
7.SCIM起動
 scim -d

まぁ、動いたからよしとしよう。