Module: Tramway::RecordsModels

Included in:
Tramway
Defined in:
lib/tramway/records_models.rb

Instance Method Summary collapse

Instance Method Details

#available_models(role:) ⇒ Object



27
28
29
# File 'lib/tramway/records_models.rb', line 27

def available_models(role:)
  models_array models_type: :available, role: role
end

#available_models_for(project, role: :admin) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/tramway/records_models.rb', line 17

def available_models_for(project, role: :admin)
  project = project.underscore.to_sym unless project.is_a? Symbol
  models = get_models_by_key(@available_models, project, role)
  models = available_models_for_engine(project, role, models) if project_is_engine?(project)

  models.map do |model|
    model.instance_of?(String) ? model.constantize : model
  end
end

#clear_available_models!Object



31
32
33
# File 'lib/tramway/records_models.rb', line 31

def clear_available_models!
  @available_models = {}
end

#set_available_models(*models, project:, role: :admin) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/tramway/records_models.rb', line 4

def set_available_models(*models, project:, role: :admin)
  initialize_available_models_for project, role

  models.each do |model|
    if model.instance_of?(Class) || model.instance_of?(String)
      @available_models[project][role].merge! model.to_s => %i[index show update create destroy]
    elsif model.instance_of?(Hash)
      @available_models[project][role].merge! model
    end
  end
  @available_models = @available_models.with_indifferent_access
end