11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/refinerycms-vimeo-videos/active_record_extension.rb', line 11
def vimeo_video field
class_eval <<-EOV
def #{field}
if self.new_record?
self.#{field}_id
else
self.#{field}_id? ? VimeoMetaCache.find_or_create_by_vid(self.#{field}_id) : nil
end
end
before_save :cache_vimeo_meta_for_#{field}
def cache_vimeo_meta_for_#{field}
if self.#{field}_id? and self.#{field}_id_changed?
VimeoMetaCache.find_or_create_by_vid(self.#{field}_id)
end
end
protected :cache_vimeo_meta_for_#{field}
EOV
end
|