タグ

ブックマーク / blog.willnet.in (130)

  • pry-rails が追加してくれるコマンド3つ - おもしろwebサービス開発日記

    pry-rails は、登場した頃は単純にrails consoleしたときに pry が使えるだけの gem だったはずなのですが、今日 README をみてみたら独自のコマンドが定義されていました。 show-routes rake routesと同じ結果が返ってきます。rails のロードが終わってるので rake routes とするよりも結果が返ってくるのが早いです。 [1] pry(main)> show-routes root / main#index help GET /help(.:format) main#help privacy GET /privacy(.:format) main#privacy terms GET /terms(.:format) main#terms posts GET /posts(.:format) posts#index ... show

    pry-rails が追加してくれるコマンド3つ - おもしろwebサービス開発日記
    willnet
    willnet 2012/12/12
    ブログ書いた
  • プレゼンテーションZen を読んだ - おもしろwebサービス開発日記

    来年1月にある東京Ruby会議10 で発表できることになったので、どうせならいいプレゼンをしたいなと思って読みました。 プレゼンテーションZen 第2版posted with amazlet at 12.12.09ガー・レイノルズ Garr Reynolds ピアソン桐原 売り上げランキング: 2763 Amazon.co.jp で詳細を見る 感想 僕がこのの中で一番参考になったのは下記の文章です。 大半の人々が能的に気づいているように、20分てプレゼンテーションを行う場合に、 文字かぎっしり詰まったスライドを映し出すのは効果的ではない。情報が口頭と書面で同時に提示された場合、聴衆は情報を処理するのが難しくなるという説は、研究結果によって裏付けられている。ならば、黙ったまま聴衆にスライドを読ませておいた方がいいのかもしれない。しかし、ここで新たな問題が出てくる。あなたは何のためにそこに

    プレゼンテーションZen を読んだ - おもしろwebサービス開発日記
    willnet
    willnet 2012/12/10
    ブログ書いた
  • factory_girl で関連先の属性を動的に設定して作成する方法 - おもしろwebサービス開発日記

    下記のような UserGroup, User, Blog があるとします。 # == Schema Information # # Table name: user_groups # # id :integer not null, primary key # name :string(255) # created_at :datetime not null # updated_at :datetime not null # class UserGroup < ActiveRecord::Base end # == Schema Information # # Table name: users # # id :integer not null, primary key # name :string(255) # user_group_id :integer # created_at :da

    factory_girl で関連先の属性を動的に設定して作成する方法 - おもしろwebサービス開発日記
    willnet
    willnet 2012/12/09
    ブログ書いた
  • minitest で mock や stub を使う - おもしろwebサービス開発日記

    minitest には標準で mock や stub の機能が付いています。それらの挙動について学んだのでメモ。 コード例 下記のような Person クラスと Whisky クラスがあるとします。これらについて minitest の mock と stub を使ってテストを書いてみます。 class Person def eat(food) food.taste end def drink(whisky) whisky.alcohol.upcase end end class Whisky def alcohol # まだ実装されていない end end mock minitest では下記のように mock を書きます。 describe Person do subject { Person.new } describe '#eat' do it '引数にとったオブジェクトの #tas

    minitest で mock や stub を使う - おもしろwebサービス開発日記
    willnet
    willnet 2012/12/05
    ブログ書いた
  • 開発合宿に行ってきた - おもしろwebサービス開発日記

    三連休を利用して、有志で開発合宿に行ってきました。宿は開発合宿用プランがある「はじめのいっぽ」という日光にあるペンションでした。 日光での宿泊と観光。東照宮至近の宿・ペンションはじめのいっぽ 合宿の詳細については、同行した @bekkou68 さんがめっちゃ詳しく書いてくれているので処理を委譲します。詳細知りたい方はこちらのリンクへどうぞ。 2泊3日の開発合宿に日光のペンション「はじめのいっぽ」へ行ってきました - bekkou68の日記 以下は自分のざっくりした感想です。 感想 飯もおいしかったし、開発合宿用プランがあるだけあって宿側で色々配慮していただけたので大変快適に開発することができました。最初に合宿中の目標を宣言して、途中で中間報告、最後に成果報告をするようなスタイルで進めてみたのですが、こうなるともうひたすら開発するしかないですよね。お酒も飲まず、風呂と飯以外の時間はひたすら開

    開発合宿に行ってきた - おもしろwebサービス開発日記
    willnet
    willnet 2012/11/26
    ブログ書いた
  • Rspec で rake タスクをテストする用の gem を作った - おもしろwebサービス開発日記

    しばらく前に表題の gem を作りました。 willnet/rake_shared_context 中身はただの shared_context です。これは僕のオリジナルな gem ではなくて、thoughtbot 社のブログに書かれた shared_context のコードをほぼそのまま gem にした感じです。毎回 rake タスクをテストするためにブログからコピペしてくるのが面倒になったので作りました。 これを使うと下記のような rake タスクがあったときに # lib/tasks/reports.rake namespace :reports do desc "Generate report" task :generate => :environment do ReportGenerator.generate end end 下記のような感じで rake タスクのテストを書くこと

    Rspec で rake タスクをテストする用の gem を作った - おもしろwebサービス開発日記
    willnet
    willnet 2012/11/13
    ブログ書いた
  • Backbone.js + CoffeeScript Book を読んだ - おもしろwebサービス開発日記

    backbone入門するために、 Backbone + CoffeeScript を読みました。 このには、backbone.js の構成要素(Model, Collection, View, Historyなど)が章立てでわかりやすくまとめられていて、それぞれの章ごとでサンプルアプリを作り込んでいく過程が書かれています。backbone.js と coffee script (とRails) でこんな流れで開発すればいいんだなーという流れをつかむにはかなり良いだと思います。 このの実態は紙やpdfではなくてHTMLなので、ブラウザで読まなくてはいけないのが若干面倒くさいのですが、その代わりにところどころ下記のようなサンプルプログラムを実際に動かして結果を見ることが出来たり(右上のRunを押すと実行)、さらに内容を編集して実行することができたりします。 英語を読むのは大変ですが、これ

    Backbone.js + CoffeeScript Book を読んだ - おもしろwebサービス開発日記
    willnet
    willnet 2012/11/11
    ブログ書いた
  • ドメイン居酒屋に参加した - おもしろwebサービス開発日記

    最近DDDやDCIなどのキーワードが気になっているのですが、そんな折に下記のような勉強会が開かれるのを知ったので参加してみました。 10月26日 豆ナイト:ドメイン居酒屋~モデル駆動プログラミングの集い~(東京都) DDDやDCIが気になっているのは、「Railsで “skinny controller, fat model” を意識して書くとモデルにメソッドが集まりまくる」のをなんとかしたいなと思っていて、その解決方法としてDDDやDCIが有効なのではないかと考えているからです。 内容的には、最初に発表された増田さんのスモールオブジェクトプログラミングの話がとても響きました。このスライドで書かれているアンチパターン「ひとつの部品(クラス)がいろいろ知っていて、なんでもやりたがる」ってまさにRailsのmodelなんじゃないのかなあ。 ちいさなオブジェクトでドメインモデルを組み立てる fr

    ドメイン居酒屋に参加した - おもしろwebサービス開発日記
    willnet
    willnet 2012/11/02
    ブログ書いた
  • Rails 4.0 で新しく追加される予定の find_or_create_by メソッドについて - おもしろwebサービス開発日記

    EdgeRails.info見てたら気になったので調べました。 最近 rails の master に、 rails 3.x 系でよく使っていた first_or_create と似たメソッド find_or_create_by が追加されました。そして first_or_create の方はメソッドの説明が削除され、depricated ぽい扱いになるようです。 詳しくは rails/activerecord/CHANGELOG.md at 300d080ada31ac297264e6abba6ca16cd2db5925 · rails/rails · GitHub の真ん中辺りに書かれていますが、どうやら first_or_create は where などのメソッドが先にいくつかチェーンでつながってから書かないといけないので読みづらい!ということみたいですね。大事なことを最初に書きた

    Rails 4.0 で新しく追加される予定の find_or_create_by メソッドについて - おもしろwebサービス開発日記
    willnet
    willnet 2012/10/29
    ブログ書いた
  • mac のターミナルのタブをCtrl-TABで切り替える - おもしろwebサービス開発日記

    mac(mountain lion)のターミナルのタブ切り替えを、chrome や safari と同じように Ctrl-TAB でする方法。以前は2009/02/25: Ctrl+Tabでターミナルのタブを切り替える方法 - すみかわ日記に書かれている方法でやっていたのだけれど、最近うまく動かなくて困っていました。そして今日何となくググったら stackoverflow で解決方法が見つかったので紹介。 設定 システム環境設定→キーボード→キーボードショートカットで下記のように設定するだけ。 参考 keyboard shortcuts - Using Ctrl-Tab to switch between tabs in Mac Terminal.app - Super User 追記 Yosemite では、タブの移動が「次のタブを表示」「前のタブを表示」になっています。適宜変更してくだ

    mac のターミナルのタブをCtrl-TABで切り替える - おもしろwebサービス開発日記
    willnet
    willnet 2012/10/28
    ブログ書いた
  • Rails4.0に含まれる strong_parameters について - おもしろwebサービス開発日記

    注意 このエントリは急いで書いたので間違いが含まれている可能性が高いです。気づいた方はご指摘ください。 序文 strong_parameters とは、mass assignment で余計なパラメータをモデルの属性にセットさせないための新しい仕組みです。Rails 4.0 からはこれが標準になります。Rails2.x と 3.x はattr_accessibleやattr_protectedなどで似たような機能が提供されていましたが、これだと管理が煩雑になるケースがありました。 今年の3月くらいにGitHub が mass assignment の脆弱性を突かれたことで 、この問題をどうにかしようという流れが起き、最終的に strong_parameters が作られるという経緯を辿りました。 mass assignment とは Rails ではこんなコードをよく見ると思います。 de

    Rails4.0に含まれる strong_parameters について - おもしろwebサービス開発日記
    willnet
    willnet 2012/10/26
    ブログ書いた
  • minitest と capybara で rails3 の integration テストを書く - おもしろwebサービス開発日記

    ハマったのでメモ。素の minitest と capybara でテストを書く方法もありますが、とりあえず試してみるなら minitest-rails と minitest-rails-capybara を使うのが一番早いです。 Gemfile に下記のように書いて bundle install group :development, :test do gem "minitest-rails" end group :test do gem "minitest-rails-capybara" end 下記コマンドで test/minitest_helper.rb を生成します。 rails generate mini_test:install さらに、test/minitest_helper.rb の require "minitest/rails/capybara" の行をコメントアウトし

    minitest と capybara で rails3 の integration テストを書く - おもしろwebサービス開発日記
    willnet
    willnet 2012/10/21
    ブログ書いた
  • 僕が参考にしている Ruby, Rails の情報源まとめ(海外ブログ編) - おもしろwebサービス開発日記

    昨日 @bekkou68 さんに「前島さんってどうやってRubyRails関連の情報を収集しているんですか?」って聞かれたのでまとめてみます。とりあえず海外のブログ限定で。日ブログ編は気が向いたらやります…。 RailsCasts 有名すぎて説明不要かもしれませんね。毎週2つ(うち1つは有料購読が必要)の Rails 関連動画をアップロードしてくれているサイトです。良質な情報を定期的に届けてくれるすばらしいサイトですね。1ヶ月9ドル払って有料購読する価値は間違いなくあると断言できます。動画中で紹介しているライブラリの情報もすばらしいですが、コード例もかなりRailsっぽく綺麗に書かれていて大変参考になります。 RubyFlow いろいろなRuby開発者のブログの更新情報をまとめたブログ。簡単な紹介文に各ブログのリンクがくっついているような形式です。日によってばらつきがありますが、だいた

    僕が参考にしている Ruby, Rails の情報源まとめ(海外ブログ編) - おもしろwebサービス開発日記
    willnet
    willnet 2012/09/28
    ブログ書いた
  • Rails 4.0 に入る予定の turbolinks について調べた - おもしろwebサービス開発日記

    Rails 4.0 のデフォルト Gemfile に入るらしい、pjax っぽいことをして画面遷移を高速化する gem turbolinks について軽く調べてみました。 Introducing Turbolinks: github.com/rails/turbolin…. This will ship as default-on in Rails 4.0 Gemfile. PRESS TURBO BUTTON! yfrog.com/odqcgsxj— DHHさん (@dhh) 9月 26, 2012 実態は100行ほどの coffee script なのでざっくり読んでみるとどんな挙動をするのかわかりやすいです。 turbolinks/lib/assets/javascripts/turbolinks.js.coffee at master · rails/turbolinks · Gi

    Rails 4.0 に入る予定の turbolinks について調べた - おもしろwebサービス開発日記
    willnet
    willnet 2012/09/27
    ブログ書いた
  • 札幌Ruby会議2012に参加した - おもしろwebサービス開発日記

    札幌Ruby会議2012に参加しました。予約してたホテルが一週間前にホテル都合で予約キャンセルになったり、行きの飛行機の時間を間違えてしまうトラブルがありつつもなんとか3日間フルに参加することが出来ました。 予約してた札幌のホテルが設備故障で休みになるとか…どうすっかな— willnetさん (@netwillnet) 9月 7, 2012 飛行機の時間間違えた…どうしよ— willnet (@netwillnet) September 13, 2012 時間に余裕持ってきたつもりが復路の出発時間と勘違いしてたという。もう飛行機行っちゃってるし参ったなあ— willnet (@netwillnet) September 13, 2012 感想 すばらしいイベントでした!今年は RubyKaigi が開催されなかった分、札幌Ruby会議が Rubyist の会議参加欲?を満たす役割を担った感

    札幌Ruby会議2012に参加した - おもしろwebサービス開発日記
    willnet
    willnet 2012/09/17
    感想かいた #sprk2012
  • twitter で手軽に親孝行できるwebサービス miuchee を作りました - おもしろwebサービス開発日記

    miuchee という、twitter で手軽に親孝行できるサービスを作りました。 miuchee via kwout どんなサービスか このサービスが対象としている人物像は「親孝行はしたいと思ってるんだけど面倒くさいから親に連絡はあんまりしない」という人です。miuchee に登録すると、あなたが twitter でつぶやいたツイートの “一部” を一日一回(だいたいお昼くらいに)、親のガラケーにメールで送ります。このエントリを読んでいるあなたはおそらく日頃「おなかすいた」とかどうでもいいことをツイートしていると思いますが(僕もそうです)、親にとってはそんなつまらないツイートも大事な情報です。なぜなら親はあなたが何をしているのか、何を思っているのか、普段まったく知る術がないのですから。 というわけで miuchee に登録すると、これまでのように適当にツイートしてるだけで親に近況を伝える

    twitter で手軽に親孝行できるwebサービス miuchee を作りました - おもしろwebサービス開発日記
    willnet
    willnet 2012/09/10
    リリースエントリ書いた
  • rails generate controller で無駄な helper や assets を生成しない方法 - おもしろwebサービス開発日記

    rails generate controller で controller を生成すると、必要の無い helper、 coffee、stylesheet ファイルが一緒に生成されるので後で消すのがめんどくさいですね。そんなときは下記のように –no-helper オプションや –no-assets オプションを付けることで、無駄なファイルの生成を抑制することが出来ます。 rails generate controller users --no-helper --no-assets ただ、controller を作成するたびにオプションを付けるのは面倒くさいですし忘れます。そんなときは config/application.rb に対して下記のようなコードを追加するとおk。 module YourApp class Application < Rails::Application #...

    rails generate controller で無駄な helper や assets を生成しない方法 - おもしろwebサービス開発日記
    willnet
    willnet 2012/09/03
    ステマ。昨日書いた
  • bundler 1.2.0 リリース - おもしろwebサービス開発日記

    1.1 からの主な変更内容がまとめられた Bundler: The best way to manage Ruby applications を読んでのメモです。 細かい変更点は bundler/CHANGELOG.md at 1-2-stable · carlhuda/bundler を参照のこと(英語です)。 Ruby のバージョンを指定できるようになった Gemfile 中に、下記のように Ruby のバーションを指定できるようになりました。 ruby "1.9.3" 上記の設定は、該当するアプリが 1.9.3 と ABI 互換な Ruby VM に依存していることを宣言しています。バージョンチェックが失敗したら、Bundler は例外を投げます。 :engine と :engine_version オプションでより具体的に設定することが出来ます。 ruby "1.9.3", :en

    bundler 1.2.0 リリース - おもしろwebサービス開発日記
    willnet
    willnet 2012/08/31
    Bundler 1.2.0 の変更点についてまとめた/あんまり大きな変更はないみたい
  • Capybara 2.0 アップグレードガイド - おもしろwebサービス開発日記

    Capybara 2.0 Upgrade Guide - Funding Gates の意訳です。 capybara の 2.0.0 beta がリリースされたらしく、上記エントリでは重要な変更点とアップグレードの仕方について解説してくれています。 good news と bad news 2.0.0 にアップグレードしたら、現在のテストが一部通らなくなるかもしれなません 一度 2.0.0 でテストが通るようになったら、そのまま 1.1.2 に戻すことも出来ます。まだ 2.0.0 が肌に合わないようならまだ切り戻すことができます。 互換性 capybara-webkit や poltergeist はまだ Capybara 2.0 に対応していません。ひとまず selenium ドライバを使いましょう。 How to Upgrade 2.0.0 beta は約一ヶ月前にリリースされました。

    Capybara 2.0 アップグレードガイド - おもしろwebサービス開発日記
    willnet
    willnet 2012/08/24
    久しぶりに意訳しました
  • p4dに参加した - おもしろwebサービス開発日記

    先週の土曜日、p4dに初参加しました。 第8回 デザイナー向けプログラム部 エンジニア枠 on Zusaar 最初のペア決めで @9d さんと一緒になり、ちゃりんちゃりんできるウェブサービスを考えたのですがなかなか決まらず。時間もかなり限られていたので、時間内に作れるだろうtwitter診断系のサービスを作ることにしました。 で、完成したのが こちら(追記参照のこと) 。当日herokuが落ちていたので急遽 sqale に切り替えて作りました。入力したIDの人の直近のツイートを解析して、独身なのか既婚なのかを判定するサービスです。 sqale アプリの再起動やログの確認のために ssh でサーバに入るのが heroku と違って少し戸惑いました。でも heroku のコマンドを覚えるより ssh で入る方が覚えることが少なくてよいかもしれません。 イマイチだった点 時間内に終わらせようとす

    p4dに参加した - おもしろwebサービス開発日記
    willnet
    willnet 2012/07/02
    感想かいた