summaryrefslogtreecommitdiffhomepage
path: root/mrblib
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-09-02 16:41:38 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-09-02 16:41:38 +0900
commit90ba47ccfe67859e3f139199da33e89137a74a41 (patch)
tree8f9781696a2694697e762224509dbbb1c06475f2 /mrblib
parent6c7b0d88e87a41b6e2c908e0a9dcbc722b7553dc (diff)
downloadmruby-90ba47ccfe67859e3f139199da33e89137a74a41.tar.gz
mruby-90ba47ccfe67859e3f139199da33e89137a74a41.zip
implement attr_reader and attr_writer in C; use cfunc closure to speed-up
Diffstat (limited to 'mrblib')
-rw-r--r--mrblib/class.rb25
1 files changed, 1 insertions, 24 deletions
diff --git a/mrblib/class.rb b/mrblib/class.rb
index ebb44ca4c..39e0d5091 100644
--- a/mrblib/class.rb
+++ b/mrblib/class.rb
@@ -1,28 +1,5 @@
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
- nil
- end
- # 15.2.2.4.14
- def attr_writer(*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
- name = (name+"=").intern
- define_method(name){|v|self.instance_variable_set(attr_name,v)}
- end
- nil
- end
- # 15.2.2.4.12
+ # 15.2.2.4.12
def attr_accessor(*names)
attr_reader(*names)
attr_writer(*names)