baronyan's blog

linux,macでruby、railsでの開発をしていく中で知ったこと、備忘的なことなどを書いていきます。

Ruby

Nokogiriでhtmlソースを取得するメソッド

contentメソッド または bodyメソッド (紛らわしいが、bodyメソッドはbodyタグ内だけが取れるわけではない)

redirect先のURLを取得するスニペット

Net::HTTP.get_response(URI.parse(#{url}))["Location"]

cronでbundlerとrvmを使う

cronのコマンドの最初にこれを実行しておくと、cronで対話型シェル同様にbundlerとrvmを使ったプログラム実行ができます。 source $HOME/.rvm/scripts/rvm; rvm #{ruby version};

irbで式評価値の出力を一時的に抑制する

conf.echo = false戻すにはconf.echo = true

Net::HTTPのリクエスト/レスポンスの中身を表示

http.set_debug_output $stderrget/postでハマった時はこれをon!

Net::HTTPでSSLアクセス

uri_string = 'https://hogehoge' uri = URI.parse(uri_string) http = Net::HTTP.new(uri.host, uri.port) if uri.port.to_s == '443' http.use_ssl = true end http.start do 以下略 証明書関連でこける場合には↓のページが参考になりそうです。 http://bl…

psでdelayed jobsのプロセスを見つける

ps -ef |grep jobs:wor[k] []で一文字囲むことで、このコマンド自体が検索結果に表示されるのを防止できます。

fizzbuzz単純解

(1..100).map{|a| a}.each_with_index.map{|org, i| if(org % 3 == 0 && org % 5 == 0) then 'fizzbuzz' elsif((i+1) % 3 == 0); 'fizz' elsif((i+1) % 5 == 0); 'buzz' else org.to_s end}

unicodeの方向制御文字(LRMまたはRLM)を除去する(ruby1.9)

#方向制御文字の除去 def self.removeLRM(str) return str.gsub(/[[\u200E][\u200F][\u202A][\u202B][\u202C][\u202D][\u202E]]/, '') end

gemのバージョン指定インストール

gem install hogegem -v 1.2たまにしか使わないと忘れてしまいますね。

ubuntu12.04でcapybaraを使う方法

QTをインストールします。 sudo apt-get install libqt4-dev libqtwebkit-dev Gemfileに下記を追記します。 gem 'capybara'gem 'capybara-webkit', "~> 1.0.0"gem 'selenium-webdriver' あとはbundle installすればcapybaraを使えるようになります。 下記が…

gsubの第二引数(置換後)にマッチ結果を指定する方法

通常 /regexp/ =~ str でマッチした結果は $1や$&等で取得可能です。 ところが、stringのgsub(置換メソッド)でマッチ結果を使う場合は 少しやり方が変わります。 str.gsub(/regexp/, '\1') これで第1マッチ結果を置換後の値として使用できます。 (通常は…

空白の削除

text.gsub(/[[:space:]]/, '') で全角半角(その他諸々)まとめて削除できます。 ([]は半角)

rvmでバージョンにaliasを付ける

例 rvm alias create hoge ruby-1.9.3-p392

gemのドキュメントをブラウザで見る方法

C:\ruby> gem server http://localhost:8808/で閲覧可能

gemの最新版だけ残す

gemでのパッケージ管理は便利ですが、バージョンアップした時に過去バージョンが残るので、最新バージョンが使いたいのに過去バージョンが使われてるーっ と悩ましい時があります。 そんな時は次のようにしてさくっと過去バージョンを消すと楽になれます。 g…

Delayed Jobのlogファイルを分ける

簡単に非同期処理を実現できてとても便利なDelayed Jobsですが、 logファイルを分けた方が何かと便利になります。 以下のような手順でlogファイルを分けることができます。 config/initializers/delayed_job.rb を作成する 次の行を追記する Delayed::Worker…