Methods
Classes and Modules
Module ActionView::ReloadableTemplate::UnfreezableClass ActionView::ReloadableTemplate::ReloadablePath
Class ActionView::ReloadableTemplate::TemplateDeleted
Attributes
| [RW] | previously_last_modified |
Public Class methods
[ show source ]
# File actionpack/lib/action_view/reloadable_template.rb, line 80
80: def initialize(*args)
81: super
82:
83: # we don't ever want to get frozen
84: extend Unfreezable
85: end
Public Instance methods
[ show source ]
# File actionpack/lib/action_view/reloadable_template.rb, line 87
87: def mtime
88: File.mtime(filename)
89: end
[ show source ]
# File actionpack/lib/action_view/reloadable_template.rb, line 100
100: def reset_cache_if_stale!
101: if stale?
102: flush_cache 'source', 'compiled_source'
103: undef_my_compiled_methods!
104: @previously_last_modified = mtime
105: end
106: self
107: end
[ show source ]
# File actionpack/lib/action_view/reloadable_template.rb, line 93
93: def stale?
94: previously_last_modified.nil? || previously_last_modified < mtime
95: rescue Errno::ENOENT => e
96: undef_my_compiled_methods!
97: raise TemplateDeleted
98: end
remove any compiled methods that look like they might belong to me
[ show source ]
# File actionpack/lib/action_view/reloadable_template.rb, line 110
110: def undef_my_compiled_methods!
111: ActionView::Base::CompiledTemplates.public_instance_methods.grep(/#{Regexp.escape(method_name_without_locals)}(?:_locals_)?/).each do |m|
112: ActionView::Base::CompiledTemplates.send(:remove_method, m)
113: end
114: end