PerlerのRuby日記

Rubyとか

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

剰余算の自己代入の優先順位

よく変数に数を足し込むときには、+=を使う。 これと同じように掛け算、割り算も*=、/=が使えるけれど、この場合の四則演算の優先順位が気になったのでやってみたメモ。 a = 120 a /= 12 + 3 puts a #=> 8 # 120 / (12 + 3) = 8 # 120 / 12 + 3 = 13 b = 12 …

Capistrano3のデプロイのリポジトリ先を変更する

Capistrano3を使ってデプロイを行っているアプリがあったのだけれど、途中でgitのリポジトリを変更しなければならなくなってしまったので、そのときのメモ。config/deploy.rbのrepo_urlを変更する。 diff --git a/config/deploy.rb b/config/deploy.rb index…

SidekiqのWorkerクラス内でJobIDを知る

Sidekiq::Workerをincludeして使っているクラス内のperformメソッド内で自分のJobIDを知るには、self.jidで取れる。 class MyWorker include Sidekiq::Worker def perform job_id = self.jid puts job_id # some codes end end job_id = MyWorker.perform_as…

親メソッドのテスト

よくわからなくなったのでメモ。 メソッドを作ったのでテストを書く。 class H def hoge(flag) if flag "hogehoge" else "hoge" end end end describe H do describe "#hoge" do subject{ H.new.hoge(flag) } context "when flag is true" do let(:flag){ tr…

Rails Skeletonっていうのを作った

http://railsskeleton.herokuapp.com/いつもスケルトンのつづりを間違えてしまう。

単項演算子メモ

メモ。 Rubyには単項演算子が3つある。+と-と~だ。 ただし、これらは二項演算子と明確に区別されるので、オーバーライドするときには記号に@をつけて定義する。 class Fixnum def -@ -2 * self end end i = 5 puts -i #=> -10 ちなみに、左辺に値が存在しな…

Mac + Webkit + Rails + RSpec + Capybaraによるテスト

昨日のテストを、レンダリングエンジンにWebkit(QtWebKit)を使ってテストする。 こちらのいいところは、完全にheadlessなのでモニタがない環境でもテストしやすいところ。Gemfile group :test do gem 'rspec-rails' gem 'capybara' gem 'selenium-webdriver'…

Mac + FireFox + Rails + RSpec + Capybaraによるテスト

Macの環境で実際にブラウザを使ったテストがしたかった。 iOSビルドの関係でMacの上にJenkinsが載っていることもあるので。 FireFox インストール。 Gemfile 以下を追加して、bundle install。 group :test do gem 'rspec-rails' gem 'capybara' gem 'seleni…

Sinatraのエラーハンドリング

http://www.sinatrarb.com/intro.html#Error%20Handlingこちらを見ると例外はRackオブジェクトのsinatra.errorに入っているとあるが、ブロック引数としても受け取ることができる。 (バージョン1.4.4で確認) require "sinatra" # developmentモードでもデバッ…

初めてTravis CI使った

https://travis-ci.org/rightgo09/chamber 初めてTravis CI使った。CIさせるための.travis.ymlの設定ファイルの書き方があって 「またこういうルールを覚える作業が始まるお・・・」とダウナーにTravis CI: Building a Ruby Projectを見たらデフォルトでbund…

Chamberっていうbotをつくった

https://github.com/rightgo09/chamber外国人と英語でチャットしているときに、よく「ん?」となって辞書を引くのがしんどくなったので 翻訳してくれるbotをつくった。元ネタはこれ。 http://matome.naver.jp/odai/2136876483489139901Microsoftの翻訳APIが…

gemが突然見えなくなった

今日突然Jenkinsのあるジョブがエラーになってしまった。↓失敗してたジョブのコンソール表示 [error]: Missing 'redcarpet' gem for Markdown formatting. Install it with `gem install redcarpet`でもその直前にbundle installはしていて、そこにちゃんとr…

ensureはループ処理内でも動く

メモ。ensureはちゃんとnextとかbreakも捕捉してくれる。さすがensure。 %w[ normal raise next break ].each do |w| puts "===============================" puts "w: #{w}" begin raise if w == "raise" next if w == "next" break if w == "break" rescu…

配列の中にハッシュがひとつ

知らなかったのでメモ。 こう書くと users = [ id: 123, name: "Yamada", age: 21, ] こうなる。 p users #=> [{:id=>123, :name=>"Yamada", :age=>21}]