Module: Tramway::Api

Defined in:
lib/tramway/api.rb,
lib/tramway/api/engine.rb,
lib/tramway/api/version.rb,
app/jobs/tramway/api/application_job.rb,
app/models/tramway/api/application_record.rb,
app/helpers/tramway/api/application_helper.rb,
app/mailers/tramway/api/application_mailer.rb,
app/controllers/tramway/api/application_controller.rb,
app/controllers/tramway/api/v1/application_controller.rb

Defined Under Namespace

Modules: ApplicationHelper, V1 Classes: ApplicationController, ApplicationJob, ApplicationMailer, ApplicationRecord, AuthenticationForm, Engine

Constant Summary collapse

VERSION =
'1.7'

Class Method Summary collapse

Class Method Details

.auth_attributes ⇒ Object



26
27
28
29
30
# File 'lib/tramway/api.rb', line 26

def auth_attributes
  @@auth_config.reduce({}) do |hash, conf|
    hash.merge! conf[:user_model] => conf[:auth_attributes]
  end
end

.auth_config ⇒ Object



8
9
10
# File 'lib/tramway/api.rb', line 8

def auth_config
  @@auth_config ||= [{ user_model: ::Tramway::User::User, auth_attributes: :email }]
end

.auth_config=(params) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/tramway/api.rb', line 12

def auth_config=(params)
  if params.is_a? Hash
    @@auth_config = [params]
  elsif params.is_a? Array
    @@auth_config = params
  end
end

.available_models ⇒ Object



40
41
42
# File 'lib/tramway/api.rb', line 40

def available_models
  @@available_models ||= {}
end

.set_available_models(**models) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/tramway/api.rb', line 32

def set_available_models(**models)
  @@available_models ||= {}
  models = models.reduce({}) do |hash, pair|
    hash.merge! pair[0].to_s.camelize => pair[1]
  end
  @@available_models.merge! models
end

.user_based_models ⇒ Object



20
21
22
23
24
# File 'lib/tramway/api.rb', line 20

def user_based_models
  @@auth_config.map do |conf|
    conf[:user_model]
  end
end