Railsで可読性の高いステート・マシンを実現できるGem State_machine Feb 25th, 2013 Tweet Ruby/Rails内でステート・マシンを実現してくれるGem、『state_machine』の紹介です。model内に直感的なコードを書くことができ、かつメンテナンスもしっかり行われているので、オススメです!
translations Documentation RSpec is a great tool in the behavior-driven development (BDD) process of writing human readable specifications that direct and validate the development of your application. On the web there are many resources that give complete overview of _what_ you can do with RSpec. But there are fewer resources devoted to how to create a great RSpec test suite. Better Specs tries to
I'm using rails 4 & ruby 1.9.3 for my application and fancybox2-rails gem, but there's a general problem with asset pipeline. If I run rake task for precompile, then everything is fine except for images in vendor/assets/images and ../gems/ruby-1.9.3-p327/gems/fancybox2-rails-0.2.1/vendor/assets/images. Images from these two folders are not being precompiled and eventually I have a problem with dea
ActiveRecord Capybara Cucumber Devise EnvYAML Git HAML Heroku Hoptoad Jammit jQuery Less CSS MongoMapper MongoHQ Mongoid MooTools OmniAuth Pow Prototype RailsAdmin Redis RedisToGo RightJS RSpec SASS Sequel Settingslogic Slim Test::Unit Use the default ActiveRecord database store. Use the Capybara acceptance testing libraries with RSpec. Use Cucumber for integration testing with Capybara. Utilize D
railsでファイルダウンロードさせるためにsend_fileを使うときに日本語ファイル名でダウンロードさせるとき、私は以下のようにしていました。 filename = "今後の予定.xls".encode("cp932") send_file(f, :filename => filename) cp932でencodeしているのは、utf-8でおくるとIEが文字化けしていたので、そうしています。 普段は、chromeでも特に問題がありません。 しかし、たまに文字化けが出ていました。 上記のファイル名の場合は「予」の部分で文字化けがおきてしまいます。 これの原因は、たぶん以下のサイトで書いてあることが影響している気配です。 https://sites.google.com/site/fudist/Home/grep/damemoji で対策として以下のようにするようにしました。 filen
外部サービスと連携すると、連携するサービスの状況に依存していろいろなエラーが発生したりします。 例えば外部サービスが高負荷であるために、タイムアウトのエラーが発生したり、強制的にコネクションをリセットされるようなエラーなど様々です。 その状況が発生した際に、利用ユーザにエラー画面を表示したり、再操作を指示するメッセージを表示するのは、ユーザ視点で考えると微妙ですね。 ではどうすればよいでしょうか? そんなときは、retryableというライブラリ(gem)を利用するとよいです。 このretryableというgemは、名称から推測できるとおり、失敗(エラー)したときにリトライしてれるものです。 例えば、SonicGardenが提供しているサービス『youRoom』では、Facebookアカウントでログインという機能があります。 その認証に稀ではありますが以下のようなエラーが発生することがあり
個人的に、Rails界隈でよくチェックしているサイトをまとめておきます。 プラグイン The Ruby Toolbox プラグインの情報を探す時は、大概ココから入ります。プラグインに関するドキュメント、スクリーンキャスト、ブログエントリー等を、皆でプラグインに紐付けられるようになっているので便利です。また、そのプラグインがどのくらい人気があるのか視覚的に分かるようになっているので、最近急に人気が出ているプラグインとか発見出来たりします。単純にブラブラと徘徊していても楽しいサイトです。 技術情報/チュートリアル Ruby5 海外の有名な企業Envy Labsが情報を掲載しているサイトです。主に、RubyやRails界隈の最新情報、トピックス等を1週間置きくらいに更新しています。 Coding Edge @ITで取り上げられているカテゴリ。情報量は少なめです。 Ruby on Rails Tu
2012年05月10日11:00 Ruby Linux CentOS6.2 に Rails + Nginx + Unicorn な環境を作った 必要になって久しぶりに環境作りました。にしても、しばらく触ってなかったからかいろいろ忘れてて大変でした。今度のために簡単にまとめておきます :D ネットワーク まずはネットワーク周りの設定をします。 vi /etc/sysconfig/network-scripts/ifcfg-eth0 vi /etc/sysconfig/network # NETWORKING_IPV6=no vi /etc/resolv.conf sudo /etc/init.d/network restart ssh 次は ssh 周りの設定です。ポート番号変えたりとかパスワード認証不可にしたりとか公開鍵認証を許可したりとかすると良いでしょう。 vi /etc/ssh/ss
2012年04月19日 最近、新人のテストコードを見る機会があり、ユニットテストの書き方について考える機会があった。ユニットテストはテンプレートみたいなものがあるので、それさえ押さえれば、誰でも簡単に書くことができる。 ここでは、その方法について紹介したい。サンプルはRSpecで書くが、その他のユニットテストフレームワークでも、応用ができるとおもう。 はじめにごく単純化すると、テスト対象は状態を持ち、入力を与えると何らかの出力を行なうものである。入力が変われば出力は変化するし、状態が変化すると入力が同じでも出力が変わる(かもしれない)。 ユニットテストは、テスト対象の状態を操作し、与えた入力によって意図通りの出力を得られるかを確認する作業のことをいう。なので、ユニットテストを書くときには、オブジェクトの状態ごとにメソッド単位で入力と出力を確認するようにする。 RSpecの疑似コードで書くと
WheneverはCronを利用して繰り返し処理を行うためのライブラリ。 シェルコマンドやRailsのRunner、RakeタスクなどのジョブをCronで実行できる。 実際のところCrontabへの登録を補助してくれるだけなのだが、そのシンプルさがかえって分かりやすい。 バッチ処理の管理にうってつけ。 タイトルではRailsとなっているがRails以外でも利用できる。 以下はRails3での使い方メモ。 導入 Gemfileに以下の行を追加してbundle install gem 'whenever', :require => false schedule.rbの編集 config/schedule.rbにスケジュール設定を書いていく。 bundle exec wheneverize . を実行するとひな形を作ってくれるので、それを元に編集していくのが吉。 スケジュールは「every」に続
2011年07月26日13:29 Ruby Railsエンジニアならこれだけは知っておけっていう便利メソッド Object#presence と Object#try という便利なメソッドがあることをご存知ですか?この2つのメソッドはとっても便利なのでちょっと紹介してみます。 Object#presence メソッド これは以下のような定義となっています。 def presence self if present? end present? メソッドというのはみんな大好き blank? の反対のメソッド (!blank?) です。 つまり、nil, false, [](空配列), {}(空ハッシュ), ""(空文字列), " "(半角スペースだけの文字列)であれば false、それ以外であれば true になります(blank? って半角スペースだけの文字列を true と判定するの知って
WEB+DB PRESS vol.61の「Rails3テスト最前線」という記事がかなり良かったので、注釈を交えて紹介したいと思います。 何が良かったのか? 自分はRails2系でTest::Unitを実践していました。AutoTestとYAMLによるデータ投入でおおむね満足していましたが、次のポイントが気になっていました。 YAMLによるデータ投入は重複が多いのでコピペでデータを作成していた。 Test::Unitはログイン処理など共通の処理をくくり出すのが難しかった。 Viewのテストの方法が分からなかった。 しかしこの記事で気になる点がスパッと解消されました。私と同じような人はこの雑誌の記事が役に立つと思います。 ちなみに私はMacのSnow Leopard上でRuby1.9.2を使ってこの記事の内容を試しました。1.8.7を使う前提で書かれている箇所もあるので注意してください。(後で
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く