Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2006-09-11

[プラポケ][Rails]グレード別のスケジューリング

実装が面倒だと思っていたけどこれだけでいいかも。 プレイヤーの grade は対戦後ポイントに応じて設定しておく。

def grade_is(grade)
  { :find   => {:conditions => ["grade = ?", grade]},
    :create => {:grade => grade                    }, }
end

def create_schedules
  grade_max = 3
  (0..grade_max).each do |grade|
    Schedule.with_scope(grade_is(grade)) {
      Player.with_scope(grade_is(grade)) { _create_schedules }
    }
  end
end

Ruby会議で舞波たんに教えてもらって以来お気に入りの with_scope 。 こうやってネストして書くしかないのかな。