require "wisper" $:.push File.dirname(__FILE__) require "db/exceptions/invalid_record" require "db/exceptions/record_not_found" require "exceptions/dependency_error" require "db/validators/all" require "db/mongo/mongo_connector" require "providers/provider_factory" require "fog" require "loader" require "devops_db" require_relative "routes/v2.0" require "hooks" require "app/devops-application" require "app/devops-client" require "app/sidekiq_web" require "app/devops-version" require "app/devops-api2" require_relative "sinatra/methods_with_headers" class DevopsService include Wisper::Publisher class << self def routes config = DevopsConfig.config Devops::Routes.preffix = config[:url_prefix] #require_relative "routes/routes.rb" end # 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 routes apps = Devops::Application::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 end def debug? DevopsConfig.config[:debug] end # you could check env via # DevopsService.env.development? or # DevopsService.env.test? or # DevopsService.env.production? def self.env unless @env @env = DevopsConfig.config[:env].dup def @env.test? self == 'test' end def @env.development? self == 'development' end def @env.production? self == 'production' end end @env end end def self.create_method name, &block send(:generate_method, name, &block) end end require "wisper_fix"