読者です 読者をやめる 読者になる 読者になる

「クラウドxスマフォ時代のRuby on Rails入門」セミナーで使ったコードをGitHubに置きました

昨日、行われた クラウドxスマフォ時代のRuby on Rails入門 セミナーで使ったコードをGitHubに置きました。 簡単な Ruby on Rails で作ったサーバーと連携できる iOSアプリです。 コード、セミナー資料 GitHub Rails側 GitHub iOSアプリ セミナー発表資料 …

Ruby on Railsのログ(production.log)にUserAgentを追加する

下のように、Ruby on Railsのログ (例えば production.log)にUserAgentを追加してみました (実際にはログは1行で出力されています)。 I, [2014-07-06T08:40:53.574498 #1317] INFO -- : Started GET "/products/767" for 192.168.0.1 at 2014-07-06 08:40:53…

NSRailsを使ってみた

7月1122日に行う 「クラウドxスマフォ時代のRuby on Rails入門」 セミナーで使うデモアプリを作るために、NSRails を使ってみました。 概要 NSRails の使い方は https://github.com/dingbat/nsrails に書かれているように、iOS側に Rails と同じモデルを用…

Feature specs で、たくさんの手順があるWebアプリの受け入れテストを書いてみた

ログインして、販売伝票ボタンを押し、商品追加ボタンを押し、表示された商品ページでカテゴリーを選択し、商品の一覧を表示し選択ボタンを押し・・・ ・・・ ・・・ 確定ボタンを押す。のようなたくさんの手順で一つの作業が完結するようなWebアプリの受け…

Mavericks(Mac OS X 10.9)にRuby1.8.7をインストールする方法

今さら最新のMac OS に Ruby 1.8.7 をインストールする人は少ないかもしれませんが、もろもろの理由でRuby 1.8.7が必要なのでインストールしてみました。特に新しい情報はありませんが、brew, rbenv を使ってインストールしました。 % brew install apple-gc…

Ruby on Rails4.0.0正式版でJSON関連コードが無いキレイなscaffoldを生成する方法

Ruby on Rails4.0.0が正式リリースされましたが、4.0.0RC1 までと JSON関連のコードが無いscaffoldを生成する方法が変わりました ^^;4.0.0RC1 までは、以下のオプションで JSON関連のコードが無い、きれいな controller と views の *.json.jbuilder が生成…

Rails4.0で rake db:fixtures:load FIXTURES_PATH=spec/fixtures が deprecated と表示された際の対処法

Rails4.0RC2もリリースされましたね! Rails4.0 で rake db:fixtures:load FIXTURES_PATH=spec/fixtures を実行すると以下のようなワーニングが表示されます。fixtuesの読み込みは出来てますが、気持ち悪いですよね。 % rake db:fixtures:load FIXTURES_PATH…

RubyKaigi 2013の感想など

生まれかわった RubyKaigi RubyKaigi 2013 に参加しました。今回も私の会社 EY-Office は スポンサー (一番小さいのですが)になりました。 現在のEY-Officeの売り上げのほとんどが Ruby, Ruby on Railsの教育なので当然ですよね ^^) RubyKaigi全体の感想など…

今すぐ、Windows7で Ruby 2.0.0 + Rails 4.0RC1 を試したい人向けのメモ

以前書いた 今すぐ、Windows7で Ruby 2.0.0 + Rails 4.0beta1 を試したい人向けのメモ より、だいぶ楽になったので書きました。 警告 一応EY-Office教育テキスト(Rails, RSpec)のコードが動くところを確認しましたが、Rails4.0RC1の動作を保証するものではあ…

今すぐ、Windows7で Ruby 2.0.0 + Rails 4.0beta1 を試したい人向けのメモ

なんとか、Windows7 で Ruby 2.0.0 + Rails 4.0beta1 を動かせたので、そのときのメモです。 警告 一応、scaffold で作ったアプリが動くところを確認しましたが、Rails4.0beta1の動作を保証するものではありません もしMacやLinux環境が使えるなら、そちらを…

Ruby on Rails中級者コースを始めました。

私の会社EY-Officeでは、Ruby on Rails中級者コース を始めました → http://www.ey-office.com/blog_archive/2012/11/13/in-new-ruby-on-rails-education/このコースは、たんにRuby on Railsの知識を深めるのでは無く、Ruby on Railsを使って実際のアプリ・…

Ruby on Rails 3 の Ajax いろいろ

今さら感はありますが、Rails3 の Ajax 実装の方法を紹介します。 Rails3.1 から jQuery がデフォルトになり、AjaxもRails2の頃とは違うスタイルなりました。また、幾つかのパターンが選べるようになりました。ここでは上の画像のように、 rails g scaffold …

最近作った Jekyll (Liquid) のプラグイン

最近作った、Jekyll (Liquidテンプレート) のプラグインの解説を書きます。Jekyllの良いところは、Rubyプログラマーなら簡単に独自タグ等のプラグインが書けるところです。ただし、情報が少ないので参考になれば嬉しいです。 1. h1タグに付けた番号を引き継…

Redmineをバージョン 2.0 に上げてみた

Redmine 2.0.0 がリリースされてから時間が経ってしまいましたが、今まで使っていた 1.0.2 を 最新の 2.0.3 にアップデートしてみました。 インストール アップデートの手順は、Redmine 2.0.3 をインストールし、1.0.2 から DB と添付ファイルをコピーするこ…

Jekyll は軽快なブログソフトなので乗り換えてみた

今まで EY-Officeホームページ・ブログ は Radiant を使って作成していたが、Jekyll に変更しました。Radiantは高機能なのですが、Webアプリのため原稿を書き確認するというサイクルが遅いとか、文章を入力するtextareaは貧弱などの問題がありました。 また…

MacでRuby on Railsを始めるには RailsInstaller !! Ruby,Rails,Git... が1クリックでインストール完了

Mac OS X には最初から RubyやRuby on Railsが入っていますがバージョンが古く現実的ではありません。最新の Ruby on Railsを使うには、 Xcode入れて、 rvm 入れて、 Ruby 入れて、Railsを入れて、MySQLとかをインストールするために Homebrew いれて 。。。…

Active Merchant で PayPal Sandbox を使うには

Ruby on Railsで作ったWebサービスからPayPalや海外の決済サービスを使う場合、そのサービス固有のAPIを使わなくても Active Merchant を使うと、簡単に信頼性の高い決済を組み込めます。Active Merchant の使い方は 以下の3つのRailsCastを見るのが一番良い…

Rails2.3アプリをRails3.2にアップグレードする、その3

少し間が開きましたが、今回はメール、Cucumber、Javascriptまわりです メール送信 ActionMailer メールは Rails3で ActionMailerで仕様が以下のように少し変わりました。またActionMailerを継承したクラスは app/mailers に置くようになりました。仕様の変…

バラバラのバージョンのRuby on Railsを1つのサーバーで動かす

現在、EY-Officeの社内利用サーバーではではいろいろなバージョンのRuby on Rails を2台で管理しています。ただし全てがほぼ私ししか使っていないので、さくらVPSのキャンペーン につられて1つのサーバーにまとめてみました。 移行前 さくら VPS 512Mをつか…

Rails2.3アプリをRails3.2にアップグレードする、その2

今回は、RSpec と 性能測定結果です。その1はこちら RSpec 今回のプロジェクトでは、 全model、全lib (少しですが)、view のごく一部にたいしての RSpecが書かれています。 Rspecのバージョンは 1.3.2 から 2.8.0 へのアップグレードでした。 lib RSpec自身…

Rails2.3アプリをRails3.2にアップグレードする、その1

以前Ruby on Rails 2.3 (Ruby1.8.7) で作ったアプリを、Rails3.2 (Ruby 1.9.3)にアップグレードしようと決意しました。ただし、それほど性能の良いサーバーで稼働しているわけではないので、3.2にした時の性能(リソースの使用量)等も気になりますので早めに…

Ruby on Rails 3.X を教えるのに困るところ

EY-OfficeではRuby on Railsの教育を行っています。Ruby on Rails はアグレッシブにバージョンアップしていきますが、教育を行う際には毎回、最新のバージョンで教育させて頂いています。 Rails3.0では大幅な内部構造の変更、3.1ではアセットパイプラインな…

Rails勉強会@東京第69回で 「今さら聞けないAWS on Rails」という話をしてきた

最近 Amazon Web Services (AWS) を使ってサービスを構築ていいますが、その際に調べたAWSの概要とRuby on Railsを動か際の注意点(ほとんど無いですが)やpaperclip + s3 でハマった事などを、先日行われた Rails勉強会@東京第69回 で話しました。 今さら聞け…

iPhoneで撮った画像をアップロード Paperclipで正しい向きのサムネール画像を作る方法

Ruby on Rails で画像のアップロードを行うのに便利なライブラリー Paperclip は サムネール画像も自動的に作ってくれる優れものです。 ところが、iPhoneを縦向きにして撮影した画像のサムネールが横向きになってしまします!実は iPhoneで取った画像は全て…

現在お手伝いしているサービス Real Coach (リアルコーチ) が日経新聞に紹介されました

現在お手伝いしている Ruby on Rails 3.1 + iPhone + iPad を組み合わせたサービス Real Coach が日経新聞に紹介されました →記事iPhoneで撮影した動画を専門のコーチがiPadで診断するというとても興味深いサービスです! RealCoachホームページ にある動画…

jQueryMobileを使って 簡単にRuby on RailsサイトをクールなiPhone対応サイトにしてみた

jQuery Mobile | jQuery Mobile を使って Ruby on Rails で作ったWebサイトを iPhoneなどのスマフォに対応したサイトに変更してみました。以下の画像は Ruby on Railsの Scaffold で作ったサイトをjQueryMobile対応した後の画面です。クールなスマフォサイト…

Rails3.1.0 + Capistrano 2.8.0 でエラーが発生するけどデプロイ出来る

Rails3.1.0を試していて現時点で最新の Capistrano 2.8.0 と組み合わせて使うとデプロイ中に以下のログのようにエラー(画像)が発生します。ログ・テキスト * executing "find /home/rails_apps/todo31/releases/20110912141706/public/images /home/rails_ap…

Mac OS X Lion でRuby on Railsの開発環境を構築するには

今日現在で、 Mac OS X Lion でRuby on Railsの開発環境を作るには とりあえず、Ruby on Rails を試してみたい方は Lionには 最新に近い Ruby 1.8.7(P249) がインストールされています。 % sudo gem install rails sqlite3でRuby on Rails, SQLite3をインス…

南東京iPhone勉強会でEvernote APIの話をしました

先週末に行われた 南東京iPhone開発者勉強会 9回目 でEvernoteAPIの入門的な話をしました。 EvernoteAPI入門 View more presentations from yuumi3 内容は、以前にこのブログに書いた内容をまとめた感じのもです。Evernoteデータの表示はそれほど難しいもの…

やっぱり RVM は便利だ!

Ruby on Rails3.1rc4がリリースされ、Ruby on Rails3.1のリリースも近づいてきたもようです。私の開発したRuby on Railsアプリも 2.3.8, 2.3.10, 3.0.5 などのバージョンがあり開発環境のMacの上では、ここに書いたような方法でなんとか共存しています。 し…

Ruby on Railsアプリ以外でも Selenium RC を使えば RSpec でテストが書ける!

RSpec のテストを記述するDSLとしては素晴らしさは、 Selenium RC と組み合わせる事で Ruby on Railsアプリ以外でも使えます。Selenium は Javascriptを使いWebアプリのテストを行うツールとして有名ですが、Selenium RC を使うと RSpecで書いたテストを Web…

Request SpecでJavascriptのあるページをテストする方法、 Capybara + Selenium, Capybara + Akephalos など

先日リリースした 萌えトーク ではEnd-to-Endテストには Request Spec + Capybara を使っていますが、Javascriptの部分は適当なヘルパーメソッドを使いJavascriptを動作させずにテストしましたが、Capybara のドライバーを selenium や Akephalos (HTMLUnit)…

Capistrano で簡単に複数サイトへのデプロイを行えるようにする

Capistrano で複数サイトへのデプロイを1つの設定ファイルで行える事を最近知ったので書いておきます。 Webシステムでは本番環境以外に最終確認の為のStaging環境を持つことが多いと思います、Staging環境は本番環境とは別のサーバーだったり、同じサーバー…

Ruby on Rails 2.x と 3.x 両方で rspec-rails が競合する問題の解決方法

現在、 Ruby on Rails 3.x と 2.x 両方のプロジェクトを1台のマシンで開発・メンテナンスしていいる開発者もいると思いますが、その際に RSpec 正確には rspec-rails や email-spec のバージョンが競合を起こす事があります。 解決方法は幾つかあるようです…

Request Spec, Steakで使う Capybara DSL の情報、サンプル

先日リリースした 萌えトーク ではEnd-to-Endテストには Request Spec を使っていますが、テスト(RSpec)を書くには Capybara DSL (API) の知識が必要になります。 萌えトーク の Request Spec を書く際に参照した情報、サンプルをまとめておきます。 Capybar…

声優さんとスカイプで会話できる【萌えトーク】オープンしました !

ここ2ヶ月で開発した、萌えトーク がオープンしました !!萌えトーク は、声優さん(現在はAGC38のメンバー)とスカイプのチャットでお話(レッスン)が出来るサービスの 予約を行うサイトです。 今なら、1トーク(25分) が無料ですので、アニメ好き・声優好きの方…

メールを含むテストもEmail Spec で楽々

Webシステムではメールをユーザー送り、メール内のURLクリックで処理を行うようなケースも間々あります。そんなプログラムの受け入れテスト、End-to-Endテストを行うには Request Specs や Steak に Email Spec で簡単に書けます。Email Spec は Rails の Ac…

Steak を Request Specs + Capybara に変更してみた

WEB+DB PRESS Vol.61の 「Rails 3テスト最前線」を読み Steak を使わなくても RSpec 2.0 の新機能 Request Specs と Capybara を組み合わせる事で Steak 同様にテストが書ける事が判ったので試してみた。 Steakに付いては、ここWEB+DB PRESS Vol.61作者: 西…

話題のテストツール Steak を勉強してみた

以前 Ruby on Railsの達人 @a_matsuda に 薦められた テストツール Steak を現在開発中のプロジェクトで使ってみようと思い、勉強してみました。 Steakとは Steak は Cucumber 同様に Ruby on RailsなどのWebアプリの受け入れテストや総合テストのツールです…

Rails 3 で RDBに書かれる時間を日本時間にするには

現在 Ruby on Rails 3.0 であるサービスを作っていますが、 Rails 2.X と違い RDB に書かれる時間が UTC (協定世界時) でかかれます。 国際対応する予定のアプリならこれで良いのですが、日本向けのサービスの場合はメンテナンス性を考えると RDB には日本時…

Radiant-CMS の独自拡張機能を作る

EY-Officeのホームページ作成を Ruby on Rails製CMS Radiant を使う事にしました で予告した、Radiantから静的ページの作成し、公開サーバーへの転送する拡張機能に付いて書きます。この拡張機能は上の画像のように Radiant のメニューに Deploy というタブ…

EY-Officeのホームページ作成を Ruby on Rails製CMS Radiant を使う事にしました

今まで、EY-OfficeのホームページはHTMLを直接書いていまいたが、コンテンツ強化のためにCMSを使おうと思い立ち調査したところ Radiant が良さそうだったので導入してみました。 Radiantに付いて 良い点 Ruby on Rails で出来ている !! GitHub を見ると開発…

本番環境の確認用に rake db:fixtures:delete を作った

みなさんは rake db:fixtures:load を使ってますか? test/fixturesにあるテストデータを開発環境DB(正確には現在の環境のDB)に読み込むrake taskです。この操作の取り消す rake db:fixtures:delete を作りました。 私は、テストデータを次の目的で使っていま…

multi_db を使ったアプリのテスト(RSpec)を書く方法

開発中のシステムでは multi_db を使ってMaster/Slave型のRDB負荷分散を行っていますが、こういうアプリでRSpecを書くのは一筋縄ではいきません。Master/Slave型のRDB負荷分散を行うシステムではRDBへのinsert/updateはMaster-DBにのみ行い、selectはSlave-D…

Ruby on RailsでMySQLに画像を格納する

訳あって、Ruby on RailsでMySQLに画像を格納し使う実験をした。 migrationでの指定 画像を格納するカラムは migration では binary を指定します。ただし、そのままでは 64Kbyteまでしか格納出来ない blob型になってしまいます。これを mediumblob型にする…

Rails 3.0 で Session用Cookieの httponly属性を外す方法

Cookieのhttponly属性を外す方法 - From a Far East Islandを Rails 3.0 で試したところエラーになってしまったので、調べたところconfig/initializers/session_store.rb ファイルにある RailsBooks::Application.config.session_store :cookie_store, :key …

Passenger 3.0 にアップグレードした

EY-Officeの開発・教育用に使っているサーバーの Passenger (Ruby on Rails実行環境)を 最新の3.0にし、性能も測ってみました。 インストール インストール手順は従来通り sudo gem install passenger sudo passenger-install-apache2-moduleですが、passeng…

RSpecでsend_fileの送信するファイルの内容をテストする方法(修正版)

コントロラーのRSpecを書いていて send_file の response が上手くテスト出来なかったので調べてみました。ただし調べたのは Rails 2.3.8 , Rspec Rails 1.3.3 です。@irohirokiさんから ActionController::TestProcess#binary_content を使えば良いですとTw…

個人的なRubykaigiのKPT

筑波で行われた日本Ruby会議2010に参加して来ました。参加した私自身のKPTを書いておこうと思います。 Keep 企業スポンサーになった! ここ! 、 あまり儲かってないEY-Officeにとって10万円はとても大きな金額でかなり迷いました。しかし、結果としてスポン…

Cucumber を0.4.3から0.8.3 にバージョンアップしてみました

プロダクトで使っているCucumber ですが、バージョンアップしていませんでしたので未だ 0.4.3 でした。昨日少し時間が出来たので 0.8.3 にバージョンアップしてみました。 バージョンアップ方法 Rails関連の追加ソフトをバージョンアップする方法ですが以下…