fluke/devops-service/devops-service.rb
2015-07-02 20:17:25 +04:00

74 lines
1.7 KiB
Ruby

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
# 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
# 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
end
def self.create_method name, &block
send(:generate_method, name, &block)
end
end
require "wisper_fix"