Rubyで文字列中の数字をインクリメントする
"012345".gsub(/\d+/) { |num| num.to_i+1 } #=> "123456"
ActiveMerchantでPaypalのIPNを受取る
ドキュメントに完璧なサンプルがある。
IPNの送り元確認もやってくれる
http://rubydoc.info/github/Shopify/active_merchant/master/ActiveMerchant/Billing/Integrations/Paypal/Notification
ActiveMerchantでPaypalのExpressCheckoutをするには下記URLが参考になる
Twiwt:Blog / jugyo : Rails3 + Mongoid + ActiveMerchant で Paypal Express Checkout
サンプル
class BackendController < ApplicationController include ActiveMerchant::Billing::Integrations def paypal_ipn notify = Paypal::Notification.new(request.raw_post) order = Order.find(notify.item_id) if notify.acknowledge #ここでIPNの送り元と内容確認をしている begin if notify.complete? and order.total == notify.amount order.status = 'success' shop.ship(order) else logger.error("Failed to verify Paypal's notification, please investigate") end rescue => e order.status = 'failed' raise ensure order.save end end render :nothing end end
RailsのActiveRecordでレコード(モデル)のコピー
日記のコピーなどで、すでにあるレコードを元に別のレコードを作りたいときの話。
元となるレコードのattributesをコピーしてnewのテンプレートに表示してやればいい
def copy @old_entry = Entry.find(params[:id]) @entry = Entry.new @entry.attributes = @old_entry.attributes render :action => "new" end
Rails3.1でmigrationでカラムのデフォルト値を後から設定
change_columnを使えばいいようだ
class AddDefaultValuesToUsers < ActiveRecord::Migration def change change_column :users, :country, :string, :default => "Japan" end end
たのしいRuby第3版を読んで忘れてたこととか
- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/03/31
- メディア: 単行本
- 購入: 15人 クリック: 394回
- この商品を含むブログ (79件) を見る
Ruby会議でなんども”Joyful Ruby”の字幕とともにこの本が出てきたので第2版はもってるけど買うことにした。
忘れてたこととか、知らなかったことをメモ
print,putsには引数がいくつも渡せる
print "hello ", "ruby" #=> helloruby
文字列をシンボルにできる
"foo".intern #=> :foo
Class A を継承したクラスを1行で作る
Class.new(A)
catchとthrow
知らなかった…
catch(:foo) do loop do loop do throw :foo "でた" end end end #=> でた
ハッシュの作り方(1.9)
(1.9からはordered hashになってるらしい)
{a: "b", c: "d"} #=> {:a=>"b",:c=>"d"}
Hash#fetch
キーが登録されてないときの値を指定できる
a = {} a.fetch("key","no_data") #=> "no_data"
RubyKaigi2011に行ってきた(帰りの新幹線より)
最後のRuby会議であるRubyKaigi2011に名古屋からいってきました。
スタッフの皆さん。発表者の皆さん楽しく心地よいイベントをありがとうございました。
ジョジョ言語やらデプロイ物理ボタンぐらいしか自分のRubyプロダクトはありませんが、もっともっとコードを書きたい!今すぐ書きたい!となるぐらいたくさんの刺激を受けた二日間でした。
会場
筑波は遠いので練馬で嬉しかった。地方参加者の僕には上京するのは関東方面の知り合いと会う機会にもなるので都内なのはとてもうれしい
ノベルティ
バッグにシャツに豪華でした。学生枠の人が何もないのはかわいそうだなと思いました。若者こそ甘やかして洗脳すべき。
Rubyを利用した大規模ウェブサービスの開発・運用
cookpadの開発体制の話し。次にきいたgithubの話しと重複する部分が多く、相乗効果で説得力があった。テストとデプロイと、監視を両方とも徹底していたなあ
軽量Ruby
- 日立とは力を合わせないのか
- Matzがそんなにコードを書いてることに驚いた
日本の図書館はどのようにRubyを使っているか
この日一番面白かった。去年の事件のイメージを覆す進んだ図書館の話し。特に国会図書館がオープンソースで公開することを前提にシステム開発をしたというのが「やるじゃん!」と思った。
Rubyistだけで共有するのがもったいない発表ですのでぜひ多くのひとに見えもらいたい。
(とっころで神戸の図書館員さんにEmacsを強制的に使わせたエンジニアさんはだれなんだろう)
二日目
スカイツリーがみたかったので寄り道。ついでに浅草にもいったので昼前からの参加。
たのしいRails
さっそくコミットログを見るようしようとおもう
ヘッドのgemのバグ取りとか、ドキュメントの整理なら手伝えるかもと思った
BDD Style Unit Testing
次のRspecの話しと合わせて、こういう「やり方は調べればわかるんだけど、このやり方であってるのか不安」系のことで実践されている方々の話しはとても参考になる
The Gate
あの列車に僕も乗りたいと真剣に思った。
乗ってやろうと決意した。
懇親会
まとめ
スタッフの皆さんお疲れ様でした。旅行が苦手で3日間も一人で東京にいたくないので帰ります。最後の一日は名古屋から応援しています。発表者のみなさんもたくさんの刺激をありがとうございました。
東海道新幹線下り 浜松付近より
CakePHP1.3のWebTestCaseでfixtureを使う
sizuhiko - CakePHPのWebTestCaseでfixtureを使う:
http://my.opera.com/sizuhiko/blog/2009/10/01/cakephp-webtestcase-fixture
という素晴らしい記事があるのですが僕の1.3.10環境で動かなかったので動くようにした。
変えないといけないのは
2.上記ファイルの「CakeTest」 部分を 「FixturableWebBaseTest」に変換
これはお使いのエディタを開いて、置換機能を使えばあっという間に完了です。 app/vendors/webtest/ fixturable_web_base_test_case.php を編集してください。
の部分で、単純に置換してはダメでコピーした後にすることは
- dispatcher.phpの読み込みをやめる
- simpletest/unit_tester.phpを読み込む
- class CakeTestDispatcherを削除
- class CakeTestCase extends UnitTestCase {をclass FixturableWebBaseTestCase extends WebTestCase {にする。(置換するのはここだけ。一括置換すると不要なところまで置換される。)
あと、直接は関係ないですが最初1.3.0で試していたらbootstrapでApp::importができませんでした。