Class: AppKit::Application

Inherits:
Object
  • Object
show all
Includes:
Dsl::ApplicationDsl
Defined in:
lib/app_kit/application.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Dsl::ApplicationDsl

#dashboard, #disable_authentication, #navigation_item, #title

Constructor Details

#initializeApplication

Returns a new instance of Application.



8
9
10
11
12
13
# File 'lib/app_kit/application.rb', line 8

def initialize
  @config = AppKit::Configuration.new
  @resources = []
  @navigation_items = []
  @dashboard_view = AppKit::Views::Dashboard.new
end

Instance Attribute Details

#configObject

Returns the value of attribute config.



4
5
6
# File 'lib/app_kit/application.rb', line 4

def config
  @config
end

#dashboard_viewObject

Returns the value of attribute dashboard_view.



3
4
5
# File 'lib/app_kit/application.rb', line 3

def dashboard_view
  @dashboard_view
end


15
16
17
18
# File 'lib/app_kit/application.rb', line 15

def navigation_items(position = :all)
  return @navigation_items if position == :all
  navigation_items.select { |i| i.position == position }
end

#resourcesObject

Returns the value of attribute resources.



5
6
7
# File 'lib/app_kit/application.rb', line 5

def resources
  @resources
end

Instance Method Details

#setup!(&block) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/app_kit/application.rb', line 20

def setup!(&block)
  AppKit::LOAD_PATH.each do |path|
    AppKit::Engine.config.watchable_dirs[path] = [:rb]
  end
  # setup load paths
  ActiveSupport::Dependencies.autoload_paths -= AppKit::LOAD_PATH
  Rails.application.config.eager_load_paths  -= AppKit::LOAD_PATH

  # reload the rails routes after initialization has completed.
  Rails.application.config.after_initialize do
    ActionDispatch::Reloader.to_prepare do
      Rails.application.reload_routes!
    end

    # load DSL files
    files = AppKit::LOAD_PATH.flatten.compact.uniq.map{ |path| Dir["#{path}/**/*.rb"] }.flatten
    files.each { |file| load file }

    # process application dsl
    AppKit.application.instance_exec(&block)
    if config.authentication_enabled?
      require "app_kit/user_resource"
      AppKit::ApplicationController.class_eval("before_filter :authenticate_user!")
    end
  end
end