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 "loader" require "devops_db" require "sidekiq/web" require "fog" require_relative "routes/v2.0" require_relative "client" require_relative "report" require_relative "version" require_relative "sinatra/methods_with_headers" class DevopsService include Wisper::Publisher class << self def routes config = DevopsConfig.config Devops::Routes.preffix = config[:url_prefix] Devops::Routes.route "/version", DevopsVersion Devops::Routes.route "/v2.0", Devops::Version2_0::Application Devops::Routes.route "/client", Client.new(config) Devops::Routes.route "/v2.0/report", ReportRoutes.new(config, "v2") Devops::Routes.route "/sidekiq", Sidekiq::Web end def init # init database Devops::Db.init # init plugins Devops::Loader.init_plugins # init routes classes Devops::Version2_0::Application.init Devops::Version2_0::Application.register_routes # init routes paths routes # add plugins routes Devops::Loader.routes 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"