Module: Conduct

Extended by:
ActiveSupport::Concern
Included in:
Ability
Defined in:
lib/conduct.rb,
lib/conduct/rule.rb,
lib/conduct/rails.rb,
lib/conduct/version.rb,
lib/generators/conduct/ability/ability_generator.rb,
lib/generators/conduct/install/install_generator.rb

Defined Under Namespace

Modules: ClassMethods, Generators, Rails Classes: Rule

Constant Summary collapse

VERSION =
'0.1.14'

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#current_userObject (readonly)

Returns the value of attribute current_user.



95
96
97
# File 'lib/conduct.rb', line 95

def current_user
  @current_user
end

Instance Method Details

#can?(action, subject, options = {}) ⇒ Boolean

Returns:

  • (Boolean)


105
106
107
108
109
110
# File 'lib/conduct.rb', line 105

def can?(action, subject, options = {})
  name = build_name_for(action, subject)
  rule = rules[name] || rules["#{action}_all"]
  return false unless rule
  rule.result(subject, options)
end

#cannot?(*args) ⇒ Boolean

Returns:

  • (Boolean)


112
113
114
# File 'lib/conduct.rb', line 112

def cannot?(*args)
  !can?(*args)
end

#initialize(user) ⇒ Object



97
98
99
# File 'lib/conduct.rb', line 97

def initialize(user)
  @current_user = self.class.current_user = user
end

#rulesObject



101
102
103
# File 'lib/conduct.rb', line 101

def rules
  @rules ||= self.class.rules
end