Slide 38
Slide 38 text
source_location
def define_method_attribute(name)
safe_name = name.unpack('h*').first
generated_attribute_methods.module_eval <<-STR, __FILE__, __LINE__ + 1
def __temp__#{safe_name}
read_attribute(:'#{name.inspect}') { |n|
missing_attribute(n, caller)
}
end
alias_method #{name.inspect}, :__temp__#{safe_name}
undef_method :__temp__#{safe_name}
STR
end