Sooey

2012-07-20 10:17:30 +0900

npmpackage.jsonにgitリポジトリを指定する方法。

パッケージ管理にnpmを使っているnodeアプリのpackage.jsonに、

  "dependencies": {
    "hubot": "2.3.0",
    "hubot-scripts": ">=2.1.0",
    "hubot-hipchat": ">= 1.0.8",
    "optparse": "1.0.3",
    "xml2js": ">= 0.1.14",
    "jsdom": ">= 0.2.14"
  }

このように依存ライブラリが記述されている場合に「hubot-hipchatをforkしてパッチをあてたものを参照させたい」といったケースでどうするか。

  "dependencies": {
    "hubot": "2.3.0",
    "hubot-scripts": ">=2.1.0",
    "hubot-hipchat": "git://github.com/juno/hubot-hipchat.git",
    "optparse": "1.0.3",
    "xml2js": ">= 0.1.14",
    "jsdom": ">= 0.2.14"
  }

バージョン指定のかわりにgitリポジトリのURLを指定してnpm installすればOK。Herokuへのデプロイ時にもちゃんと指定したリポジトリのコードが取得されました。

2012-06-18 14:19:26 +0900

Rails 3.2でネストしたモデルの属性名をI18nで翻訳する。

上記のように、あるモデルがaccepts_nested_attributes_forで他のモデルの属性を受け取れるようにしている場合、Userが持つpostsの属性名をバリデーションなどで国際化されるようにするにはconfig/locales/*.ymlで、

のような階層を定義すればよい。

2012-05-17 04:06:58 +0900

deviseとsorceryのコード規模比較

devisesorceryという2つのRails用認証ライブラリのどちらを採用するか絶賛悩み中。あとから差し替えるのは難しそうな部分でもあるので、できるだけ慎重に選びたいところ。

とりあえず機能面での差異はおいといて、2つのライブラリのコード規模を比較してみた。

コード

対象 ファイル数 行数
deviseのapp/lib/ 63 5,062
sorceryのlib/ 47 3,332

テスト

対象 ファイル数 行数
deviseのtest/ 87 7,238
sorceryのspec/ 118 4,772

どちらもテストコードのほうが行数が多いのは予想どおり。なんとなくdevisesorceryの倍くらいのコード行数があるかなと思っていたけど、それほどでもなかった。

あとは行数だけでなくコードの分かりやすさも見たうえで、どっちにするか決めよう。

2012-04-01 13:48:02 +0900

国内のニュースサイトのフィードを半年ほどまったく購読しないでいたのですが、あまりニュースに疎いのもどうかと思い、はてなブックマークを利用して「20users以上のブックマークがついた記事」だけのRSSを購読するようにしてみました。

たとえば、INTERNET Watchの場合は以下のようなURLにアクセスすると、20users以上のエントリだけを含むページが表示されるので、

http://b.hatena.ne.jp/entrylist?threshold=20&url=http://internet.watch.impress.co.jp/

ページの左下にあるRSSリンクをクリックしてフィードを購読します。

海外メディアの場合はあんまりフィルター効果はなさそうですが、国内の主要なニュースサイトだと、わりと有用な記事だけを拾うことができている気がします(メディアによってthresholdの値は調整したほうがよい)。