5年ぐらい幡ヶ谷に住んでいるんですが、フィヨルドが出来たので隣の初台もうろうろするようになりました。
初台は、オペラシティを中心とした上層エリアと、不動通り商店街などのロウアータウンに思い切り分かれてる感じで面白いです。
幡ヶ谷住人としては既に駅前のぽえむがあるので純喫茶は足りていたのですが、その存在感は無視出来ず、純喫茶 車に入ってみました。
もっと上には家紋みたいなマークがあって敷居を上げています。
店内は70年代そのままをどうやって維持して来たんだろういうぐらいしっかりとした純喫茶の様式美を保っていました。
テーブル型筐体ゲームもとても状態が良いみたいです。
500円のナポリタンが気になりつつ焼きそばとコーヒーを注文。
定番の銀の皿に屋台みたいな味のする焼きそばで昼を住ませました。
今度は仕事しに行きたいです。
一覧を見ながら書きたかったので。
featureはcucumber0.3.11のもの。stepsはmiso0.0.4のもの。
feature
feature: フィーチャ|機能 background: 背景 scenario: シナリオ scenario_outline: シナリオアウトライン|シナリオテンプレート|テンプレ|シナリオテンプレ examples: 例|サンプル given: 前提 when: もし then: ならば and: かつ but: しかし|但し
steps
前提 /^"([^\"]*)"ページを表示している$/ もし /^"([^\"]*)"ページを表示する$/ もし /^"([^\"]*)"ボタンをクリックする$/ もし /^"([^\"]*)"リンクをクリックする$/ もし /^"([^\"]*)"に"([^\"]*)"と入力する$/ もし /^"([^\"]*)"から"([^\"]*)"を選択する$/ もし /^日時として"([^\"]*)"を選択する$/ もし /^"([^\"]*)"の日時として"([^\"]*)"を選択する$/ もし /^日付として"([^\"]*)"を選択する$/ もし /^"([^\"]*)"の日付として"([^\"]*)"を選択する$/ もし /^時間として"([^\"]*)"を選択する$/ もし /^"([^\"]*)"の時間として"([^\"]*)"を選択する$/ もし /^"([^\"]*)"をチェックする$/ もし /^"([^\"]*)"のチェックを外す$/ もし /^"([^\"]*)"を選択する$/ もし /^"([^\"]*)"としてファイル"([^\"]*)"を選択する$/ ならば /^"([^\"]*)"と表示されていること$/ ならば /^"([^\"]*)"と表示されていないこと$/ ならば /^入力項目"([^\"]*)"に"([^\"]*)"と表示されていること$/ ならば /^入力項目"([^\"]*)"に"([^\"]*)"と表示されていること$/ ならば /^"([^\"]*)"がチェックされていること$/ ならば /^"([^\"]*)"ページを表示していること$/ 前提 /^言語は"([^\"]*)"$/ もし /^"([^\"]*)"としてファイル"([^\"]*)"をContent\-Type"([^\"]*)"として添付す る$/ もし /"([^\"]*)"中の"([^\"]*)"リンクをクリックする$/ もし /^テーブル"([^\"]*)"の"([^\"]*)"行目の"([^\"]*)"リンクをクリックする$/ もし /^デバッグのため$/ ならば /^テキストフィールドに"([^\"]*)"と表示されていること$/
思った。
「Railsは覚える事が多過ぎる」
なので、日本一簡単なチュートリアル作成に挑戦!
目次
- インストール
- 雛形の作成
- いらないファイルの削除
- アプリケーションの作成
- Webサーバーの起動
- 確認
1. インストール
RubyGemsのgemコマンドを使ってrailsをインストール。
% sudo gem install rails
2. 雛形の作成
railsのインストールによって入ったrailsコマンドを使って、アプリケーションの雛形を作ります。
使い方:rails <アプリケーション名>
% rails hello
% cd hello
出来るファイル:
README - railsの説明(いらない) Rakefile - Rakeの設定ファイル(気にしない) app - 自分の書くコードを置くところ(良く使う) config - 設定ファイル各種(良く使う) db - データベース関連のファイル置き場(気にしない) doc - このアプリケーションに関するドキュメント(気にしない) lib - ライブラリ置き場(気にしない) log - ログ置き場(気にしない) public - 静的ファイル置き場(気にしない) script - 便利スクリプト置き場(気にしない) test - テスト置き場(いらない) tmp - 一時ファイル置き場(気にしない) vendor - 外部ソフト置き場(気にしない)
3. いらないファイルの削除
rm -f README
rm -f public/index.html - インストールおめでとうページ
rm -f public/images/rails.png - ロゴ画像
rm -rf test
4. いらないライブラリの除外
config/environment.rb の下記の様に編集します。
RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION
require File.join(File.dirname(__FILE__), 'boot')
Rails::Initializer.run do |config|
config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
end
上記でデフォルトで使われる3つのライブラリを利用しないようにしています。
- active_record – DB関連(気にしない)
- active_resource – Web API関連(気にしない)
- action_mailer – メール関連(気にしない)
5. アプリケーションの作成
app/controllers/top_controller.rb を作成します。
class TopController < ApplicationController
def index
render :text => 'Hello'
end
end
topという名前は適当です。アンダースコア区切りのファイル名を大文字区切りにしたものをクラス名にします。(決まり事)
表示したいページをメソッド名として作ります。(indexメソッド)
renderメソッドの:textオプションに文字列を渡すと、それをそのまま表示してくれます。
config/routes.rb を下記の用に編集します。
ActionController::Routing::Routes.draw do |map|
map.connect '/', :controller => 'top', :action => 'index'
end
map#connectメソッドにurlとそれに対応するcontroller名、action名(さっき書いたヤツ)を指定して紐付けます。
6. Webサーバーの起動
% ruby script/server
7. 確認
% open http://localhost:3000/
完成!
これでテキストを表示するWebアプリケーションが作れることが分かったと思います。
他の事は単に、
「Railsに付いている便利機能」
だと思って一個づつ、一個づつ、自分のアプリケーションに取り入れて行けば良いと思います。
4)Railsテスティング環境 2009 – Cucumber,Webrat and Rspec – - 技術メモ的なモノRails of Ruby on Rails
- 主要な処理をモデルによせてコントローラーを薄くする
- Modelはテストしやすいのでそこで対応
- 「コントローラのアクションではfindやnew以外のモデルメソッドは一つくらいにしなさい」といったアドバイスもある
- モデルに追加するメソッドはRSpecで重点的にテスト
- コントローラーやビュー、ヘルパーはCucumberでテスト
「modelはrspec、controller, view, helperはcucumberでテスト」ってかなり共感できる。
リファクタリングには良いけど、rspecでcontroller, viewをガッチリテストしても結局ブラウザで表示させたらエラーってがっかりする。
mock, stub化が激しくなり過ぎると書いてる時は綺麗で楽しいけど、実情と乖離してくる。
cucumberのlanguageファイルはココにあった。
cucumber/lib/cucumber/languages.yml
"ja":
name: Japanese
native: 日本語
encoding: UTF-8
feature: フィーチャ|機能
background: 背景
scenario: シナリオ
scenario_outline: シナリオアウトライン|シナリオテンプレート|テンプレ|シナリオテンプレ
examples: 例|サンプル
given: 前提
when: もし
then: ならば
and: かつ
but: しかし|但し
space_after_keyword: false
“フィーチャ”って“機能”とも書けるんですね。機能の方が分かりいいな。
ついでにgithubのコードブラウザは複数行に対してURLがあるということを知った。(#L299-313みたいなヤツ)すごい!