次のコードを書きました。
class Actions
def initialize
@people = []
@commands = {
"ADD" => ->(name){@people << name },
"REMOVE" => ->(n=0){ puts "Goodbye" },
"OTHER" => ->(n=0){puts "Do Nothing" }
}
end
def run_command(cmd,*param)
@commands[cmd].call param if @commands.key?(cmd)
end
def people
@people
end
end
act = Actions.new
act.run_command('ADD','joe')
act.run_command('ADD','jack')
puts act.people
これは機能しますが、@commands
ハッシュがクラス変数の場合、ハッシュ内のコードは@people
配列を認識しません。
@commands
ハッシュをクラス変数にして、特定のオブジェクト インスタンス変数にアクセスできるようにするにはどうすればよいですか?