無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

ライブラリにサンプルを書く上手いやり方

Rubyのライブラリで、たまに次のようなコードが最後に付いているソースを見かけます。

... ライブラリの実装(省略)

if  __FILE__ == $0
  
  ... ライブラリのサンプルコードらしきもの
end

何かと思ったのですが、こうしておくと

  • ライブラリがrubyで直接実行された場合のみ、サンプルコードを実行
  • require」等で読み込まれた場合は、実行しない

というふうにできるみたいです。

  • 疑似変数の「__FILE__」は現在実行しているプログラムのパスを返します。requireしたソース内で実行すると、「requireしたソースのパス」となります。
  • 組み込み変数「$PROGRAM_NAME($0も同じ)」は、現在実行中のRubyスクリプトの名前を返します。requireしたソース内で実行してもメインプログラムのパスを返します。
  • なので、「__FILE__ == $0」がtrueになるのは、ライブラリがrubyで直接実行された場合のみになります。

これで、手軽に実行できる && ライブラリとして利用する場合実行しない、というサンプルの用件をスマートに満たせる訳です。なるほどー。