Hatena::Groupmobilehacker

tokuhiromの日記 RSSフィード

 | 

2008-01-16

HTML::MobileJp とはなんだったのか 01:40 HTML::MobileJp とはなんだったのか - tokuhiromの日記 を含むブックマーク はてなブックマーク - HTML::MobileJp とはなんだったのか - tokuhiromの日記 HTML::MobileJp とはなんだったのか - tokuhiromの日記 のブックマークコメント

えーっと要するに GPS の a タグを生成しまくるのが面倒だったのでつくったっていうはなしなんですが。

    [% USE HTMLMobileJp %]

    [% IF mobile_agent.is_non_mobile %]
        this is not a mobile phone.
    [% ELSE %]
        [% HTMLMobileJp.gps_a({
            carrier      => mobile_agent.carrier,
            is_gps       => mobile_agent.gps_compliant,
            callback_url => url,
        }) %]
            Send Location Information
        </a>
    [% END %]

とかで、適当に GPS 情報送信機能つき a タグを生成してくれる。便利じゃね。

wassrmobirc でコードをコピペしつつメンテするのが面倒すぎたから作らざるをえなくなっただけだけど。

最初は id:yappo さんに煽られて Template::Declare::TagSet::MobileJp つくろうと思ったんですが、スケルトンまでつくたところで、「あれ、おれ Template::Declare つかってなくね」ということに気付いたので、Template-Toolkit でつかいやすいように作った。


Template::Plugin::HTMLMobileJp に、タグ生成機能をがっつり埋めこんでもよかったのだが、まあ TT に依存しないで作れそうな部分の方が多かったんで、HTML::MobileJp というモジュールをつくって、T::P::HTMLMobileJp はそれのラッパーという扱いにしてみた。こういう時に、ごっつりと埋めこんじゃって、後になって悲しい思いをする、という経験をたくさんしてきて今の自分がいます(笑)

Sledge::Plugin::* でそういう現象は顕著で、Sledge::Plugin::Valiator とかは実は Sledge に依存してない機能の方がおおいのに、Sledge にべったりくっついてるから Catalyst で同じコードベースで validation できない、とか。なんか、そういうのって嫌だから、できるだけそういう関係ないところで密結合するのはやめたいなーと思う。

テストもしにくくなるし。

CPAN モジュールの数を稼ごうとして別モジュールにしたわけじゃないよ。

 |