RailsのActiveRecord風にJSONを操作するnpmモジュール「activeJson」を作ってみた

スポンサーリンク
Pocket
LINEで送る

最近npmモジュールを作った。

というか作っている最中である程度機能は仕上がってきている。

何を作っているのかというとタイトル通りでactive record風なJSONクエリエンジン。

komayuki/activeJson

 

使い方

まずはインストールといいたいとこだが、まだ完成していないのでnpmに公開していない。

githubからcloneして使ってほしい。

 

まずは読み込み、操作したいオブジェクトを引数に渡す

var activeJson = require('activeJson')
activeJson(obj)

 

探索系クエリ

find

find_by

where

今のところこの三つの基本的なメソッドを実装してある

 

activeJson(obj).find(3)

こちらはobj内にidのキーがないと動作しない。また内部で二分探索を行っているのでidは昇順になってある必要がある。

 

activeJson(obj).find_by({name: 'jone'})

find_byはオブジェクトを渡す。

これで、nameがjoneの値を1件取得してくれる。

 

activeJson(obj).where({name: 'jone'}).where({name: 'bob'}).execute()

whereメソッドはメソッドチェーンが可能。最後にexecuteで値が返ってきます。
ここだけactiverecordと違うところ。
メソッドチェーンをするにはthisを返してあげればいいのだが
チェーン時はthisをそれ以外は値を返すやり方がわからずこの方式にしています。

 

selectもあります。

activeJson.select(['name', 'age']).where({name: 'jone' }.execute()

このように配列を渡すと指定したキーだけ返ってきます。

スポンサーリンク

SQLと違ってselectするからパフォーマンスが上がるわけでもなくむしろ処理が増えるので落ちるかもしれません(そこまで影響ありませんが)

 

こんな感じでactiverecord風にjsonを操作できます。

他にもdeleteやcreateやallなどのメソッドも用意してあるのでgithubの方を見てみてください。

空いた時間に作っているので、開発スピードは早くはないのでここをこうした方がいいとかあったらガンガンプルリクしてください。