<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/xml.xsl" type="text/xsl"?><feed xmlns="http://www.w3.org/2005/Atom">
  <title>nulog, NULL::something : out of the headphone &gt; 2004 &gt; September &gt; 06</title>
  <link href="http://lowreal.net/logs/2004/09/06"/>
  <icon>http://lowreal.net/img/banner.png</icon>
  <link rel="self" type="application/atom+xml" href="http://lowreal.net/logs/2004/09/06.atom"/>
  <link rel="alternate" type="application/xhtml+xml" href="http://lowreal.net/logs/2004/09/06.xhtml"/>
  <updated>2004-09-06T15:41:56+09:00</updated>
  <author>
    <name>cho45(砂糖)</name>
  </author>
  <id>http://lowreal.net/2004/09/06</id>
  <entry>
    <title>Ruby PluginManager 3</title>
    <link rel="alternate" type="text/html" href="http://lowreal.net/logs/2004/09/06/1.html"/>
    <link rel="alternate" type="application/xml+xhtml" href="http://lowreal.net/logs/2004/09/06/1.xhtml"/>
    <updated>2004-09-06T01:54:22+09:00</updated>
    <published>2004-09-06T01:54:22+09:00</published>
    <id>http://lowreal.net/2004/09/06/1</id>
    <category term="prog"/>
    <content type="xhtml" xml:base="http://lowreal.net/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>initialize にディレクトリ渡して、それ以下のファイルを全て読むようにしてみる。ただし先頭にアンダースコア付いてるときは無視。一定時間ごとに <code>reload_if_modified</code> っつうのを呼び出せば勝手に読み込まれるし、アンダースコアをつければ勝手に開放される。</p>
        <p>結局宣言して、インスタンスを作成して適当なクラス変数につっこんだら直ぐに <code>remove_const</code> してみてる。</p>
        <p>さー<abbr title="Internet Relay Chat">IRC</abbr><abbr>BOT</abbr> で使ってみよう。</p>
        <p><abbr title="Ragnarok Online">RO</abbr> チャンネル用に告知巡回と鯖チェック・モンスデータ取得とか。モンスデータは今のところ回避しかやってないけど必中とかもやりたいもんだ。いちいちブラウザ起動するより早い。どっかに生のデータないのかな。ローカルで MySQL に突っ込んだらよさそ。</p>
      </div>
    </content>
  </entry>
  <entry>
    <title>class_eval のブロックを与えたときと文字列を与えたときの違い</title>
    <link rel="alternate" type="text/html" href="http://lowreal.net/logs/2004/09/06/2.html"/>
    <link rel="alternate" type="application/xml+xhtml" href="http://lowreal.net/logs/2004/09/06/2.xhtml"/>
    <updated>2004-09-06T15:41:56+09:00</updated>
    <published>2004-09-06T15:41:56+09:00</published>
    <id>http://lowreal.net/2004/09/06/2</id>
    <category term="prog"/>
    <content type="xhtml" xml:base="http://lowreal.net/">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>このメソッドの挙動がよくわからない。<code class="Ruby">PluginBase.class_eval(%Q|@@irc = irc|)</code> では思ったとおりだけど、<code class="Ruby">PluginBase.class_eval { @@irc = irc }</code> だと uninitilized class variable が出る。とりあえず前者にしとけば動くのでいいけど、なんか気持ち悪い。</p>
        <p>プラグイン側に <abbr title="Application Program(ming) Interface">API</abbr> を提供しようってわけだけど、そんなこと最初考えてなかったとかいうアフォさなので全てのプラグインの先祖としてインターフェイスを宣言している PluginBase のクラス変数に適当なメソッドを持ったオブジェクトを入れておけば、それにアクセスしてアレコレできんじゃねぇかなぁと。（継承したクラスとかでも全て共有されるし）</p>
        <p>上の <var>irc</var> は class_eval の前で <code class="Ruby">irc = self</code> とかやってるやつ。だからプラグイン側でオーバーライドしてる on_join メソッド内で <code class="Ruby">@@irc.notice(message, channel)</code> とかやればメッセージが送れるハズ。って自分で書いてて思うけど意味わからん。</p>
        <ins datetime="2004-09-06T16:29:45+09:00">
          <p>あぁ。もしや @@irc も外側ってことになってるのかな。</p>
        </ins>
      </div>
    </content>
  </entry>
</feed>
