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.6'

Class Method Summary collapse

Class Method Details

.auth_attributes ⇒ Object



24
25
26
27
28
# File 'lib/tramway/api.rb', line 24

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

.auth_config ⇒ Object



6
7
8
# File 'lib/tramway/api.rb', line 6

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

.auth_config=(params) ⇒ Object



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

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



38
39
40
# File 'lib/tramway/api.rb', line 38

def available_models
  @@available_models ||= {}
end

.set_available_models(**models) ⇒ Object



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

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



18
19
20
21
22
# File 'lib/tramway/api.rb', line 18

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