Class: ApiMaker::AbilityLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/api_maker/ability_loader.rb

Instance Method Summary collapse

Constructor Details

#initialize(ability:, args:) ⇒ AbilityLoader

Returns a new instance of AbilityLoader.



2
3
4
5
6
# File 'lib/api_maker/ability_loader.rb', line 2

def initialize(ability:, args:)
  @ability = ability
  @args = args
  @loaded_model_names = {}
end

Instance Method Details

#load_model_class(model_class) ⇒ Object



8
9
10
11
12
13
# File 'lib/api_maker/ability_loader.rb', line 8

def load_model_class(model_class)
  return if @loaded_model_names.key?(model_class.name)

  resource = ApiMaker::MemoryStorage.current.resource_for_model(model_class)
  load_resource(resource)
end

#load_resource(resource) ⇒ Object



15
16
17
18
19
20
# File 'lib/api_maker/ability_loader.rb', line 15

def load_resource(resource)
  return if @loaded_model_names.key?(resource.model_class_name)

  resource.new(ability: @ability, args: @args, model: nil).abilities
  @loaded_model_names[resource.model_class_name] = true
end