Class: ActiveRecord::Materialized::RefreshResult
- Inherits:
-
Data
- Object
- Data
- ActiveRecord::Materialized::RefreshResult
- Defined in:
- lib/activerecord/materialized/refresh_result.rb
Overview
The outcome of a refresh or rebuild, returned by refresh!, rebuild!, and refresh_if_stale!.
Instance Attribute Summary collapse
-
#duration_ms ⇒ Integer
readonly
Wall-clock duration in milliseconds.
-
#refreshed_at ⇒ Time?
readonly
When the refresh completed (nil when skipped).
-
#row_count ⇒ Integer
readonly
Rows in the cache table after the operation.
-
#skipped ⇒ Boolean
readonly
True when there was nothing to do (e.g. an unmaintainable view).
-
#view_class ⇒ Class
readonly
The view that was refreshed.
Class Method Summary collapse
-
.skipped(view_class) ⇒ RefreshResult
A no-op result, returned when refresh! was requested on a view that is not maintainable.
Instance Method Summary collapse
-
#initialize(view_class:, row_count:, duration_ms:, refreshed_at: nil, skipped: false) ⇒ RefreshResult
constructor
A new instance of RefreshResult.
Constructor Details
#initialize(view_class:, row_count:, duration_ms:, refreshed_at: nil, skipped: false) ⇒ RefreshResult
Returns a new instance of RefreshResult.
21 |
# File 'lib/activerecord/materialized/refresh_result.rb', line 21 def initialize(view_class:, row_count:, duration_ms:, refreshed_at: nil, skipped: false) = super |
Instance Attribute Details
#duration_ms ⇒ Integer (readonly)
Returns wall-clock duration in milliseconds.
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/activerecord/materialized/refresh_result.rb', line 20 RefreshResult = Data.define(:view_class, :row_count, :duration_ms, :refreshed_at, :skipped) do def initialize(view_class:, row_count:, duration_ms:, refreshed_at: nil, skipped: false) = super # A no-op result, returned when refresh! was requested on a view that is # not maintainable. # # @return [RefreshResult] def self.skipped(view_class) new(view_class: view_class, row_count: 0, duration_ms: 0, refreshed_at: nil, skipped: true) end end |
#refreshed_at ⇒ Time? (readonly)
Returns when the refresh completed (nil when skipped).
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/activerecord/materialized/refresh_result.rb', line 20 RefreshResult = Data.define(:view_class, :row_count, :duration_ms, :refreshed_at, :skipped) do def initialize(view_class:, row_count:, duration_ms:, refreshed_at: nil, skipped: false) = super # A no-op result, returned when refresh! was requested on a view that is # not maintainable. # # @return [RefreshResult] def self.skipped(view_class) new(view_class: view_class, row_count: 0, duration_ms: 0, refreshed_at: nil, skipped: true) end end |
#row_count ⇒ Integer (readonly)
Returns rows in the cache table after the operation.
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/activerecord/materialized/refresh_result.rb', line 20 RefreshResult = Data.define(:view_class, :row_count, :duration_ms, :refreshed_at, :skipped) do def initialize(view_class:, row_count:, duration_ms:, refreshed_at: nil, skipped: false) = super # A no-op result, returned when refresh! was requested on a view that is # not maintainable. # # @return [RefreshResult] def self.skipped(view_class) new(view_class: view_class, row_count: 0, duration_ms: 0, refreshed_at: nil, skipped: true) end end |
#skipped ⇒ Boolean (readonly)
Returns true when there was nothing to do (e.g. an unmaintainable view).
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/activerecord/materialized/refresh_result.rb', line 20 RefreshResult = Data.define(:view_class, :row_count, :duration_ms, :refreshed_at, :skipped) do def initialize(view_class:, row_count:, duration_ms:, refreshed_at: nil, skipped: false) = super # A no-op result, returned when refresh! was requested on a view that is # not maintainable. # # @return [RefreshResult] def self.skipped(view_class) new(view_class: view_class, row_count: 0, duration_ms: 0, refreshed_at: nil, skipped: true) end end |
#view_class ⇒ Class (readonly)
Returns the view that was refreshed.
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/activerecord/materialized/refresh_result.rb', line 20 RefreshResult = Data.define(:view_class, :row_count, :duration_ms, :refreshed_at, :skipped) do def initialize(view_class:, row_count:, duration_ms:, refreshed_at: nil, skipped: false) = super # A no-op result, returned when refresh! was requested on a view that is # not maintainable. # # @return [RefreshResult] def self.skipped(view_class) new(view_class: view_class, row_count: 0, duration_ms: 0, refreshed_at: nil, skipped: true) end end |
Class Method Details
.skipped(view_class) ⇒ RefreshResult
A no-op result, returned when refresh! was requested on a view that is not maintainable.
27 28 29 |
# File 'lib/activerecord/materialized/refresh_result.rb', line 27 def self.skipped(view_class) new(view_class: view_class, row_count: 0, duration_ms: 0, refreshed_at: nil, skipped: true) end |