module Monarchy::Validators
Public Class Methods
default_role?(resource, role)
click to toggle source
# File lib/monarchy/validators.rb, line 12 def default_role?(resource, role) resource(resource) role(role) role == resource.class.default_role end
last_role?(member, role)
click to toggle source
# File lib/monarchy/validators.rb, line 6 def last_role?(member, role) member(member) role(role) (member.roles - [role]).empty? end
member(member, allow_nil = false)
click to toggle source
# File lib/monarchy/validators.rb, line 48 def member(member, allow_nil = false) raise Monarchy::Exceptions::MemberIsNil if !member && !allow_nil model_is_class(member, Monarchy.member_class, 'ModelNotMember') end
resource(resource, allow_nil = false, persistance = true)
click to toggle source
# File lib/monarchy/validators.rb, line 32 def resource(resource, allow_nil = false, persistance = true) raise Monarchy::Exceptions::ResourceIsNil if !resource && !allow_nil model = check_model_class(resource, 'ModelNotResource') do resource.class.try(:acting_as_resource) end persistance && resource && !resource.persisted? ? raise(Monarchy::Exceptions::ResourceNotPersist) : model end
role(role, allow_nil = false)
click to toggle source
# File lib/monarchy/validators.rb, line 54 def role(role, allow_nil = false) raise Monarchy::Exceptions::RoleIsNil if !role && !allow_nil model_is_class(role, Monarchy.role_class, 'ModelNotRole') end
role_name(role_name)
click to toggle source
# File lib/monarchy/validators.rb, line 19 def role_name(role_name) role = Monarchy.role_class.find_by(name: role_name) role || raise(Monarchy::Exceptions::RoleNotExist, role_name) end
role_names(*role_names)
click to toggle source
# File lib/monarchy/validators.rb, line 24 def role_names(*role_names) role_names.flatten! roles = Monarchy.role_class.where(name: role_names) wrong_names = role_names.map(&:to_s) - roles.map(&:name) wrong_names.each { |name| raise(Monarchy::Exceptions::RoleNotExist, name) } roles end
user(user, allow_nil = false)
click to toggle source
# File lib/monarchy/validators.rb, line 42 def user(user, allow_nil = false) raise Monarchy::Exceptions::UserIsNil if !user && !allow_nil model_is_class(user, Monarchy.user_class, 'ModelNotUser') end
Private Class Methods
check_model_class(model, exception_class) { || ... }
click to toggle source
# File lib/monarchy/validators.rb, line 62 def check_model_class(model, exception_class) if yield model elsif model raise "Monarchy::Exceptions::#{exception_class}".constantize, model end end
model_is_class(model, klass, exception_class)
click to toggle source
# File lib/monarchy/validators.rb, line 70 def model_is_class(model, klass, exception_class) check_model_class(model, exception_class) do model.is_a?(klass) end end