RailsのWebアプリケーションを英語化(多言語化)をサポートしてくれるGem「i18n」の紹介です。 🎂 i18nのベーシックな使い方デフォルトの言語を日本語にするには、config/application.rbの次のように指定します。
4. メトリクス測定って何? • コードの複雑な部分を指摘してくれるツール ‣ 長過ぎるクラス、メソッド ‣ 短すぎる変数名(a, b, c...) ‣ 多すぎる変数 ‣ Rdoc用のコメントが無いクラス、メソッド ➡ こう言う部分を見つけて指摘してくれる 5. 例えば Rubyのメトリクスツール”Reek”を使ってみる $gem install reek $reek myApp.rb myApp.rb -- 9 warnings: A has no descriptive comment (IrresponsibleModule) A has no descriptive comment (IrresponsibleModule) A#a has the variable name 'f' (UncommunicativeName) B has no descriptive commen
RailsでFat ControllerになったらForm Classを作れ,という記事はあちこちで見るのですが,今一つ参考になるような実装があまり見つからなかったので記事にしてみました. Rails 3.2.13,Ruby 2.0.0系で動作確認済みです. Fat Controller問題 Railsで特に何も考えずに検索機能を作っていると,検索ロジックでcontrollerが膨らんできてしまうと思います(Fat Controller問題). 例えば,検索フォームの内容として最初は名前だけで検索するとのことで, HogeController < ApplicationController def index @hoges = Hoge.where("name LIKE ?", "%#{params[:name]}%") end end と書いていたのが,そのうちメールアドレスや住所でも絞
■概要 (激しく既出感ありですが。。)何年もrailsやってますが、正しく理解できていなかった事の一つに rake spec(test)すると、処理の一環としてdb:test:prepareタスクを呼び出す という挙動があります。 通常問題にならないのですが、db:test:prepareが、db/schema.rbの情報を元にデーターベースを作成する為、railsが認識できないような項目は抜けて落ちてしまいます。 関数適用したインデックス トリガーやファンクション 別スキーマに作ったオブジェクト ...etc なので RAILS_ENV=test rake db:drop RAILS_ENV=test rake db:create RAILS_ENV=test rake db:migrate してからrake specする事を前提に、db:test:prepareを呼び出さずにspecを
Ruby on Rails v3.2.11 アセットパイプラインとは Rails のアセットパイプライン(Assets Pipeline)は JavaScript や CSS、画像ファイルといった HTML に付随する細々としたファイル達(アセットファイル)を連結したり圧縮することで効率的にアクセスできるようにする仕組み(フレームワーク)です。 アセットパイプラインの役割 アセットパイプラインは以下のような役割をもっています。 1 複数の JavaScript と CSS をそれぞれ1つのファイルに連結する ⇒ ブラウザからのリクエスト数を減らす 2 JavaScript と CSS を圧縮してサイズを減らす ⇒ 文法上必要でない空白を削除したり、変数名を1文字にしたり 3 アセットファイル名にハッシュ値(MD5)を付加する ⇒ ブラウザがファイルのキャッシュ/読み直しを正しく行える 4
前回はRSpecの基本メソッドについてまとめました。今回はMockについてまとめます。 テストダブルとは テスト対象が依存しているモジュールやリソースの代役のこと。結合テストのような複雑な環境を事前に用意せずとも目的の機能をテスト可能となるように振る舞いをシミュレートする。 irb,pry等でMockを試したい時、
2012年03月05日22:55 カテゴリウェブアプリ開発 vimプラグインのNERDTreeを自分好みにカスタマイズ。 vimプラグインNERDTree(v4.2.0)を導入。 色々書いてみたけど、ほぼデフォルトで何の問題もなかった。 環境 ubuntu11.10 vim(v7.3.154) NeoBundle NERDTree(v4.2.0) colorscheme bluegreen 他にruby等のハイライト用プラグインを導入済み。 実行画像 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""NERDTree : ツリー型エクスプローラ """""""""""""""""""""""""""""""""""""""""""""""""""""""""
What is Better Specs Better Specs is a collection of best practices developers learned while testing apps that you can use to improve your coding skills, or simply for inspiration. Better Specs came to life at Lelylan (open source IoT cloud platform) and checking out its test suite may be of inspiration. Better Specs focus on Rails testing, but our goal is to create testing guidelines covering mos
Railsをはじめて触ったとき 3.daysのように書けてしまうので驚いた方も多いのではないでしょうか。 Rubyでは、自分のソースコードの好きなところで class Numeric # Numericクラスにfoobarメソッドを追加する def foobar p 'foobar' end end 3.foobar => "foobar" のように、基本クラスを拡張できてしまいますので、どこでメソッド定義されているのか探すのが大変です。 そこでRubyでは、Method#owner(), Method#source_location()という定義情報にアクセス出来るメソッドが用意されています。 それでは「3.days」がどこで定義されているか調べてみましょう。 m = 3.method(:days) # Methodオブジェクトが返却される m.owner # 定義されているクラス =>
There are several different ways to run your Rails app. Starting from simple $ rails server and to Phusion Passenger, which is quite complex tools itself. Today, though, I want to focus on nginx. In case you’re not familiar with this wonderful tool, Nginx (pronounced “Engine-X”) is an open source Web server and a reverse proxy server for HTTP, SMTP, POP3 and IMAP protocols, with a strong focus on
方針 手元(Ubuntu)で開発して、サーバ(Ubuntu)にデプロイ出来るrails 3.1動作環境を作るのが目標 プロジェクト毎にユーザを作成する (各ライブラリをプロジェクト毎にbundlerで管理、デプロイをするため) 同様の理由でrbenvを使って各ユーザ毎にrubyのバージョンを管理 構成 静的なファイルへのリクエストは直接nginxで返す構成をとります(railsのpublic配下のディレクトリにあるファイル、適宜nginxのconfigに設定を追加する必要あり)。またrails3.1からAsset Pipelineが導入されたため/assets/〜に関するリクエストに関してもnginxで直接返すようにします。加えてnginx <=> unicorn間の接続にはUnix Domain Socketを用います。イメージを図にすると下記のようになります。 unicorn gith
fixtureを手で作るのはとても疲れるので、DBから自動生成したり、FactoryGirlをはじめとしたFixture alternativeを使うことが多いと思います。 DBからfixtureのYAMLを生成する方法は色々見つかりますが、今回は要件を満たすものが見つからなかったので、rakeタスクを作ってみました。 複数行テキストやコロン(:)が含まれるテキストを、正しく処理できないものが多いんですよね。 今回はこのような要件を満たすようにしました。 MySQLで動作する テーブルを指定できる 複数行のテキストフィールドを処理できる IDやモデルファイルが無いテーブル(HABTM用中間テーブルなど)に対応する 以下のようなファイルを、lib/tasks/extract_fixtures.rakeとして保存し、 rake db:fixtures:extract すると、tmp/fixtu
Railsさんアプリでファイルアップロードのテストの書き方です。 以下のようなアップロードしたファイルを/tmpの下に保存するコントローラーがあるとします。 class TestController < ApplicationController def index end def upload file=params[:file]['csv'] @filename = params[:file]['csv'].original_filename File.open("/tmp/#{@filename}","wb"){ |f| f.write(file.read) } end end このコントローラー用のviewを以下のような感じで用意します。 <% form_tag({:action => 'upload'},{:class=>'form',:multipart=>true}) do
I use RSpec in all my projects. It’s really hard to overemphasize how helpful it is and how much easier becomes your life if you have good specs coverage. But its outstanding flexibility enables many ways to make your specs awful: horribly slow, over-bloated, even non-readable sometimes. I do not want to teach you BDD and RSpec here, but instead I will give you some ideas how to improve your specs
もう少し簡潔に書けました。追記: Rails, RSpec, Spork(, Guard) で適切にクラスをリロード を参照。 Rails アプリケーションの開発時、spork と guard を使うと非常に効率がいいです。 この記事では spork 使用時にクラスを適切にリロードするための方法を紹介します (guard 関係ないけど、快適にテストできるとこまでのメモとして書いておきます)。spork と guard については、ググるか README みてください。 sporkrb/spork - GitHub guard/guard - GitHub guard/guard-spork - GitHub guard/guard-rspec - GitHub なお、ここではこの方法を確立した時点での最新リリースだった Rails 3.0.7 を想定してます。Rails 3.2 ではクラス
こちらの記事を参考に自分で自動テスト環境を構築した記録です。この記事はすごく参考になりました。感謝です。 Rails3+RSpec2+Spork+Guard(guard-rspec,guard-cucumber)で最速のBDD(振舞駆動開発)環境を作る - Curiocity Drives me 0.環境 # Gemfile source 'http://rubygems.org' gem 'rails' gem 'rake', '0.8.7' gem 'mysql2', '0.2.6' gem 'haml-rails' gem 'jquery-rails' $ bundle install --path vendor/bundle1.rpec-rails, factory_girl_railsのインストール # Gemfile source 'http://rubygems.org' g
Railsでプロジェクトを進めるにあたり、BDD(振る舞い駆動開発)をやりたいと思いまずは環境構築をした覚え書きがこちらです。 Rspecまわり まずは Rspec のテストを自動化したいと思って参考にしたエントリがこちら。 Curiosity PDF - なるほど、Spork と Guard というものを使うと自動テストが捗るらしい。 Spork は 高速なテストサーバのようなもので、Guard は自動テストパッケージ。 あと、Rspec でテスト書いて行くにあたって、テスト時のモデルデータを用意するのに Fixture よりも factory_girl が捗るらしい。 詳しくは など。 …という事で、これも組み込もう。 以下のエントリを参照した。 rspec, factory_girl, spork, guardによる自動テスト環境の構築 - AnyType Javascriptまわり
ある日突然「Rails 3 のプロジェクト作ったから Jenkins でテスト結果とカバレッジをいい感じで表示できるようにしておけよ」と言われて、一生懸命設定したときの内容をシェアする。 Scala (lift) 編は Jenkins で Scala (lift) プロジェクトのテスト結果とカバレッジをグラフ表示する - mallowlabsの備忘録 をご参照。 イメージ 環境 ruby 1.8.7 rubygems 1.5.0 rake 0.8.7 rails 3.0.3 ci_reporter 1.6.4 Jenkins 1.414 Jenkins ruby metrics plugin 1.5.0 Jenkins Rake plugin 1.7.6 まずはローカルで設定 要は rcov と ci_reporter を組み込んだ Rails 3 アプリケーションを作ればよい。 適当なブ
Railsエンジニアになってから1年半くらいが経ち、社内のRailsのプロジェクトを全部で5つくらい触って、今やってるAbilie*1でようやく人並みにテストを書いてる気がしてきたので、現時点でやってるテストの方法をまとめておく。 テストのルール的なの rspecでは必ずモデルのテストは書くようにしてる。ヘルパーも大体書いてるけど、コントローラやルーティングのテストはあまり書いてない。 というのも、コントローラーのコードを極力短くしてモデルを太らせているのでコントローラのテストはあんまり意味が無い気がしていて、その代わりにCapybaraでテストを書いておけば十分なんじゃないかなと思ってきたから。Capybaraは書いてるので、そういう意味では書いてるとも言える。 社内の管理者だけが使える管理画面も作ってるけど、そっちはテストあんまり書いてない。ここは動かなくなっても一般ユーザーには影響が
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く