【Ruby】部分文字列を取得する、文字列操作の世界

メソッドの呼び出し元メソッドをを取得する方法を探していたのですが、http://stackoverflow.com/questions/5100299/how-to-get-the-name-of-the-calling-method puts caller[0][/`.*'/][1..-2] というような表記がありました。実際うまく取得できるのですが…

【Rails】ajaxアプリをデバッグする(better_errorsを使い込む)

みなさまbetter_errorsは使っておりますか? 例外で止まったところのローカル変数等のを保持してくれた上で、 ブラウザ上でirbのようにコマンドを打って処理実行も行えるgemです。 さながら、CやJavaのデバッガで「ブレーク」させたような使い勝手で、 わた…

【Ruby】どこでメソッド定義されているかを調べる

Railsをはじめて触ったとき 3.daysのように書けてしまうので驚いた方も多いのではないでしょうか。Rubyでは、自分のソースコードの好きなところで class Numeric # Numericクラスにfoobarメソッドを追加する def foobar p 'foobar' end end 3.foobar => "foo…

【git】diffを見やすくする

git dff の差分行を色付きにする: git config --global color.ui truegit dffを色つきにした上で、差分が出た文言だけ隣り合わせに表示する: git diff --color-words

【Ruby】(bundlerを使った)gemの作成・運用・公開

よーしパパgemを作って公開しちゃうぞー( ー`дー´)キリッ(←) なときの備忘録です。gemを作るワークフローにはさまざまなモノがあり、作成ライブラリもいくつかあって複雑に感じやすいと思いますが、 下記のbundlerを使う方法が一番シンプルで分かりやすいと思い…

【heroku】プロセス管理コマンドあれこれ

よく使うものを、忘備録としてまとめます。特にワーカープロセスは時間課金・有料ですので、こまめに操作したほうがお財布にやさしいです(´・ω・`) $ heroku ps # 起動しているプロセスを確認する $ heroku ps:scale worker=1 # ワーカープロセスを1つにし…

【Heroku】任意のプロセスを再起動する

「Delayed Jobsが暴走しているっtっっっt(;ω;)再起動しなければっっt」なんて時のためのメモです。普通に「heroku restart」 してしまうと、rails側も再起動されてしまうんですよね。 今回の方法は、任意のプロセスのみ再起動させる方法です。まず、起…

【Heroku】ログを流す

ウェブプロセス(railsなど)を表示させる場合: −tオプションをつけると、ログがリアルタイムに表示されます。 heroku logs -t バックグラウンドで動いているワーカープロセス(DelayedJobs)などを監視する場合: heroku logs -t -p worker

【Rails3.2】uniqメソッドを使った際に、ActiveRecord::StatementInvalidが発生してしまう場合

Rails3.2から導入されたActiveRecord::Relation#uniq はとっても便利で、 records.select(:name).uniq と書くだけで、ユニークなnameの一覧が取得できます! (recordsは何かしらレコードの集合です。) でも records = Client.order(:address) : records.sele…

update_allメソッドって便利だなー

where()などで必要な複数レコードを抽出しておいて、一括で値変更できます。 (ActiveRecord::Relationのメソッドとして実装されてる)いままでsql直書きしてたよ。。(´・ω・`) その前は、eachをレコード分実行して値書き換えてたよ。よくないよね。。(´;ω…

【Ruby】条件分岐をワンライナーで書く

def special_or_normal @current_user.special? ? "special" : "normal" end special? がtrueならspecialを返却、そうでなければnormalを返却。 ?で条件分岐して、 : で分割して列挙する。 以下のコードと同じ。 def special_or_normal if(true == @current_…

【Rails】rakeで使えるタスクを調べる

$ rake --tasks

【Rails3】開発中にRailsを再起動しないといけないときは?

RailsはDevelopmentの場合、ブラウザから要求があるたびにクラスを読み込み直してくれるので、Railsを再起動せずとも加えた修正が反映されます(*´ω`*) でも、下記3ケースの場合は修正が反映されないので要注意です。 (1)config/* が書き換わった場合 (2)lib…

【Javascript】PhantomJSで簡単スクレイピング

http://code.google.com/p/phantomjs/ Javascriptで動作する「ヘッドレスブラウザ」 参考URL http://d.hatena.ne.jp/karasuyamatengu/20110126/1296066287これをスクレイピングに使ってみます。JQueryも使えて楽しい。 今日はこのPhantomJSを使って、【コマ…

【git】他人が作ったリモートブランチが見えないときは

共同で開発している方に、 (*´ω`*)githubにつくっといたからそこにコミットしといてー」 なんて言われることはよくあると思います ですがリモートブランチを確認するためにgit branch -r しても、、、 $ git branch -r origin/master その、、fuwaなんてブ…

【Ruby】Unixの起動日数を取得する

days = open('|cat /proc/uptime').gets.split(' ')[0].to_i /(60*60*24) こんなかんじー。

【Heroku】コマンドラインでDBにアクセスする(rails dbconsole する)

herokuで生SQLを叩きたい場合です。heroku-sql-consoleというプラグインを使います。 URL:https://github.com/ddollar/heroku-sql-console $ heroku update した上で $ heroku plugins:install git://github.com/ddollar/heroku-sql-console.git して、 $ he…

【Heroku】master以外のブランチで動かす

$ git push heroku yourbranch:master

【Rails3】PaperClip & Amazon S3で、日本語ファイル名が使えない問題を解決する

PaperClipはRailsでアップロードするための便利ライブラリです。 (func09さんの言葉を借りると「便利すぎて鼻血がでそう」) 参考URL: http://www.func09.com/wordpress/archives/674保存先にAmazonS3も使えて大変便利なのですが、 日本語ファイルをアップロ…

【Rails3】rakeタスク一覧を表示する

いつも忘れちゃうのでメモ。。(´・ω・`) $ rake --task rake about # List versions of all Rails frameworks and the environment rake assets:clean # Remove compiled assets rake assets:precompile # Compile all the assets named in config.assets.p…

【Rails3】初期データをDBに投入する

$ rake db:fixtures:load とすると、RAILS_ROOT/test/fixtures/TABLE_NAME.yml のファイルがDBにロードされます。

【Ruby】【Mac】require 時dlerrorが発生する

RVMとRubyを入れなおした際、pg(postgresql用のgem)で「libpq.5.dylibがないよー」というエラーが発生してしまいました。 LoadError: dlopen(/Users/ユーザ/.rvm/gems/ruby-1.9.3-p125/gems/pg-0.13.2/lib/pg_ext.bundle, 9): Library not loaded: /Library/…

【Emacs風】Windows7上にて管理者権限で動作しているエディタ上でxkeymacsを使用する

何言ってるか分からないと思うが(ry 結論だけ書くと、エディタもxkeymacsも管理者権限にして起動すれば動くよ!== WindowsでEmacs風のキー操作を実現する「xkeymacs」というのを愛用してるのですが、 使えなくなってしまいました(´・ω・`)事の発端は W…

【Ruby】HTMLのテーブルで、ヘッダが〇〇の項目の値を取得する

<table> <tbody> : <tr> <th>営業時間</th> <td>10:00 ~ 20:00</td> </tr> : :というhtmlがあった際に、10:00 ~ 20:00という部分を取り出すには: require 'nokogiri' #html パーサ nk = Nokogiri.html(open(url)) hour = nk.xpath(//th[.='営業時間']/../td).text # hour => '10:00 ~ 20:00'</tbody></table>

【Rails3】クラス名から変数名を作る

タイトルだけじゃ何言ってるかわからねえと思うが、、(何「MyModule::Person」のようなクラスがあって、 変数名として「@people」ををつかうことってよくあるとおもいます。この時、「people」を自動で作りたい時ってありますよね(MyModuleで共通処理を書…

便利機能

model_instance.reload モデルインスタンス再読み込み。以下と同じ: model_instance = Model.find_by_id(model_instance.id) reload! railsコンソールでの再読み込み。ソース書き換えた時などに使う。Model.delete_all 全削除。Activerecord::Relationのメ…

【Ruby/UTF-8】正規表現で文字コード番号を利用する

ネット上の文字に含まれる「ノーブレークスペース(nbsp)」など、入力できない文字にも正規表現でマッチできる方法です。試しに、「ふわ」にマッチする正規表現をつくってみましょう。 STEP1: 文字コード番号を調べる 文字コード表サイトなどからコード番号…

【Rails3】テーブルのカラム名一覧を取得する

column_names()というメソッドがActiveRecord::Baseに用意されているので、それを使います。 ModelClass.column_names というように呼べば、カラム名の配列が取得されます。 もちろん「created_at」などRailsが勝手に作ったカラムも入っています。 === 何…

【Emacs】EmacsLisp 超基礎

RubyをEmacsで開発されている方も結構いるのではないでしょうか。 わたしもRinari超便利だよー(*´ω`*)っていう記事を読んで興味を持ったので、 久々にEmacs触っています。 で、動かすためにEmacsLispをネットからコピペして使ったりするのですが、、、 はて…

【Rails3】デフォルトポートを変更する

Railsでは、"rails s" コマンドを叩くとデフォルトポートである3000番で起動します。 "rails s -p 3001"のようにポート番号を指定することで明示的に使うポートを設定することも出来ますが、 「このアプリは"rails s"って打ったら無条件に4000番ポートで起動…