Receiboが便利すぎて、機能追加してしまったお話。
追加した機能
「いま、何買った?」の入力欄に過去の購入履歴を検索する機能を付けました。いつも同じような項目を入力するので、会社行き帰りのコンビニ買物後の入力が怠くて仕方なかったんですよね。
んで、その日も帰りにコンビニ寄った際に、めんどくさいなー、もう作っちゃおうかなーと思ったのがきっかけです。その帰りにスタバに寄って作りました。
「いま、何買った?」をクリックするだけで、履歴から項目が選べるようになりました。便利ですね。
準備
機能追加の準備です。
forkします。
githubにあるreceiboのrepositoryで[fork]ボタンをポチッとな。
んで、forkしたものをcloneしたんですがrubyのバージョンなんだろな、と。@shu_0115さんにバージョン確認したら、blogの記事があるとのことで、Receibo開発舞台裏 - プログラマ編を参考にしました。urlが*.heroku.com
なので、Bamboo Stackを調べるとRubyのバージョンは大体想像は付きます。(Aspen Stackということもありうるのかな?)
gemsetを用意
最近は、デフォルトをruby-1.9.3-p125
にしていたので、まずは1.9.2にして、receibo用のgemsetを作って作業。
rvm use ruby-1.9.2-p180 rvm gemset create receibo rvm use ruby-1.9.2-p180@receibo
やるべきこと
READMEを見れば、たいてい書いてあって素晴らしいなと思いました。
bundle install
touch config/local_setting.rb
なんか適当に作ったtwitterアプリのCONSUMER KEYとCONSUMER SECRETを設定
LOCAL_OAUTH_CONSUMER_KEY = "YOUR_CONSUMER_KEY" LOCAL_OAUTH_CONSUMER_SECRET = "YOUR_CONSUMER_SECRET"
localにdatabaseを作って
bundle exec rake db:setup
サーバ起動
bundle exec rails s
作る作業
やったことは、
- 履歴表示用のactionをcontrollerに生やす
- javascriptで入力欄に履歴を出す
- cssの調整
ぐらいです。
差分はこちらです。実際取り込まれた差分はこちらを見てもらえると良いです。
@shu_0115さんとやりとりをして、履歴全件持ってくると大変なことになるよねー、とか数値入力を数字だけにすると-入力の裏技使えなくなるよねーとか、いうお話をして取り込む部分の相談をしました。
困ったこと
- rails3.0だったので、いろいろ忘れていた
- assetsがない!あ、そうか。
- prototype.jsのままだったので、最初びびった。
- 調べてみたところ、結局、jsはそれほど使ってなかったので、jQueryに置き換えました。
pull request
pull request時は、GitHubへpull requestする際のベストプラクティスを見つつ、rebase -i
を駆使してコネコネしてから送りました。
その後のtwitter
こんな感じで、ドキドキpull requestを送って
@shu_0115 receiboにpull request送りました。なんか初めてのpull requestでよくわかってないところあるのでおかしいかも知れないです。その際は、それとなくお伝えください。&pull requestそもそも受け付ける予定なかったりしたらすみません。
— PP worksさん (@ppworks) 4月 4, 2012
いろいろやり取りした後に、このように告知して頂きました。
#receibo Receiboに @ppworks さんのPullRequestにより、入力履歴機能が付きましたー。
— 松本瞬/Shun Matsumotoさん (@shu_0115) 4月 9, 2012
まとめ
自分が使っているサービスのソースが公開されている場合は、欲しい機能は言うだけでなくて、作ってしまえば良いというソーシャルコーディングの楽しさを初めて実感しました。今後もこういったソースが公開されているサービスが増えると良いなと思います。