fluke/devops-service/devops-service.rb
2015-02-12 13:30:49 +03:00

88 lines
1.9 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 "test_subscriber"
require "test_subscriber_2"
require_relative "routes/v2.0"
require_relative "client"
require_relative "report"
require_relative "version"
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"