Class: CanOpener::Ability

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/can_opener/ability.rb

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base, *args) ⇒ Ability

Returns a new instance of Ability.



15
16
17
18
19
20
# File 'lib/can_opener/ability.rb', line 15

def initialize(base, *args)
  raise "You should only work with subclasses of CanOpener::Ability" if self.class == CanOpener::Ability
  @base = base
  setup_vars(*args)
  abilities
end

Class Attribute Details

.initializer_argumentsObject

Returns the value of attribute initializer_arguments.



6
7
8
# File 'lib/can_opener/ability.rb', line 6

def initializer_arguments
  @initializer_arguments
end

Instance Attribute Details

#userObject

Returns the value of attribute user.



12
13
14
# File 'lib/can_opener/ability.rb', line 12

def user
  @user
end

Class Method Details

.additional_ability_arguments(*args) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/can_opener/ability.rb', line 22

def self.additional_ability_arguments(*args)
  self.initializer_arguments = [:user]
  args.each_with_index do |arg, idx|
    raise ArgumentError, "user cannot be an additional argument as it is required as the first arg" if arg.to_sym == :user
    self.initializer_arguments << arg.to_sym
  end
end