require "lib/core_ext/hash" require "lib/core_ext/nil_class" require "lib/core_ext/string" require_relative "devops-loader" require_relative "devops-application" require_relative "devops-db" require_relative "devops-logger" require_relative "devops-messages" require "lib/knife/knife_factory" require_relative "../sinatra/methods_with_headers" require_relative "../applications" require_relative "devops-routes" class DevopsService class << self # steps: # 1. init db # 2. load application handlers # 3. load plugins # 4. load application routes # 5. add plugins routes # 6. init all routes classes # 7. register routes for all classes def init # init database Devops::Db.init DevopsLogger.logger = DevopsLogger.create(STDOUT) config = DevopsConfig.config Devops::Routes.preffix = config[:url_prefix] Devops::Messages.init apps = Devops::Application.applications apps.each do |a| a.prepare end Devops::Loader.prepare_plugins apps.each do |a| a.init end Devops::Loader.init_plugins apps.each do |a| a.routes end Devops::Loader.routes =begin Devops::Version2_0::Application.load Devops::Loader.load_plugins # init routes classes Devops::Version2_0::Application.init # init plugins Devops::Loader.init_plugins Devops::Version2_0::Application.register_routes # init routes paths routes # add plugins routes Devops::Loader.routes =end KnifeFactory.init end def debug? DevopsConfig.config[:debug] end end def self.create_method name, &block send(:generate_method, name, &block) end end