Ruby

私はRSpecでテストをこんな感じで書いてる

私がRSpec使ってテスト書く時はこんな感じで書いてるよ〜ってのを書いてみた。*1 テストを書く順番について TDDでコードを書く場合、先にテストを書く事になります。 そして、そのテストを書く順番ですが、私は下記のような順番で書くように意識しています。…

active_decorator のdecoratorをrspecでテストする方法

active_decorator は便利なのですが、rspecでテストが上手く書けなくて、書き方を調べていた。 ただ、web上に情報が無く・・・ あ…ありのまま 今 起こった事を話すぜ! 「おれは decoratorのspecを書こうとしていたと 思ったら いつのまにかactive_decorator…

RSpecでArelのメソッドチェインをスタブにする

テストでメソッドチャインできるメソッドをスタブにする。 describe BlogsController do before do(:all) u = User.new User.stub_chain(:where, :limit, :order).and_return(u) end end こういう書き方も出来る describe BlogsController do before do(:all…

テスト対象のControllerの親クラスのfilterをskipする

テスト対象のControllerのActionのみをテストする時に便利。 describe BlogsController do before do superclass = controller.class.superclass super_filters = superclass._process_action_callbacks.map(&:filter) controller.class.skip_filter *super_…

RubyでFizzBuzzを書いてみた

ネタは前回の記事のデコレータ式と同じだけど、Rubyだとこんな感じになる。 余計なメソッドが多いのは、なんとなくRubyっぽいからです。特に意味はない。 仕様 前回と同じ どうしてプログラマに・・・プログラムが書けないのか? 1から100までの数をプリント…

railsで作る簡単な本棚アプリ (2)

railsで作る簡単な本棚アプリ (1) の続き。 新規のユーザを作る。 rails serverを起動させた状態で、http://localhost:3000/users を開く。 "New User"のリンクをクリックして、新規ユーザを作る。 新規の本を作る。 ユーザと同じ要領で、http://localhost:3…

railsで作る簡単な本棚アプリ (1)

前回の記事 で書いたdefault_scopeとunscopedの例を試すために、簡単な本棚アプリを作ってみた。 環境 rails 3.0.7 rspec 2.6.0 rspec-rails 2.6.1 rails new 本棚アプリを作る rails new bookshelf -Tテストはrspec使いたいので、-Tオプションを指定する。 …

railsのdefault_scopeとunscoped

DBの論理削除*1を使う場合、default_scopeを使うと便利。 論理削除ではないが、簡単な例を下記に書いておく。 default_scope default_scopeをこのように定義しておく。 class Book < ActiveRecord:Base default_scope where(:R18 => false) end すると、 Boo…

Rubyのunless文で条件式が複数ある場合のメモ

unless文で、条件式が複数ある場合の動作がたまに分からなくなるので、備忘録書いておく。 先に結論を書くと、unless文は if文の条件全体にnotをつける のと同じ。 例 ball.rb #!/usr/bin/env ruby # -*- coding: utf-8 -*- class Ball def initialize(color…

RubyとRailsを使っていて、覚えたnilに関するまとめ

nilや例外に関する備忘録。 下記の記載はrails consoleで確認。 ActiveRecord 関連 「例外が発生する」パターンと「IDが見つからなければnilを返す」パターンを使い分ける必要がある。 find User.find(1) # => #<User id: 1, name: "sinsoku"> User.find(999) # 存在しないid # 例外 Activ</user>…

マジックコメントを1行目に挿入するvimスクリプト

Vimスクリプトリファレンスを参考にしつつ、マジックコメントを挿入するスクリプトを書いてみた。 ~/.vimrc " magic comment function! MagicComment() let magic_comment = "# -*- coding: utf-8 -*-\n" let pos = getpos(".") call cursor(1, 0) execute "…

Rubyを使い始めた (2) - Rails3のArelの例

参考ページ Arel の概要は技術評論社のページを参照。 Ruby Freaks Lounge:第43回 Rails 3を支える名脇役たち その1 - Arel -|gihyo.jp … 技術評論社 はじめに サンプルとして、下記のようなModelとデータベースを作成してある。 $ rails g model book nam…

Rubyを使い始めた (1) - RVM

環境構築の仕方を忘れそうなので、メモしておく。 ちなみに、OSはUbuntu 10.10 を使ってます。 参考ページ RVM: Ruby Version Manager - RVM Ruby Version Manager - Documentation rvmを使う - NowTomの日記 RVMを便利に使う - ryog on rails RVMとは? RVM…