Class: Ditty::App

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

Class Method Summary collapse

Class Method Details

.configure(_container) ⇒ Object



17
18
19
20
# File 'lib/ditty/components/app.rb', line 17

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

.loadObject



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

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

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

.migrationsObject



22
23
24
# File 'lib/ditty/components/app.rb', line 22

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


40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/ditty/components/app.rb', line 40

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' }
      ]
    }
  ]
end

.routesObject



30
31
32
33
34
35
36
37
38
# File 'lib/ditty/components/app.rb', line 30

def self.routes
  load
  {
    '/' => ::Ditty::Main,
    '/users' => ::Ditty::Users,
    '/roles' => ::Ditty::Roles,
    '/audit-logs' => ::Ditty::AuditLogs
  }
end

.seederObject



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/ditty/components/app.rb', line 58

def self.seeder
  proc do
    load

    ::Ditty::Role.find_or_create(name: 'super_admin')
    ::Ditty::Role.find_or_create(name: 'admin')
    user_role = ::Ditty::Role.find_or_create(name: 'user')

    # Anonymous User
    anon = ::Ditty::User.find_or_create(email: '[email protected]')
    anon.remove_role user_role
    anon_role = ::Ditty::Role.find_or_create(name: 'anonymous')
    anon.add_role anon_role unless anon.role?('anonymous')
  end
end

.view_folderObject



26
27
28
# File 'lib/ditty/components/app.rb', line 26

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