Module: ActiveRecord::Temporal::Querying
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/activerecord/temporal/querying/predicate_builder/contains_handler.rb,
lib/activerecord/temporal/querying/predicate_builder/handlers.rb,
lib/activerecord/temporal/querying/where_clause_refinement.rb,
lib/activerecord/temporal/querying/association_walker.rb,
lib/activerecord/temporal/querying/association_macros.rb,
lib/activerecord/temporal/querying/association_scope.rb,
lib/activerecord/temporal/querying/time_dimensions.rb,
lib/activerecord/temporal/querying/scope_registry.rb,
lib/activerecord/temporal/querying/query_methods.rb,
lib/activerecord/temporal/querying/scoping.rb,
lib/activerecord/temporal/querying.rb
Defined Under Namespace
Modules: AssociationMacros, QueryMethods, TimeDimensions, WhereClauseRefinement
Classes: AssociationScope, AssociationWalker, PredicateBuilder, RangeError, ScopeRegistry, Scoping
Instance Method Summary
collapse
Instance Method Details
#as_of(time) ⇒ Object
69
70
71
72
73
|
# File 'lib/activerecord/temporal/querying.rb', line 69
def as_of(time)
time_coords = resolve_time_coords(time)
self.class.as_of(time_coords).find_by(self.class.primary_key => [id])
end
|
#as_of!(time) ⇒ Object
59
60
61
62
63
64
65
66
67
|
# File 'lib/activerecord/temporal/querying.rb', line 59
def as_of!(time)
time_coords = resolve_time_coords(time)
ensure_time_tags_in_bounds!(time_coords)
reload
self.time_tags = time_coords
end
|
75
76
77
78
79
80
81
82
83
|
# File 'lib/activerecord/temporal/querying.rb', line 75
def initialize_time_tags_from_relation(relation)
associations = relation.includes_values | relation.eager_load_values
self.time_tags = relation.time_tag_values
AssociationWalker.each_target(self, associations) do |target|
target.time_tags = relation.time_tag_values
end
end
|
#time_tag ⇒ Object
51
52
53
|
# File 'lib/activerecord/temporal/querying.rb', line 51
def time_tag
time_tags[default_time_dimension]
end
|
43
44
45
|
# File 'lib/activerecord/temporal/querying.rb', line 43
def time_tags
@time_tags || {}
end
|
47
48
49
|
# File 'lib/activerecord/temporal/querying.rb', line 47
def time_tags=(value)
@time_tags = value&.slice(*time_dimensions)
end
|
55
56
57
|
# File 'lib/activerecord/temporal/querying.rb', line 55
def time_tags_for(time_dimensions)
time_tags.slice(*time_dimensions)
end
|