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