RPGVX.net

  RPG-Maker VX => VX Skripte [Fertiger Code] => Thema gestartet von: Hanmac am April 15, 2009, 23:06:54

Titel: getter and setter for class_variables
Beitrag von: Hanmac am April 15, 2009, 23:06:54
hier ein snipplet zum fixen erstellen von methoden die auf klassen variablen zugreifen

Code: (1. version: with eval) [Auswählen]
class Module
 
 def akkr_reader(*args)
  args.each{ |sym| class_eval("def #{sym}; return @@#{sym}; end;") }
 end
 
 def akkr_writer(*args)
  args.each{ |sym| class_eval("def #(sym}=(value); return @@#{sym}=value; end;") }
 end
 def akkr_accessor(*args)
  akkr_reader(*args)
  akkr_writer(*args)
 end
end

Code: (2. version: without eval but with more evil) [Auswählen]
class Module
 
 def akkr_reader(*args)
  args.each{ |sym| define_method(sym) { Object.instance_method(:class).bind(self).call.send(:class_variable_get,"@@#{sym}") } }
 end
 
 def akkr_writer(*args)
   args.each{ |sym| define_method("#{sym}=") { |value| Object.instance_method(:class).bind(self).call.send(:class_variable_set,"@@#{sym}",value) } }
 end
 def akkr_accessor(*args)
  akkr_reader(*args)
  akkr_writer(*args)
 end
end

credit:
ich denke nicht das es credit würdig ist, aber könnt ihr ja trotzdem machen
SimplePortal 2.3.3 © 2008-2010, SimplePortal