summaryrefslogtreecommitdiffhomepage
path: root/mrblib/class.rb
diff options
context:
space:
mode:
Diffstat (limited to 'mrblib/class.rb')
-rw-r--r--mrblib/class.rb17
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)}