class AppBase::Engine::AppBaseEngineInitializer

Public Class Methods

new() click to toggle source
# File lib/appbase/railtie.rb, line 88
def initialize
  @initialized = false
  @hooks = []
end

Public Instance Methods

after_initialized(&block) click to toggle source
# File lib/appbase/railtie.rb, line 104
def after_initialized(&block)
  if @initialized
    block.call
  else
    @hooks << block
  end
end
bootstrap(app_config) click to toggle source
# File lib/appbase/railtie.rb, line 93
def bootstrap(app_config)
  return if @initialized
  @config = app_config.appbase
  initialize_user_identity
  initialize_crud_stubs
  initialize_rpc_stubs
  finilize_routes
  post_initialize
  @initialized = true
end

Private Instance Methods

finilize_routes() click to toggle source
# File lib/appbase/railtie.rb, line 142
def finilize_routes
  AppBase::Engine.routes.draw do
    get "/appbase_version" => "app_base#version"
  end
end
initialize_crud_stubs() click to toggle source
# File lib/appbase/railtie.rb, line 130
def initialize_crud_stubs
  AppBase::Registry.each_crud @config.models do |model, op|
    CrudInitializer.new(model, op).init
  end
end
initialize_rpc_stubs() click to toggle source
# File lib/appbase/railtie.rb, line 136
def initialize_rpc_stubs
  AppBase::Registry.each_rpc do |r|
    RpcMethodInitializer.new(r).init
  end
end
initialize_user_identity() click to toggle source
# File lib/appbase/railtie.rb, line 124
def initialize_user_identity
  pre_init_user_identity
  AppBase::Engine.const_set :UserIdentity, @config.user_identity.to_s.extend(AppBase::StringExtension)
  AppBaseController.define_useridentity @config.user_identity, @config.token_store, @config.token_key_user, @config.token_key_session
end
post_initialize() click to toggle source
# File lib/appbase/railtie.rb, line 148
def post_initialize
  blocks, @hooks = @hooks, []
  blocks.each do |block|
    block.call
  end
end
pre_init_user_identity() click to toggle source
# File lib/appbase/railtie.rb, line 114
def pre_init_user_identity
  if @config.user_identity.nil?
    raise "AppBase configuration error: please use `config.appbase.user_identity = :UserIdentity` to specify the user identity model; and implement UserIdentity.authenticate_by_token(user, token):UserIdentity method."
  end
  user_identity = Object.const_get @config.user_identity.to_sym
  if !user_identity.respond_to?(:authenticate_by_token) || user_identity.method(:authenticate_by_token).parameters.count != 2
    raise "It's required to implement UserIdentity.authenticate_by_token(user, token):UserIdentity method."
  end
end