class Recurso::Config

Constants

DEFAULT_IDENTITY_FOREIGN_KEY
DEFAULT_PERMISSION_CLASS_NAME

Attributes

actions_for_default[RW]
default_level[RW]
default_permission_class_name[RW]
global_relations[RW]
identity_foreign_key[RW]
levels[RW]
levels_for_action[RW]
permission_class_name[RW]

Public Class Methods

new() click to toggle source
# File lib/recurso/config.rb, line 18
def initialize
  @levels_for_action = {
    view:       [:admin, :editor, :viewer],
    modify:     [:admin, :editor],
    administer: [:admin],
  }

  @actions_for_default = {
    open:   [:view, :modify],
    closed: [:view],
    secret: [],
  }

  @levels = [:member, :admin, :editor, :viewer]

  @default_level = :member

  @identity_foreign_key = DEFAULT_IDENTITY_FOREIGN_KEY

  @permission_class_name = DEFAULT_PERMISSION_CLASS_NAME

  @global_relations = []
end

Public Instance Methods

identity_foreign_key_for(model) click to toggle source
# File lib/recurso/config.rb, line 50
def identity_foreign_key_for(model)
  model_specific(identity_foreign_key, model) || DEFAULT_IDENTITY_FOREIGN_KEY
end
model_specific(value, model) click to toggle source
# File lib/recurso/config.rb, line 42
def model_specific(value, model)
  if value.respond_to?(:call)
    value.call(model)
  else
    value
  end
end
permission_class_name_for(identity_model) click to toggle source
# File lib/recurso/config.rb, line 54
def permission_class_name_for(identity_model)
  model_specific(permission_class_name, identity_model) || DEFAULT_PERMISSION_CLASS_NAME
end