Hatena::Groupnadesiko

そっとなでしこ RSSフィード


メインのブログに書くまでもない、なでしこ学習帳【記事一覧】 【このブログは何?】


特設!→【目次】なでしこ用Twitter 連携ライブラリ「なこったー」で遊ぶ


2010-06-20

グループの動的生成サンプル

| グループの動的生成サンプル - そっとなでしこ を含むブックマーク はてなブックマーク - グループの動的生成サンプル - そっとなでしこ

 今、twitterや、はてなハイク、はてなブックマークを引用するツールを作ってますが、それを意識して、グループを動的生成するサンプルを書いてみました。

■ソースコード

取得URLS=「http://b.hatena.ne.jp/mame-tanuki/20100619#bookmark-22338843
http://h.hatena.ne.jp/mame-tanuki/9236558820386233784
http://twitter.com/mametanuki/status/16532462281
http://hoge.cn/hoge/hoge
」

取得URLSを反復
  取得URLはそれ。
    取得URLをつぶやき仕分けして、つぶやきに代入。
    もし、つぶやき→サービス名が「対象外サービス」でないならば
    つぶやきをつぶやき整形出力。
    それを表示。
    ここまで。
ここまで


#-----------------------------------------------------------------------
# グループ定義
#-----------------------------------------------------------------------
■対象外サービスとは
  ・サービス名
  ・URL
  ・作る~
    サービス名は「対象外サービス」
#-----------------------------------------------------------------------
■ツイッターとは
  ・サービス名
  ・URL
  ・作る~
    サービス名は「ツイッター」
#-----------------------------------------------------------------------
■Hatenaハイクとは +ツイッター
  ・作る~
    サービス名は「はてなハイク」
#-----------------------------------------------------------------------
■Hatenaブックマークとは
  ・サービス名
  ・URL
  ・作る~
    サービス名は「はてなブックマーク」

#-----------------------------------------------------------------------
# 関数定義
#-----------------------------------------------------------------------
●つぶやき仕分け(URLを)
  URLからURLドメイン名抽出して、取得ドメインに代入。
  取得ドメインで条件分岐
    「twitter.com」ならば
      生成グループをツイッターとして作成。
    「h.hatena.ne.jp」ならば
      生成グループをHatenaハイクとして作成。
    「b.hatena.ne.jp」ならば
      生成グループをHatenaブックマークとして作成。
    違えば
      生成グループを対象外サービスとして作成。
  ここまで
  生成グループ→URLはURL。
  生成グループで戻る。

●つぶやき整形出力({グループ}対象グループを)
  出力TXTは、「・【{対象グループ→サービス名}】<{対象グループ→URL}」。
  出力TXTで戻る。

■コメント

■グループ定義

 作成中のツールでは、twitterや、はてなハイク、はてなブックマーク各々からログを取得する処理をグループで定義しようと考えています。はてなハイクのログ取得は、twitterAPI互換のはてなハイクAPIを使います。なので、はてなハイクのグループは、twitterグループをミックスし、共通化できる記述はまとめようと考えています。

 ちなみに、グループ名として「はてなハイク」とか「はてなブックマーク」が利用できなくて少し戸惑いました。日本語プログラミング言語であるなでしこでは、「は」は代入の演算子として使われるのでプログラム内の要素名に使えないみたいなんですね。で、泣く泣く「Hatena~」みたいな命名になっています。

■コンストラクター

 前回の記事に載せたソースコードでは、グループのメンバー関数として「定数値設定」なんてのを定義してましたが、これはコンストラクター「作る~」にやらせれば良いんですね…orz

■関数「つぶやき仕分け」

 この関数は、デザインパターンのFactoryパターンでのFactoryクラスっぽい機能をさせようと定義した関数です。あくまで「っぽい」ですが…orz

 引数として渡されたURLに応じて、twitterや、はてなハイク、はてなブックマークの各グループの内から適切なグループを選択し、そのグループを動的に生成。それを戻り値として返します。

 ちなみに、関数内でのクラス生成は動的生成となることを知らず、「【変数】とは【グループ】」と記述してしまい、しばらくの間「命令の未定義、プラグイン不足の可能性もあります」みたいな原因不明のエラーに苦しめられました…orz

 もし、関数内で動的に生成したい場合などは、『作成』命令を使います。そして、動的に生成したメンバにアクセスするには、『(変数名)→(メンバ名)』あるいは『(変数名)@「(メンバ名)」』のように、変数にメンバが属することを明示する必要があります。

●グループ分け(オブジェクト指向ライク)|日本語プログラミング言語なでしこ

http://nadesi.com/doc/syntax/1-5-group.htm


【関連記事】