Class: ActiveSupport::FileUpdateChecker
- Inherits:
-
Object
- Object
- ActiveSupport::FileUpdateChecker
- Defined in:
- activesupport/lib/active_support/file_update_checker.rb
Overview
This class is responsible to track files and invoke the given block whenever one of these files are changed. For example, this class is used by Rails to reload the I18n framework whenever they are changed upon a new request.
i18n_reloader = ActiveSupport::FileUpdateChecker.new(paths) do
I18n.reload!
end
ActionDispatch::Callbacks.to_prepare do
i18n_reloader.execute_if_updated
end
Instance Attribute Summary (collapse)
-
- (Object) last_update_at
readonly
Returns the value of attribute last_update_at.
-
- (Object) paths
readonly
Returns the value of attribute paths.
Instance Method Summary (collapse)
- - (Object) execute_if_updated
-
- (FileUpdateChecker) initialize(paths, calculate = false, &block)
constructor
A new instance of FileUpdateChecker.
- - (Object) updated_at
Constructor Details
- (FileUpdateChecker) initialize(paths, calculate = false, &block)
A new instance of FileUpdateChecker
18 19 20 21 22 |
# File 'activesupport/lib/active_support/file_update_checker.rb', line 18 def initialize(paths, calculate=false, &block) @paths = paths @block = block @last_update_at = calculate ? updated_at : nil end |
Instance Attribute Details
- (Object) last_update_at (readonly)
Returns the value of attribute last_update_at
16 17 18 |
# File 'activesupport/lib/active_support/file_update_checker.rb', line 16 def last_update_at @last_update_at end |
- (Object) paths (readonly)
Returns the value of attribute paths
16 17 18 |
# File 'activesupport/lib/active_support/file_update_checker.rb', line 16 def paths @paths end |
Instance Method Details
- (Object) execute_if_updated
28 29 30 31 32 33 34 |
# File 'activesupport/lib/active_support/file_update_checker.rb', line 28 def execute_if_updated current_update_at = self.updated_at if @last_update_at != current_update_at @last_update_at = current_update_at @block.call end end |
- (Object) updated_at
24 25 26 |
# File 'activesupport/lib/active_support/file_update_checker.rb', line 24 def updated_at paths.map { |path| File.stat(path).mtime }.max end |