module Godmin::Resources::ResourceService::Scopes

Public Instance Methods

apply_scope(scope_param, resources) click to toggle source
# File lib/godmin/resources/resource_service/scopes.rb, line 9
def apply_scope(scope_param, resources)
  return resources if scope_map.empty?

  self.scope = scope_param

  if scope && scope_map.key?(scope.to_sym)
    send("scope_#{@scope}", resources)
  else
    fail NotImplementedError, "Scope #{@scope} not implemented"
  end
end
scope() click to toggle source
# File lib/godmin/resources/resource_service/scopes.rb, line 25
def scope
  @scope
end
scope=(scope) click to toggle source
# File lib/godmin/resources/resource_service/scopes.rb, line 21
def scope=(scope)
  @scope = scope.blank? ? default_scope : scope
end
scope_count(scope) click to toggle source
# File lib/godmin/resources/resource_service/scopes.rb, line 33
def scope_count(scope)
  send("scope_#{scope}", resources_relation).count
end
scoped_by?(name) click to toggle source
# File lib/godmin/resources/resource_service/scopes.rb, line 29
def scoped_by?(name)
  @scope == name.to_s
end

Protected Instance Methods

default_scope() click to toggle source
# File lib/godmin/resources/resource_service/scopes.rb, line 39
def default_scope
  scope = scope_map.find -> { scope_map.first } do |_key, value|
    value[:default] == true
  end

  scope ? scope[0].to_s : nil
end