Module: CanCan::EditAbility

Defined in:
lib/cancan_edit/edit_ability.rb

Instance Method Summary collapse

Instance Method Details

#can_edit(field = nil, subject = nil, conditions = nil, &block) ⇒ Object



16
17
18
# File 'lib/cancan_edit/edit_ability.rb', line 16

def can_edit(field = nil, subject = nil, conditions = nil, &block)
  edit_rules << EditRule.new(true, field, subject, conditions, block)
end

#can_edit?(field, subject, *extra_args) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
8
9
10
# File 'lib/cancan_edit/edit_ability.rb', line 5

def can_edit?(field, subject, *extra_args)
  match = relevant_edit_rules_for_match(field, subject).detect do |rule|
    rule.matches_conditions?(field, subject, extra_args)
  end
  match ? match.base_behavior : false
end

#cannot_edit(field = nil, subject = nil, conditions = nil, &block) ⇒ Object



20
21
22
# File 'lib/cancan_edit/edit_ability.rb', line 20

def cannot_edit(field = nil, subject = nil, conditions = nil, &block)
  edit_rules << EditRule.new(false, field, subject, conditions, block)
end

#cannot_edit?(*args) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/cancan_edit/edit_ability.rb', line 12

def cannot_edit?(*args)
  !can_edit?(*args)
end

#has_block?(field, subject) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/cancan_edit/edit_ability.rb', line 24

def has_block?(field, subject)
  relevant_rules(field, subject).any?(&:only_block?)
end

#has_raw_sql?(field, subject) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/cancan_edit/edit_ability.rb', line 28

def has_raw_sql?(field, subject)
  relevant_rules(field, subject).any?(&:only_raw_sql?)
end