リア充爆発日記

You don't even know what ria-ju really is.

ruby

Ansibleでrbenvのplaybookを書いてハマったことなど

あらすじ 新規にAWSでRailsアプリをホストするぞ、となったリア充は、dockerでプロビジョニングのデバッグ環境を作ったものの「プロビジョニングツールはChefでいいのか?」という迷いが常にあった。このタイミングでかねてから耳にしていたfabricとAnsible…

rubyでループを1から始める

10.times do |i| p i + 1 end のi + 1が可読性悪いというときの話。 で、 (1..10).each do |i| p i end こんな感じで書ける。 さらに・・・ 1.upto 10 do |i| p i end こっちはrubyっぽいけど、実際コードの中にふっとでてくると、以外に頭に入ってこない(…

今使っている+今度使ってみたいGemリスト 2014年 夏 ver.

使っているやつ 使っているやつはGemfileを晒す。なお、複数プロジェクトのGemfileをマージしたものなので、全部同時に使ってるわけじゃない。 gem 'rails', '~> 4.1.4' gem "mysql2", "~> 0.3.16" gem 'bootstrap-sass', '~> 3.1.1.0' gem "sass-rails", gi…

Rspec2->Rspec3にバージョンアップしたときのメモ

仕様の変更部分とかそういうのは置いといて、実際に2.14.xで運用していたRailsアプリを3.0.xにアップデートしたときの作業メモ。無くなったメソッドなどは書き換えで対応することとし、後方互換のためのgemなどは一切使わぬゆえ。なので、3へのアップデート…

rubyのstrftimeとかで0なしの月や日を表示する方法

マイナスを入れるだけ。 @user.birth_date.strftime("%Y年%-m月%-d日") マイナス思考から すぐに抜け出す9つの習慣作者: 古川武士出版社/メーカー: ディスカヴァー・トゥエンティワン発売日: 2012/11/14メディア: 単行本(ソフトカバー) クリック: 8回この…

RubyでEnumを使いたかったらenumerize

追記)この記事古いので、Rail4.1以上を使う場合は、ActiveRecord::Enum使ったほうがいいと思います。https://github.com/brainspec/enumerize結論からいうと、これはいいです。 例えば職業や性別なんかのDBで管理するほどのもんじゃないものはコレで扱うと…

rbenvで新しいrubyのバージョンをインストールしようとしてエラーが出たときのメモ

homebrewの人でrbenv intall 2.0.0-pxxxでこけてエラーログがこんなだったら・・・ 1 warning and 1 error generated. make[2]: *** [readline.o] Error 1 make[1]: *** [ext/readline/all] Error 2 make[1]: *** Waiting for unfinished jobs.... ~~~ ld: w…

rubyで2点間のランダムな緯度経度を生成する

http://stackoverflow.com/questions/12846099/create-a-random-set-of-latlngs-inside-a-boundingbox rng = Random.new(seed) lat = minLat + rng.rand * (maxLat - minLat) lng = minLng + rng.rand * (maxLng - minLng) 劇場版 魔法少女まどか☆マギカ [前…

capistranoでdeploy:cleanがハングする

CentOS6.3で発症。パスワードを聞かれて入力したあと、タイムアウトするまでハングする。 https://github.com/capistrano/capistrano/issues/474capistrano-2.15.3/lib/capistrano/recipes/deploy.rb task :cleanup, :except => { :no_release => true } do …

gem updateができない-certificate verify failed

gemのバージョンが2.0.2だったので最新の2.0.3に上げようとgem updateをやったが反応がない、ただのしかばねのようだ。 $ gem update --system Latest version currently installed. Aborting.gemのupdateは実際にはrubygems-updateが使われているらしいので…

capistranoでステージングとか本番環境とか使い分ける

これで動いた!さくらのVPS+github+capistranoでrailsアプリ自動デプロイの設定ファイルを置いておくの続き的エントリ。このさくらのVPSの環境をstagingに変更していく、という内容。 参考 http://d.hatena.ne.jp/ria10/20121211/1355192518 https://github.…

vagrantのチュートリアルをやったログ

chefのレシピを作る環境が欲しくて、サラの状態からのテストとかしたいからローカルじゃきついのでVirtualBoxを使った環境を作ろうとしたところ、Vagrantというツールがアツいという話を思い出し、チラ見したらマジでアツそうだったので導入することにした。…

Ruby2.0でchefを動かそうとするとkernel_require.rb:45:in `require': cannot load such file -- rubygems/format

chefをインストールして何かしようとするとエラーになる。 [ec2-user@ip-10-xxx-xxx-xxx ~]$ chef-solo -v /home/ec2-user/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- rubyge…

JavaでDeflateしてBase64したやつをRubyでBase64してInflateできるか確認

ちょいと多めのテキストデータをサーバに送るとき、帯域を抑えたいからDeflateしてBase64して送ろう!と思ったが、バグとか基準にしているRFCが違うとかそういうのでサーバサイドであるRubyと相互変換できなかったらヤだなぁと思って試してみた。deflate and…

Rails3でhas_manyなmodelをjsonで返したいときー

ここ嫁 http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.htmlつまり、これがツイッター風なデータモデルだったとして、Userと一緒にUserのTweetがネストされたJsonデータを返したいとなるとmodelが class User < ActiveRecord::Base 〜 sn…

rails3 ajax post うまくいかない

原因はこれじゃないか!? Rails 3.0.4と2.3.11からXHRリクエストの際もCSRFトークンの検証が必須になったので注意ということで何も意識しないとCSRF対策にひっかかるので、crsf-tokenを渡そう。 var csrfToken = $('meta[name="csrf-token"]').attr('conten…

Capybara::ElementNotFound: cannot select option, no option with text 'hoge' in select box 'fuga'

このエラーメッセージでぐぐってきた人に伝えよう。RTFM! http://rubydoc.info/github/jnicklas/capybara/Capybara/Node/Actions#select-instance_methodfill_inを使ったテストに慣れてきてselect boxとか他のコントローラもやってみっか!とオラわくわくし…

Railsのlink_toでブロックごと囲む方法

ここでlink_toで検索して出てくるページのExampleに出てる http://api.rubyonrails.org/ <%= link_to(@profile) do %> <strong><%= @profile.name %></strong> -- <span>Check it out!</span> <% end %> # => <a href="/profiles/1"> <strong>David</strong> -- <span>Check it out!</span> </a> こういうこった!追記)続編:railsのlink_to_ifにブ…

Rails3+RSpec+Capybaraでログイン中のテストをする方法

ログインしなきゃいけない画面だったり、同じ画面でも、ログインしているのとしていないのでは挙動が違う画面はたくさんあって、そういうときのテストはどうやったらいいんだろうという疑問が発生した件について。答えはここに。 http://ruby.railstutorial.…

Railsでどう実装したらいいかわからないならRailsCastsを見ればいいじゃない

http://railscasts.com/ ここマジで捗る。ここで、実装したい内容をキーワード検索すればいいから。え?英語ですよ。もちろん。 でもたぶん読めるから。がんばって!!

Could not determine content-length of response body. Set content-length of the response or set Response#chunked = trueとassetのログがウザい件

devlopment.logとかに Could not determine content-length of response body. Set content-length of the response or set Response#chunked = trueとでるワーニング。何か問題があるのかと思ったけど、よく考えたら最初からでてるしなぁ。と思って調べてみ…

RSpecでletを使う2つの理由

RSpecを使って最初にぶつかるのがletな人はぼくだけかも知れないけど、とにかくメモ。参考はこのサイト。 http://ruby.railstutorial.org/chapters/modeling-users?version=3.2#sidebar:let require 'spec_helper' describe User do before do @user = User.…

Herokuをステージング環境として使うときのTIPS

http://devcenter.heroku.com/articles/multiple-environments ここに書いてあるよ! heroku create --stack cedar --remote stagingstackがcedarはrails3.1以上のナウい人向け。see:http://devcenter.heroku.com/articles/rails31_heroku_cedarあとは git p…

RSpecを英語で書くべき3つの理由

RSpecの条件文を日本語で書くケースがあるようだけど、そんなのノー!ノー!No!No!ノン! RSpecは英語で書いてこそ TDDじゃなくてBDDなんだから!で、RSpecはbehaviorは英語で書く前提になってるんだから! it "ほげほげであること" doって文章的におかしいで…

bundle execを打つのに疲れたとき

rvmを使っていればカンタンだぴょーん。 $ rvm get head && rvm reload $ chmod +x $rvm_path/hooks/after_cd_bundler $ cd ~/path/to/project_dir/ $ bundle --binstubs=./bundler_stubsこれでもうbundle execって打たなくていいよ! bundleするgemが増えて…

rails3.1でannotateが入らないときは

rake0.9の問題なんじゃねーか、とかなんとか。 https://github.com/ctran/annotate_models/issues/28で、この問題は2.4.1.beta1で回避されているのでこれを指定すべし。 group :development do gem 'rspec-rails', '2.7' gem 'annotate', '2.4.1.beta1' end

本を買いたくない人のためのRuby学習参考サイト

新しく言語を学習しようとするときは、まず文法などを包括的に知るのが良いと思う。で、それには本を買うのが手っ取り早く、人に聞いてみると以下の本なんかがおすすめらしい。プログラミングRuby 1.9 −言語編−作者: Dave Thomas with Chad Fowler and Andy …

rails3でユーザー認証〜Devise〜

webサービスを作るときにけっこうな確率で必要かつ汎用的な処理の1つとして「ユーザー認証」がある。 ここに業務要件が入る余地は多くないので、オープン&フリーで良いものがあれば利用したいなぁ、と思いいろいろ探してみた。で、railsだとDeviseというラ…

RubyMine+rspec + rspec-railsでテスト環境を作ったメモ

ここにステップが書いてあるよ。 http://www.jetbrains.com/ruby/webhelp/using-rspec-in-rails-applications.html Depending on your particular version of Rails, different workflows are possible. If you are using Rails 3.0 and higher, it is recom…

Mac Book Airを買ってからRuby on rails3の開発環境を整えるまで

これが初Macな自分用メモ。充実させるぜ! ruby1.9.2+rails3.1+rubymineで各種インストール、設定など、やった順に! Macに関わること OSの再インストール 【MacBook Air買ってやったこと(その2)】Mac OS X(Lion)を再インストール 実はユーザー名(homeデ…