2014-01-01から1年間の記事一覧

インテグレーションテストをすこし早くする

環境 rack-test (0.6.2) poltergeist (1.5.0) テスト遅いのなんとかしたくて試験毎に呼ばれるログイン処理なんとかならんかみたいの考えた結果、ドライバーのAPIを直接叩くようにしてみた。ちなみに、ログイン処理はspec_helper.rbに書いてどのテストからで…

こういうのもっとください

http://tatsu-zine.com/books/syskankeijosi1

OAuth認証をする

sorcery (0.8.5) rails (4.1.1) wikiにサンプルあるけどやばいよ wikiの通りにやっていくとちゃんとユーザ作成までできるのだけど、 このサンプルには、大問題があってValidationがすべて無視されてユーザを作成してしまう。 原因 原因はcreate_fromメソッド…

scss-lint入れたほうがいい

scss-lintは、CSS拡張メタ言語「SCSS」のRuby製静的解析ツール。RuboCop的なやつ。 https://github.com/causes/scss-lintプログラマはFatなソースコードと闘い、日々テストコードを書いているけど、 CSSってテストする文化ないので、どうして付け焼刃みたい…

Rspecの結果を通知センターに表示する

https://github.com/twe4ked/rspec-ncMacの通知センターにrspecの結果を表示するgemだよ。 テスト中はTwitterとか別のことをやりだすマンなのでテスト終ったのがわかるととても助かる。 導入もすごく簡単でGemfileにgemを追加と.rspecに追記するだけ。 Gemfi…

ネットで物を買う時は最近ヨドバシ使ってる

http://www.yodobashi.com 配送料かからないし翌日には届くし10%のポイントつくし品揃え割とよい。 外出する理由がなくなるレベル。 でも卓上扇風機の安いやつがなかったのでamazonで買おうと思ったけど、 ダイソーで200円のものがあるっぽいのでそれを買お…

featureスペックで確認ダイアログをクリックしたい

capybara (2.2.1) poltergeist (1.5.0) rails (4.1.1)link_toヘルパーにカスタムdata属性confirmを書くとjsの確認ダイアログを生成してくれる。 <%= link_to icon("trash"), admin_book_path(book), method: :delete, data: { confirm: "『#{book.name}』を…

ローカルブランチの整理

git

トピックブランチで開発してるとブランチが量産されるわでさっきまで作業してたブランチどれだっけみたいになる。 定期的にローカルのブランチを掃除したい。 間違って作業中のブランチ消したらめんどいので安全にいきたい。 $ git branch -b branch_nameオ…

specをすべて流したら落ちるテストがあってつらい

全spec流さないと再現しない。 feature_specだと、画面ベースでのエラー内容なのでピンと来ないことがけっこうある。 Capybara::ElementNotFound: Unable to find file field "event_photo[image]"よく落ちる行の例外を補足した時binding.pryを走るようにす…

try

tryメソッドはactive_supportに入ってる超便利メソッドな訳だけど引数をtypoしてもnilが返ってくるので結構あぶない! テスト書いてtypo回避したほうがいいよ!と書こうとしたんだけど、 ググるとtry!というメソッドがあって、nil以外のレシーバでundefined…

ぺろぺろあんてなのサーバを変えます

ぺろぺろあんてな(http://prpr-antena.com)は、今までさくらのVPS1000円(物理メモリは1G)で動いていたんだけど、 大して使(われていない|っていない)のに800MBくらいメモリを使っていたことが気に食わなかったので、 Gehirn RS2(http://www.gehirn.jp/rs2.ht…

activation_tokenが設定されない場合がある

sorcery (0.8.2)Railsで認証系ライブラリといえば、Deviseだけど自分は微妙な印象。 Deviseってやっぱ何やってるかよくわからんしviewのgenerateしたところでカスタマイズするのすごくしんどい感じがあるし、 railsのgeneratorが既に充実しているので他のラ…

Mac捨てたいと思ってる

仕事でLinuxサーバの保守もたまにやっているので最近おもに勉強している。シェル難し過ぎワロタ。 最近よくあるMac捨てたいと思うことは、 コマンドの結果が開発マシンのMacとLinuxと若干違っていてたまにイラっとすること、 本を読んでいるだけだとLinuxと…

iptablesを

パケットフィルタする機能。今はこれを使うのがナウいっぽい。 $ sudo apt-get install iptables-persistentiptables-persistent は /etc/iptables/rules.v4とrules.v6を読み込む起動スクリプト。 ルールは /etc/iptables/rules.v4 に書く。 *filter # Allow…

何となく使っていたファイルシステムについて調べてわかったこと

FATはクソ

コントローラーのindexアクションのテスト

ArticlesController < ActionController::Base def index @articles = Article.all end end describe ArticlesController do describe "GET 'index'" before { get :index } it { expect(assgins(:articles)).to Article.all } end end end テストが少ないう…

CI

最近会社のプロジェクトをGithubに移行したので、ナウい感じのサービスと連携しやすそうだと思ってCIサービスWerckerを最近使い始めた。 セットアップ簡単だし、GithubのPrivateリポジトリでも無料だし、結果をメールできる(※自前のSMTPサーバが必要)。 ダッ…

MavericksにアップデートしたらMacportが使えない

Mac

Macportsを使ってmysqlをインストールしようとしていたらできなかったのでyoutubeで徳井空の動画見てた。 koji@re[~/virtial_box]$ sudo port install mysql56 +server Password: ---> Extracting gperf Error: org.macports.extract for port gperf returne…

引数に含まないレコードを返す

Lokkaのactiverecordブランチ(次期master)に without_selfというscopeがあったんだけど、postgresqlじゃ動かなかった。 scope :without_self, ->(id){ self.where('id IS NOT ?', id) } これで動いた。 scope :without_self, ->(id){ self.where("id not in …

ジャケ買いした

http://tatsu-zine.com/books/raspi-bm

そのうちやめたい習慣

ライブラリのコードを検索する時にgit grepするためだけにgit initすること。

futureスペックのjs: trueなテストが動かない時 解決編

Rails4.1アップデートの過程でjs: trueなテストがこけるようになっていた原因がわかった。js: trueのテストの時、usersテーブルに入っているはずのレコードが空になっていて、ログインできずに目的の要素を発見できずにビジーループからのタイムアウトが起き…

小指でzキーを二回押す難易度がすごく高い

vim

実践Vimの中に書いてた「挿入ノーマルモードからのzz」を習得しようとしている。 http://qiita.com/takasianpride/items/6900eebb7cde9fbb5298

rails4.1のdefalut_scope

仕様が変わり、default_scopeの内容が上書きされずにチェインされるようになった。 4.1より前 class User < ActiveRecord::Base default_scope { where state: 'pending' } scope :active, -> { where state: 'active' } scope :inactive, -> { where state:…

ジップロック

半身浴している時に水分とらないとナチュラルにやばい状態になるのがわかった。

futureスペックのjs: trueなテストが動かない時

みんな大好きpoltergeistを使ってる。Rails4.1アップデートの過程でjs: trueなテストがこけて困ってたんだけどドライバのログを出すようにしたらなんかわかりそうな気がしてきた。 # spec/spec_helper.rb Capybara.register_driver :poltergeist do |app| op…

rails4.1

http://edgeguides.rubyonrails.org/4_1_release_notes.html 4.1からspringが最初から入ってるよ。 ターボリンクもそうだけどなんでもかんでもデフォになっていってバージョンアップのたびに敷居が高くなっている。やばい。

FactoryGIrlを省略するよ

rspec-core (2.13.1) factory_girl (4.2.0) # spec/spec_helper.rb .......... RSpec.configure do |config| config.include FactoryGirl::Syntax::Methods # 追加する ........... end ........... build(:hoge)、create(:bar)で呼べるよ。

delegate

delegateは委譲という意味で横流しにするイメージ。 やっていることはラッパーの自動生成な感じ。 class Greeter < ActiveRecord::Base def hello 'hello' end def goodbye 'goodbye' end end class Foo < ActiveRecord::Base belongs_to :greeter delegate …

Rails開発すると避けられないこと

git blame