15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/identity_cache/cached/reference/has_one.rb', line 15
def build
reflection.active_record.class_eval(" attr_reader :\#{id_cached_reader_name}\n\n def \#{cached_id_name}\n return \#{id_variable_name} if defined?(\#{id_variable_name})\n \#{id_variable_name} = association(:\#{name}).scope.ids.first\n end\n\n def \#{cached_accessor_name}\n assoc = association(:\#{name})\n if assoc.klass.should_use_cache? && !assoc.loaded?\n \#{records_variable_name} ||= \#{reflection.class_name}.fetch(\#{cached_id_name}) if \#{cached_id_name}\n else\n \#{name}\n end\n end\n RUBY\n\n ParentModelExpiration.add_parent_expiry_hook(self)\nend\n", __FILE__, __LINE__ + 1)
|