diff options
Diffstat (limited to 'mrblib/class.rb')
| -rw-r--r-- | mrblib/class.rb | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/mrblib/class.rb b/mrblib/class.rb index 6d624ee83..57aac2f93 100644 --- a/mrblib/class.rb +++ b/mrblib/class.rb @@ -1,10 +1,23 @@ +class Class + def new(*args,&b) + obj = self.alloc + obj.initialize(*args,&b) + obj + end + def self.new(*args) + obj = super + obj.inerited + obj + end +end + class Module # 15.2.2.4.13 def attr_reader(*names) names.each do |name| name = name.to_s raise(NameError, "#{name.inspect} is not allowed as an instance variable name") if name.include?('@') || name.include?('?') || name.include?('$') - + attr_name = '@'+name define_method(name){self.instance_variable_get(attr_name)} end @@ -14,7 +27,7 @@ class Module names.each do |name| name = name.to_s raise(NameError, "#{name.inspect} is not allowed as an instance variable name") if name.include?('@') || name.include?('?') || name.include?('$') - + attr_name = '@'+name name = (name+"=").intern define_method(name){|v|self.instance_variable_set(attr_name,v)} |
