Class: Ditty::Ditty

Inherits:
Object
  • Object
show all
Defined in:
lib/ditty/components/ditty.rb

Class Method Summary collapse

Class Method Details

.configure(_container) ⇒ Object



19
20
21
22
# File 'lib/ditty/components/ditty.rb', line 19

def self.configure(_container)
  require 'ditty/db' unless defined? ::DB
  require 'ditty/listener'
end

.loadObject



8
9
10
11
12
13
14
15
16
17
# File 'lib/ditty/components/ditty.rb', line 8

def self.load
  controllers = File.expand_path('../controllers', __dir__)
  Dir.glob("#{controllers}/*.rb").sort.each { |f| require f }

  require 'ditty/models/user'
  require 'ditty/models/role'
  require 'ditty/models/identity'
  require 'ditty/models/audit_log'
  require 'ditty/models/user_login_trait'
end

.migrationsObject



24
25
26
# File 'lib/ditty/components/ditty.rb', line 24

def self.migrations
  File.expand_path('../../../migrate', __dir__)
end


48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/ditty/components/ditty.rb', line 48

def self.navigation
  load

  [
    {
      group: 'User Management',
      order: 10,
      icon: 'lock',
      target: ::Ditty::User,
      items: [
        { order: 10, link: '/users/', text: 'Users', target: ::Ditty::User, icon: 'user' },
        { order: 20, link: '/roles/', text: 'Roles', target: ::Ditty::Role, icon: 'check-square' },
        { order: 30, link: '/audit-logs/', text: 'Audit Logs', target: ::Ditty::AuditLog, icon: 'history' },
        { order: 40, link: '/login-traits/', text: 'User Login Traits', target: ::Ditty::UserLoginTrait, icon: 'list' }
      ]
    }
  ]
end

.public_folderObject



32
33
34
# File 'lib/ditty/components/ditty.rb', line 32

def self.public_folder
  File.expand_path('../../../public', __dir__)
end

.routesObject



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/ditty/components/ditty.rb', line 36

def self.routes
  load
  {
    '/' => ::Ditty::MainController,
    '/auth' => ::Ditty::AuthController,
    '/users' => ::Ditty::UsersController,
    '/roles' => ::Ditty::RolesController,
    '/audit-logs' => ::Ditty::AuditLogsController,
    '/login-traits' => ::Ditty::UserLoginTraitsController
  }
end

.seederObject



67
68
69
70
71
72
73
74
75
# File 'lib/ditty/components/ditty.rb', line 67

def self.seeder
  proc do
    load

    sa = ::Ditty::Role.find_or_create(name: 'super_admin')
    admin = ::Ditty::Role.find_or_create(name: 'admin') { |e| e.parent = sa }
    ::Ditty::Role.find_or_create(name: 'user') { |e| e.parent = admin }
  end
end

.tasksObject



77
78
79
80
81
# File 'lib/ditty/components/ditty.rb', line 77

def self.tasks
  Kernel.load 'ditty/tasks/ditty.rake'
  auth_settings = ::Ditty::Services::Settings[:authentication] || {}
  Kernel.load 'ditty/tasks/omniauth-ldap.rake' if auth_settings.key?(:ldap)
end

.view_folderObject



28
29
30
# File 'lib/ditty/components/ditty.rb', line 28

def self.view_folder
  File.expand_path('../../../views', __dir__)
end