Class: ActiveRecord::Materialized::RefreshResult

Inherits:
T::Struct
  • Object
show all
Extended by:
T::Sig
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

Class Method Summary collapse

Instance Attribute Details

#duration_msInteger (readonly)

Returns wall-clock duration in milliseconds.

Returns:

  • (Integer)

    wall-clock duration in milliseconds



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/activerecord/materialized/refresh_result.rb', line 21

class RefreshResult < T::Struct
  extend T::Sig

  const :view_class, T.class_of(View)
  const :row_count, Integer
  const :duration_ms, Integer
  const :refreshed_at, T.nilable(Timestamp)
  const :skipped, T::Boolean, default: false

  # A no-op result, returned when refresh! was requested on a view that is
  # not maintainable.
  #
  # @return [RefreshResult]
  sig { params(view_class: T.class_of(View)).returns(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_atTime? (readonly)

Returns when the refresh completed (nil when skipped).

Returns:

  • (Time, nil)

    when the refresh completed (nil when skipped)



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/activerecord/materialized/refresh_result.rb', line 21

class RefreshResult < T::Struct
  extend T::Sig

  const :view_class, T.class_of(View)
  const :row_count, Integer
  const :duration_ms, Integer
  const :refreshed_at, T.nilable(Timestamp)
  const :skipped, T::Boolean, default: false

  # A no-op result, returned when refresh! was requested on a view that is
  # not maintainable.
  #
  # @return [RefreshResult]
  sig { params(view_class: T.class_of(View)).returns(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_countInteger (readonly)

Returns rows in the cache table after the operation.

Returns:

  • (Integer)

    rows in the cache table after the operation



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/activerecord/materialized/refresh_result.rb', line 21

class RefreshResult < T::Struct
  extend T::Sig

  const :view_class, T.class_of(View)
  const :row_count, Integer
  const :duration_ms, Integer
  const :refreshed_at, T.nilable(Timestamp)
  const :skipped, T::Boolean, default: false

  # A no-op result, returned when refresh! was requested on a view that is
  # not maintainable.
  #
  # @return [RefreshResult]
  sig { params(view_class: T.class_of(View)).returns(RefreshResult) }
  def self.skipped(view_class)
    new(view_class: view_class, row_count: 0, duration_ms: 0, refreshed_at: nil, skipped: true)
  end
end

#skippedBoolean (readonly)

Returns true when there was nothing to do (e.g. an unmaintainable view).

Returns:

  • (Boolean)

    true when there was nothing to do (e.g. an unmaintainable view)



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/activerecord/materialized/refresh_result.rb', line 21

class RefreshResult < T::Struct
  extend T::Sig

  const :view_class, T.class_of(View)
  const :row_count, Integer
  const :duration_ms, Integer
  const :refreshed_at, T.nilable(Timestamp)
  const :skipped, T::Boolean, default: false

  # A no-op result, returned when refresh! was requested on a view that is
  # not maintainable.
  #
  # @return [RefreshResult]
  sig { params(view_class: T.class_of(View)).returns(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_classClass (readonly)

Returns the view that was refreshed.

Returns:

  • (Class)

    the view that was refreshed



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/activerecord/materialized/refresh_result.rb', line 21

class RefreshResult < T::Struct
  extend T::Sig

  const :view_class, T.class_of(View)
  const :row_count, Integer
  const :duration_ms, Integer
  const :refreshed_at, T.nilable(Timestamp)
  const :skipped, T::Boolean, default: false

  # A no-op result, returned when refresh! was requested on a view that is
  # not maintainable.
  #
  # @return [RefreshResult]
  sig { params(view_class: T.class_of(View)).returns(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) ⇒ Object



35
36
37
# File 'lib/activerecord/materialized/refresh_result.rb', line 35

def self.skipped(view_class)
  new(view_class: view_class, row_count: 0, duration_ms: 0, refreshed_at: nil, skipped: true)
end