Ruby

Railsでモデル間での共通関数を作る

Railsでモデル間で似た処理を書こうという思って、はてさてどうしようかなと小一時間ほど悩んだ結果。まず、config/application.rbを編集して、config.autoload_pathsにパスを追加します。 config.autoload_paths += %W(#{config.root}/extras) config/appli…

RubyKaigi 2013は5月30日開催です

今年はないRuby会議ですが、来年は開催されるようです。RubyKaigi2013の告知サイトがオープンしています。まとまっているのは、はてなブックマークニュースのこの記事でしょう。記事を参考にすると、 500人規模で3日間開催 参加費はお高めの2万円から3万円 …

cancanキラーとなるか?the_role

Railsでの権限管理といえばcancanが有名です。ですが、cancanは定義を書くのが結構大変。管理画面も自分で実装する必要があります。そんな中、Ruby5でcancanキラー?な権限管理gemであるthe_roleが紹介されてました。単にgithubのページを見ただけですが、ロ…

Excelファイルを生成することができるaxlsx

以前、「RailsでExcelファイルを出力する」という記事を書いたのですが、Ruby5でRubyでExcelファイルを生成することができるaxlsxというgemが紹介されていました。これ、Excelの2007以降で使われている、xlsxファイルを生成するgem。先日記した記事ではXMLタ…

Deploying with JRuby

最近、JRubyでシステムを書いてみようかと思っているのですが、はて、Webサーバーってどうすりゃええんやろと気がついてしまいました。CRubyならApache + Passengerで決まりってところなのですが、JRubyってその手が使えるのかなぁ?と思っていたところ、The…

Ruby/Rails開発でよく使われているエディタはなんだ(2012年版集計中の巻)

毎度、定期的に上がるようなネタのような気がしますが、Ruby/Rails開発でよく使われるエディタの投票が行われています。What is your primary text editor for Ruby/Rails?私はVimを奨められるままに使っているのですが、あんまりVimらしさを実感出来ていな…

Ruby 1.8.7 p370が出ているようです。

日本語のサイトでは案内が書かれていませんが、英語サイトにてRuby 1.8.7 p370のリリースが案内されていました。今回の内容はバグフィックス版。1.8系はそろそろメンテナンス終了ということもあって、周りでも使っている人がだんだんと減ってきたのですが、…

第6回 日本JRubyユーザ会が開催されます

来る7月19日(木)、19時から第6回 日本JRubyユーザ会が開催されるという案内がTwitter上に流れていました。ATNDはこちら。枠は30名で、本記事執筆時にはまだ空きがあるようですので、滑り込むなら今のうち。メインどころとしては、やはりJRubyConf2012の参…

RailsでExcelファイルを出力する

一般向けWebサービスではなく、社内業務向けにWeb(イントラネット)業務アプリを作るとき、良く話題となることが「データをExcelで出力したい」ということです。ほんと、お前らExcelって言いたいだけちゃうんかと思いながら、CSVでお茶をにごすことが多いの…

Rubyで数値文字参照を文字列に変換する

先日、rubyXLというgemを試していたとき、日本語が日本のように表示されてしまいました。すわ、文字化け?と思いましたが、よく良く調べてみると数値文字参照という形のようです。ただ文字化けでないことは分かりましたが、これを人が読める文字列の形にする…

Ruby開発環境アドベントカレンダーが始まっています

Twitterでたまたま流れたツイートから知ったのですが、今月(7月)あたまから「Ruby開発環境アドベントカレンダー」が始まっています。このエントリを書いている時点ですでに3件の記事がアップされていますが、どれも調度よい分量で、すぐに使え、また勉強に…

みなとRuby会議01にスタッフとして参加してきた

先日行われたみなとRuby会議01にスタッフとして参加してきました。今更感がありますが、文章としてきちんとまとまって書けずにいたらずるずると時間だけが過ぎてしまって。で、今日公開というわけです。とは言っても、ちゃんとした文章となっているかという…

ビデオでの解説と実習でプログラミング関連技術を学べるcode schoolにRSpecが来た

ビデオでの解説と実習でプログラミング関連技術を学べるcode schoolというサイトがあります。一部無料なところもありますが、原則は月25ドルの有料サービス。やるにはかなりの気合が必要ですが、その分高品質。そのcode schoolにはRubyやRailsのコースがある…

Sublime Text 2.0がリリースされました

今年の頭ぐらいからジワジワと話題になっていたSublime Textというエディタがあります。 マルチプラットフォーム シンタックスハイライト 右上にソースの全体像が出ている 豊富な編集機能 日本語使える プラグインで機能拡張ができる 補完機能 などから話題…

RubyアソシエーションのサイトにRSpecの解説記事が載っています

ビジネス向けのRuby関連団体の一つにRubyアソシエーションという団体があります。Rubyアソシエーションは、その活動の一環として技術者情報を出しているのですが、先日RSpecの記事が公開されました。ざっと見た感じですが、分量も多く、表面だけをさらっと触…

ActiveRecord::Relationの便利メソッド Top10

些か紹介が遅れた気がしますが、 @suginoy さんが Mitch Crowe 氏の「The 10 Most Underused ActiveRecord::Relation Methods」という記事の翻訳版を公開されています。「コードが読めれば問題ないもん」って強がっていてもダメで、やっぱり本文に書かれてい…

Rails3対応のログ解析ツール request-log-analyzer

これまで手でRailsのログファイルを解析するツールを作っていたのですが、先日request-log-analyzerというツールを知りました。単なるコマンドラインツールなので、 gem install request-log-analyzer と打って、 request-log-analyzer log/production.log …

モデルにテーブルのカラム情報をコメントで追加してくれるannotator(カラムの追加と削除編)

前回の続きです。 カラムの追加 開発を続けていくとカラムの追加、削除は当たり前のように発生します。今回はカラムの追加と削除をやってみましょう。 rails g migration add_field1_to_line_item field1:string migrationファイルは次のようになります。 cl…

モデルにテーブルのカラム情報をコメントで追加してくれるannotator(基礎編)

Railsアプリを開発している時、テーブルのカラム情報を確認したい時があります。db/migrate以下のファイルを追うのは結構面倒くさいし、rails dbconsoleなんかでみるのもなんとなく面倒くさいです。そこで役立つのがannotatorというgem。早速試してみましょ…

RailsInstaller for Mac

Ruby5 #278で知ったのですが、Rails環境をまとめてインストールしてくれるRailsInstallerのMac版がリリースされているようです。数ギガのサイズがあるXCodeを落とさずとも、Rails環境が作れる(gccを同梱してくれる)れ、gitも一括でいれてくれるのは助かり…

知って得するxxのRubyのトリビアな記法

Railsアプリを書いていると、Rubyの黒魔術を忘れそうになります。そんなときに、ちょっと得するRubyのTipsについて書かれたブログを見つけましたので紹介します。 知って得する21のRubyのトリビアな記法 第2弾!知って得する12のRubyのトリビアな記法 とって…

API Document Browser Dash が素晴らしい

先日のYokohamarbで教えていただいたMacアプリ。RubyやRailsは勿論、CSSやJavaScriptなど、多くのプログラミング言語のAPIをまとめて読めるMac用アプリDashというのが素晴らしいです。上のリンクは開発元に対して張っていますが、アプリ自身はMac App Store…

第21回 Yokohama.rbに行ってきた

第21回 Yokohama.rb に行ってきました。 いつもは東神奈川地区センターってところでやるのですが、今回はタネマキさんで。タネマキさんは電源・無線LANつきでコスパもいいのでおすすめですよ。さて、今回のYokohama.rbでは @suginoy さんが当たったRailsの不…

Rails 3.2の新機能にEXPLAINってものがあって、それではまった話

先日、JRubyでRailsアプリを書いていて、ちょっと重いSQLを発行したら次のようなエラーメッセージが出てきました。 undefined method `explain' for (以下省略) へ?なにそれ?ってな感じでググる事30分。ようやく辿りつけました。v1.2.2 does not support …

Ruby World Conference 2012にDave Thomas氏が来る

昨年行ったRuby World Conference。今年も11月に開催予定のようです。で、そのWebページを見ていたら、シレッと基調講演者の中に「Dave Thomas」氏の名前が。これは行かねば。島根は遠いですよねぇ・・・。また、ビジネス向きの話が中心なので、コミュニティ…

Rubyのリファレンスマニュアルをローカルで見る

先日行われたみなとRuby会議では、会場のネットワークが不安定なことが想定されていたので、事前に環境の準備をお願いしたのですが、リファレンスってローカルで見れるようにするためにはどうすればいいんだろう・・・と思っていたところ、id:satococoa さん…

railsコマンドをrakeコマンドにするrake-rails

Ruby5 Episode #275から。railsって、最初に「rails」ってつくもの(rails consoleとか)と「rake」ってつくもの(rake db:migrateとか)の二通りがあります。railsコマンドが処理するものと、rakeタスクの違いと頭では分かっているのですが、たまに打ち間違…

db:fixtures:loadをspec/fixtures以下のファイルを見るようにする

RSpecを適用したとき、fixturesファイルもspec/fixturesディレクトリに置いてました。だって、RSpecが生成するspec_helper.rbにもそのディレクトリに置くように書いてくれるじゃないですか。 config.fixture_path = "#{::Rails.root}/spec/fixtures" ・・・…

rails newした直後のbundleを辞める

いつごろからか、rails newしたときにbundle installが走るようになりました。これ、ちょっとしたお節介というかなんというか。bundle installはちょっとした時間がかかるため、イラってくるときがあります。何とかならないかなぁと思っていたら、rails new …

auditedを使ってモデルの変更を監視しよう(関連編)

インストール編、適用編に続く関連編です。過去2回はそれぞれ以下を参照してください。 インストール編 関連編 UserモデルとCompanyモデルには次のような関連を定義しているとします。まずはapp/models/user.rb。 class User < ActiveRecord::Base audited b…