module AppKit

Constants

LOAD_PATH
VERSION

Public Class Methods

application() click to toggle source
# File lib/app_kit.rb, line 40
def self.application
  @@application
end
register(model, &block) click to toggle source
# File lib/app_kit/dsl.rb, line 2
def self.register(model, &block)
  # create resource controller
  return unless ActiveRecord::Base.connection.table_exists? model.table_name
  resource_name = model.name.demodulize.underscore.pluralize
  controller_name = model.name.demodulize.pluralize
  controller = AppKit.const_set("#{controller_name}Controller",
                                Class.new(ResourcesController))
  controller.resource = Resource.new(model)
  # process resource dsl
  controller.resource.instance_exec(&block)  if block_given?
  controller.resource.controller_name = controller.controller_name
  controller.prepend_view_path("app/views/#{model.name.underscore.pluralize}")

  # draw controller routes
  AppKit::Engine.routes.append do
    resources resource_name.to_sym do
      controller.resource.has_many_associations.each do |assoc|
        resources assoc.name.to_s.pluralize, only: [:new]
      end
      member do
        get 'history' => :history, :as => :history
        get 'version/:version_id' => :version, :as => :version
        controller.resource.member_actions.each do |name,action|
          get action.name, action: 'perform_action', action_name: 'deactivate'
        end
      end
      collection do
        get 'versions/:version_id' => :show_version, :as => :show_version
      end
    end
  end
end
setup(&block) click to toggle source
# File lib/app_kit/dsl.rb, line 34
def self.setup(&block)
    AppKit.application.setup!(&block)
end