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

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

生成されているオブジェクト一覧の取得

Deamonizeのソースより。ObjectSpace.each_object()を使うと、生成されているオブジェクトの一覧を取得できます。引数でクラスorモジュールを指定すると、そのクラスorモジュールを継承するオブジェクトが列挙されます。

# ねこ
class Kitten
  def initialize( name, children=[] )
    @name = name
    @children = children
  end
  attr :name
end

# ねこを3x3作成。
kittens = []
3.times {|i|
  name = "kitten-" + i.to_s
  children = [
      Kitten.new( name + "child-1"),
      Kitten.new( name  + "child-2")
  ]
  kittens << Kitten.new( name, children )
}

# すべてのねこのインスタンスを列挙する。
ObjectSpace.each_object(Kitten) {|object|
  puts object.name
}

実行結果です。

kitten-2
kitten-2child-2
kitten-2child-1
kitten-1
kitten-1child-2
kitten-1child-1
kitten-0
kitten-0child-2
kitten-0child-1


クラス一覧がみたい!

ObjectSpace.each_object(Class) {|object|
  puts object
}

実行結果です。長いので途中まで。

Binding
UnboundMethod
Method
Proc
SystemStackError
LocalJumpError
Struct::Tms
Process::Status
Time
Dir
File::Stat
File
IO
EOFError
IOError
Range
MatchData
Regexp
...