class ApiMaker::Ability
Attributes
loader[R]
Public Class Methods
new(args: nil)
click to toggle source
# File lib/api_maker/ability.rb, line 6 def initialize(args: nil) @args = args @loader = ApiMaker::AbilityLoader.new(ability: self, args: args) end
Public Instance Methods
active_record?(subject)
click to toggle source
# File lib/api_maker/ability.rb, line 34 def active_record?(subject) return subject < ActiveRecord::Base if subject.class == Class subject.is_a?(ActiveRecord::Base) end
can?(*args)
click to toggle source
Override methods from CanCan::Ability to first load abilities from the given resource
Calls superclass method
# File lib/api_maker/ability.rb, line 12 def can?(*args) subject = args.second load_abilities(subject) super end
load_abilities(subject)
click to toggle source
# File lib/api_maker/ability.rb, line 24 def load_abilities(subject) return unless active_record?(subject) if subject.class == Class loader.load_model_class(subject) elsif subject.class != Class loader.load_model_class(subject.class) end end
model_adapter(*args)
click to toggle source
Calls superclass method
# File lib/api_maker/ability.rb, line 18 def model_adapter(*args) subject = args.first load_abilities(subject) super end