Class: ActiveRecord::AttributeMethods::AttributeMethodCache
Relationships & Source Files | |
Inherits: | Object |
Defined in: | activerecord/lib/active_record/attribute_methods.rb |
Class Method Summary
- .new ⇒ AttributeMethodCache constructor
Instance Method Summary
Constructor Details
.new ⇒ AttributeMethodCache
# File 'activerecord/lib/active_record/attribute_methods.rb', line 38
def initialize @module = Module.new @method_cache = ThreadSafe::Cache.new end
Instance Method Details
#[](name)
[ GitHub ]# File 'activerecord/lib/active_record/attribute_methods.rb', line 43
def [](name) @method_cache.compute_if_absent(name) do safe_name = name.unpack('h*').first temp_method = "__temp__#{safe_name}" ActiveRecord::AttributeMethods::AttrNames.set_name_cache safe_name, name @module.module_eval method_body(temp_method, safe_name), __FILE__, __LINE__ @module.instance_method temp_method end end