edge badge
Methods
#
N
Class Public methods
new()
# File activerecord/lib/active_record/attribute_methods.rb, line 38
def initialize
  @module = Module.new
  @method_cache = ThreadSafe::Cache.new
end
Instance Public methods
[](name)
# 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