Class: ActiveRecord::Temporal::Querying::ScopeRegistry
- Inherits:
-
Object
- Object
- ActiveRecord::Temporal::Querying::ScopeRegistry
- Defined in:
- lib/activerecord/temporal/querying/scope_registry.rb
Instance Attribute Summary collapse
-
#association_constraints ⇒ Object
Returns the value of attribute association_constraints.
-
#association_tags ⇒ Object
Returns the value of attribute association_tags.
-
#global_constraints ⇒ Object
Returns the value of attribute global_constraints.
-
#universal_global_constraint_time ⇒ Object
Returns the value of attribute universal_global_constraint_time.
Class Method Summary collapse
Instance Method Summary collapse
- #association_constraint_for(dimension) ⇒ Object
- #association_constraints_for(*dimensions) ⇒ Object
- #association_tag_for(dimension) ⇒ Object
- #association_tags_for(*dimensions) ⇒ Object
- #global_constraint_for(dimension) ⇒ Object
- #global_constraints_for(*dimensions) ⇒ Object
-
#initialize(global_constraints: nil, association_constraints: nil, association_tags: nil, default_association_constraint_time: nil, universal_global_constraint_time: nil) ⇒ ScopeRegistry
constructor
A new instance of ScopeRegistry.
- #set_association_constraints(time_coords) ⇒ Object
- #set_association_tags(time_coords) ⇒ Object
- #set_global_constraints(time_coords) ⇒ Object
Constructor Details
#initialize(global_constraints: nil, association_constraints: nil, association_tags: nil, default_association_constraint_time: nil, universal_global_constraint_time: nil) ⇒ ScopeRegistry
Returns a new instance of ScopeRegistry.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 34 def initialize( global_constraints: nil, association_constraints: nil, association_tags: nil, default_association_constraint_time: nil, universal_global_constraint_time: nil ) @global_constraints = global_constraints || {} @association_constraints = association_constraints || {} @association_tags = || {} @default_association_constraint_time = default_association_constraint_time || -> { Time.current } @universal_global_constraint_time = universal_global_constraint_time end |
Instance Attribute Details
#association_constraints ⇒ Object
Returns the value of attribute association_constraints.
29 30 31 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 29 def association_constraints @association_constraints end |
#association_tags ⇒ Object
Returns the value of attribute association_tags.
29 30 31 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 29 def @association_tags end |
#global_constraints ⇒ Object
Returns the value of attribute global_constraints.
29 30 31 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 29 def global_constraints @global_constraints end |
#universal_global_constraint_time ⇒ Object
Returns the value of attribute universal_global_constraint_time.
29 30 31 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 29 def universal_global_constraint_time @universal_global_constraint_time end |
Class Method Details
.instance ⇒ Object
24 25 26 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 24 def instance ActiveSupport::IsolatedExecutionState[:temporal_querying_registry] ||= new end |
Instance Method Details
#association_constraint_for(dimension) ⇒ Object
53 54 55 56 57 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 53 def association_constraint_for(dimension) association_constraints[dimension] || global_constraint_for(dimension) || @default_association_constraint_time.call end |
#association_constraints_for(*dimensions) ⇒ Object
69 70 71 72 73 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 69 def association_constraints_for(*dimensions) dimensions.flatten.index_with do |dimension| association_constraint_for(dimension) end end |
#association_tag_for(dimension) ⇒ Object
59 60 61 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 59 def association_tag_for(dimension) [dimension] end |
#association_tags_for(*dimensions) ⇒ Object
75 76 77 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 75 def (*dimensions) .slice(*dimensions.flatten) end |
#global_constraint_for(dimension) ⇒ Object
49 50 51 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 49 def global_constraint_for(dimension) global_constraints[dimension] || universal_global_constraint_time end |
#global_constraints_for(*dimensions) ⇒ Object
63 64 65 66 67 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 63 def global_constraints_for(*dimensions) dimensions.flatten.index_with do |dimension| global_constraint_for(dimension) end.compact end |
#set_association_constraints(time_coords) ⇒ Object
84 85 86 87 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 84 def set_association_constraints(time_coords) self.association_constraints = association_constraints .merge(time_coords) end |
#set_association_tags(time_coords) ⇒ Object
89 90 91 92 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 89 def (time_coords) self. = .merge(time_coords) end |
#set_global_constraints(time_coords) ⇒ Object
79 80 81 82 |
# File 'lib/activerecord/temporal/querying/scope_registry.rb', line 79 def set_global_constraints(time_coords) self.global_constraints = global_constraints .merge(time_coords) end |