class RailsAiAdmin::Resource::ScopeBuilder
Collects named list scopes. Bodies are not evaluated at declaration time.
Public Class Methods
Source
# File lib/rails_ai_admin/resource.rb, line 210 def initialize(scopes) @scopes = scopes end
Public Instance Methods
Source
# File lib/rails_ai_admin/resource.rb, line 214 def scope(name, body = nil, label: nil, default: false) definition = Queries::NamedScope.new(name, body, label: label, default: default) raise ConfigurationError, "Duplicate named scope #{definition.name}" if @scopes.key?(definition.name) raise ConfigurationError, "A resource declares at most #{Queries::NamedScope::MAX_SCOPES} named scopes" if @scopes.size >= Queries::NamedScope::MAX_SCOPES raise ConfigurationError, "A resource declares at most one default named scope" if definition.default? && @scopes.values.any?(&:default?) @scopes[definition.name] = definition end