Class: Module

Inherits:
Object show all
Defined in:
lib/tanuki/extensions/module.rb

Instance Method Summary collapse

Instance Method Details

#internal_attr_accessor(*syms) ⇒ Object

Creates a reader sym and a writer sym= for the instance variable @_sym.



4
5
6
7
# File 'lib/tanuki/extensions/module.rb', line 4

def internal_attr_accessor(*syms)
  internal_attr_reader(*syms)
  internal_attr_writer(*syms)
end

#internal_attr_reader(*syms) ⇒ Object

Creates a reader sym for the instance variable @_sym.



10
11
12
13
14
15
16
# File 'lib/tanuki/extensions/module.rb', line 10

def internal_attr_reader(*syms)
  syms.each do |sym|
    ivar = "@_#{sym}".to_sym
    instance_variable_set(ivar, nil) unless instance_variable_defined? ivar
    class_eval "def #{sym};#{ivar};end"
  end
end

#internal_attr_writer(*syms) ⇒ Object

Creates a writer sym= for the instance variable @_sym.



19
20
21
22
23
24
25
# File 'lib/tanuki/extensions/module.rb', line 19

def internal_attr_writer(*syms)
  syms.each do |sym|
    ivar = "@_#{sym}".to_sym
    instance_variable_set(ivar, nil) unless instance_variable_defined? ivar
    class_eval "def #{sym}=(obj);#{ivar}=obj;end"
  end
end