summaryrefslogtreecommitdiffhomepage
path: root/mrblib/class.rb
diff options
context:
space:
mode:
Diffstat (limited to 'mrblib/class.rb')
-rw-r--r--mrblib/class.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/mrblib/class.rb b/mrblib/class.rb
new file mode 100644
index 000000000..4f268b6c8
--- /dev/null
+++ b/mrblib/class.rb
@@ -0,0 +1,26 @@
+class Module
+ # 15.2.2.4.13
+ def attr_reader(*names)
+ names.each{|name|
+ name2 = ('@'+name.to_s).intern
+ define_method(name){self.instance_variable_get(name2)}
+ }
+ end
+ # 15.2.2.4.14
+ def attr_writer(*names)
+ names.each{|name|
+ name2 = ('@'+name.to_s).intern
+ name = (name.to_s+"=").intern
+ define_method(name){|v|self.instance_variable_set(name2,v)}
+ }
+ end
+ # 15.2.2.4.12
+ def attr_accessor(*names)
+ attr_reader(*names)
+ attr_writer(*names)
+ end
+ # 15.2.2.4.11
+ def attr(name)
+ attr_reader(name)
+ end
+end