class ActiveRecord::Scoping::ScopeRegistry

Experimental RBS support (using type sampling data from the type_fusion project).

# sig/active_record/scoping.rbs

class ActiveRecord::Scoping::ScopeRegistry
  def current_scope: (Class model, ?bool skip_inherited_scope, *unused *, **unused **, ) -> nil
  def global_current_scope: (Class model, ?bool skip_inherited_scope) -> nil
  def ignore_default_scope: (*unused *, **unused **, ) -> untyped
  def instance: () -> untyped
  def set_current_scope: (Class model, User::ActiveRecord_Relation value) -> untyped
  def set_ignore_default_scope: (*unused *, **unused **, , Class model, false value) -> untyped
  
  type ActiveRecord__Scoping__ScopeRegistry_set_value_for_value = ConnectedAccount::ActiveRecord_AssociationRelation | Notification::ActiveRecord_AssociationRelation | nil | true | ConnectedFolder::ActiveRecord_Relation | LinkedConnection::ActiveRecord_Relation
  
  def set_value_for: (Hash scope_type, Class model, ActiveRecord__Scoping__ScopeRegistry_set_value_for_value value) -> LinkedConnection::ActiveRecord_Relation?
  def value_for: (Hash scope_type, Class model, ?bool skip_inherited_scope) -> Notification::ActiveRecord_AssociationRelation?
end

:nodoc:
You will obtain whatever was defined in some_new_scope.
registry.current_scope(Board)
Now when you run:
registry.set_current_scope(Board, some_new_scope)
registry = ActiveRecord::Scoping::ScopeRegistry
following code:
to get the current_scope for the Board model, then you would use the
classes and different types of scopes. For example, if you are attempting
This class allows you to store and get the scope values on different
local depending on the application configuration.
for different classes. The registry is stored as either a thread or fiber
This class stores the :current_scope and :ignore_default_scope values

def current_scope(model, skip_inherited_scope = false)

Experimental RBS support (using type sampling data from the type_fusion project).

def current_scope: (Class model, ?bool skip_inherited_scope, *unused *, **unused **, ) -> nil

This signature was generated using 10 samples from 1 application.

def current_scope(model, skip_inherited_scope = false)
  value_for(@current_scope, model, skip_inherited_scope)
end

def global_current_scope(model, skip_inherited_scope = false)

Experimental RBS support (using type sampling data from the type_fusion project).

def global_current_scope: (Class model, ?bool skip_inherited_scope) -> nil

This signature was generated using 6 samples from 1 application.

def global_current_scope(model, skip_inherited_scope = false)
  value_for(@global_current_scope, model, skip_inherited_scope)
end

def ignore_default_scope(model, skip_inherited_scope = false)

Experimental RBS support (using type sampling data from the type_fusion project).

def ignore_default_scope: (*unused *, **unused **, ) -> untyped

This signature was generated using 1 sample from 1 application.

def ignore_default_scope(model, skip_inherited_scope = false)
  value_for(@ignore_default_scope, model, skip_inherited_scope)
end

def initialize

def initialize
  @current_scope        = {}
  @ignore_default_scope = {}
  @global_current_scope = {}
end

def instance

Experimental RBS support (using type sampling data from the type_fusion project).

def instance: () -> untyped

This signature was generated using 14 samples from 1 application.

def instance
  ActiveSupport::IsolatedExecutionState[:active_record_scope_registry] ||= new
end

def set_current_scope(model, value)

Experimental RBS support (using type sampling data from the type_fusion project).

def set_current_scope: (Class model, User::ActiveRecord_Relation value) -> untyped

This signature was generated using 1 sample from 1 application.

def set_current_scope(model, value)
  set_value_for(@current_scope, model, value)
end

def set_global_current_scope(model, value)

def set_global_current_scope(model, value)
  set_value_for(@global_current_scope, model, value)
end

def set_ignore_default_scope(model, value)

Experimental RBS support (using type sampling data from the type_fusion project).

def set_ignore_default_scope: (*unused *, **unused **, , Class model, false value) -> untyped

This signature was generated using 2 samples from 1 application.

def set_ignore_default_scope(model, value)
  set_value_for(@ignore_default_scope, model, value)
end

def set_value_for(scope_type, model, value)

Experimental RBS support (using type sampling data from the type_fusion project).

type ActiveRecord__Scoping__ScopeRegistry_set_value_for_value = ConnectedAccount::ActiveRecord_AssociationRelation | Notification::ActiveRecord_AssociationRelation | nil | true | ConnectedFolder::ActiveRecord_Relation | LinkedConnection::ActiveRecord_Relation
type ActiveRecord__Scoping__ScopeRegistry_set_value_for_scope_type = User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | NilClass | ConnectedFolder | NilClass | LinkedConnectionInvitation | NilClass | LinkedConnection | NilClass | Account | NilClass | ConnectedAccount | NilClass | ConnectedAccount | NilClass | User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | NilClass | ConnectedFolder | NilClass | LinkedConnectionInvitation | NilClass | LinkedConnection | NilClass | Account | NilClass | User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | NilClass | ConnectedFolder | ConnectedFolder::ActiveRecord_Relation | LinkedConnectionInvitation | NilClass | LinkedConnection | NilClass | Account | NilClass | ConnectedAccount | NilClass | User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | Notification::ActiveRecord_AssociationRelation | ConnectedFolder | NilClass | ConnectedAccount | NilClass | LinkedConnectionInvitation | NilClass | LinkedConnection | NilClass | Account | NilClass | ConnectedFolder | FalseClass | LinkedConnectionInvitation | FalseClass | LinkedConnection | FalseClass | ConnectedAccount | NilClass | User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | NilClass | ConnectedFolder | NilClass | LinkedConnectionInvitation | NilClass | LinkedConnection | NilClass | Account | NilClass | WebhookSubscription | NilClass | MicrosoftGraphWebhookSubscription | NilClass | ActiveStorage::Attachment | NilClass | User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | NilClass | ConnectedFolder | NilClass | ConnectedAccount | NilClass | LinkedConnectionInvitation | NilClass | LinkedConnection | NilClass | Account | NilClass | ActiveStorage::Attachment | NilClass | User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | NilClass | ConnectedFolder | NilClass | LinkedConnectionInvitation | NilClass | LinkedConnection | LinkedConnection::ActiveRecord_Relation | User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | NilClass | ConnectedFolder | NilClass | ConnectedAccount | NilClass | LinkedConnectionInvitation | NilClass | Account | NilClass | ActiveStorage::Attachment | NilClass | ApiToken | NilClass | LinkedConnection | NilClass

def set_value_for: (ActiveRecord__Scoping__ScopeRegistry_set_value_for_scope_type scope_type, Class model, ActiveRecord__Scoping__ScopeRegistry_set_value_for_value value) -> LinkedConnection::ActiveRecord_Relation?

This signature was generated using 11 samples from 1 application.

Sets the +value+ for a given +scope_type+ and +model+.
def set_value_for(scope_type, model, value)
  scope_type[model.name] = value
end

def value_for(scope_type, model, skip_inherited_scope = false)

Experimental RBS support (using type sampling data from the type_fusion project).

type ActiveRecord__Scoping__ScopeRegistry_value_for_scope_type =  | User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | NilClass | ConnectedFolder | NilClass | LinkedConnectionInvitation | NilClass | LinkedConnection | NilClass | Account | NilClass | ConnectedAccount | NilClass | ConnectedAccount | NilClass | User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | NilClass | ConnectedFolder | NilClass | LinkedConnectionInvitation | NilClass | LinkedConnection | NilClass | Account | NilClass | WebhookSubscription | NilClass | MicrosoftGraphWebhookSubscription | NilClass | User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | NilClass | ConnectedFolder | NilClass | LinkedConnectionInvitation | NilClass | LinkedConnection | NilClass | Account | NilClass | ActiveStorage::Attachment | NilClass | User | NilClass | Pay::Customer | NilClass | AccountUser | NilClass | Notification | Notification::ActiveRecord_AssociationRelation | ConnectedFolder | NilClass | LinkedConnectionInvitation | NilClass | LinkedConnection | NilClass | Account | NilClass | ActiveStorage::Attachment | NilClass | ApiToken | NilClass | ConnectedAccount | NilClass

def value_for: (ActiveRecord__Scoping__ScopeRegistry_value_for_scope_type scope_type, Class model, ?bool skip_inherited_scope) -> Notification::ActiveRecord_AssociationRelation?

This signature was generated using 9 samples from 1 application.

Obtains the value for a given +scope_type+ and +model+.
def value_for(scope_type, model, skip_inherited_scope = false)
  return scope_type[model.name] if skip_inherited_scope
  klass = model
  base = model.base_class
  while klass <= base
    value = scope_type[klass.name]
    return value if value
    klass = klass.superclass
  end
end