IT Office Nishimiyahara

個人用スマホから商用プログラミングまでなんでもお任せ下さい

JSON::RPC::Specをバージョンアップしました

   

@nqounetです。

先日公開したばかりですが、JSON::RPC::Specをアップデートしました。

Router::Simpleを使ってます

もともと、JSON::RPCRouter::Simpleを使っていた事もあって、JSON::RPC::SpecでもRouter::Simpleを使って書いていました。

ところが、せっかくマッチングできるのに、その結果を利用できなかったので、マッチング後のハッシュをリファレンスで渡すようにしました。これができないとRouter::Simpleを使っている意味がありません。

マッチングを使ったmethodはこのように書くことができます。

これまでMojoliciousばかり使ってきたので、Router::Simpleがどんな事をするのかも、よくわかっていませんでした。

というか、Mojoliciousのようにcontrollerとかactionを指定すると、Moduleに紐付ける機能があると思っていたのですが、そういうものではなく、条件とデータを設定しておくと、マッチした時にそのデータを取り出してくれる、とてもシンプルな機能のものでした。

使い方がわかると便利さがわかりますね。

JSON::RPC::Specにも、Router::Simpleのエッセンスが使えるようになりました。

如何でしょうか?

JSON::RPC::Dispatchは高性能

JSON::RPC::Dispatchは、Router::Simpleの機能をうまく使っていると思いました。

予めデータとしてhandleractionを指定しておくと、その2つから実行するべき関数を上手に呼び出してくれます。

handlerにインスタンスを渡しておくと、そのインスタンスからactionのmethodを呼び出してくれます。

そして、handleractionは単なるハッシュのキーなので、マッチングに使っておくと、JSONで指定した関数を呼び出すこともできます。

上記の場合、package MyApp::Echoにある、{action}にマッチした関数が呼び出されます。

自前でこういうのを実装するのは結構面倒なので、柔軟に処理を振り分けたい場合はとても便利ですね。

respo

respo link

ZenBackWidget

 - 情報技術について , , ,