module Stealth
Constants
- VERSION
Public Class Methods
boot()
click to toggle source
# File lib/stealth/base.rb, line 32 def self.boot load_environment end
config()
click to toggle source
# File lib/stealth/base.rb, line 36 def self.config Thread.current[:configuration] ||= load_services_config end
configuration=(config)
click to toggle source
# File lib/stealth/base.rb, line 40 def self.configuration=(config) Thread.current[:configuration] = config end
env()
click to toggle source
# File lib/stealth/base.rb, line 24 def self.env @env ||= ActiveSupport::StringInquirer.new(ENV['STEALTH_ENV'] || 'development') end
load_environment()
click to toggle source
# File lib/stealth/base.rb, line 79 def self.load_environment require File.join(Stealth.root, 'config', 'boot') require_directory("config/initializers") # Require explicitly to ensure it loads first require_directory File.join(Stealth.root, 'bot', 'controllers', 'concerns') require_directory File.join(Stealth.root, 'bot', 'models', 'concerns') require File.join(Stealth.root, 'bot', 'controllers', 'bot_controller') require File.join(Stealth.root, 'bot', 'models', 'bot_record') require File.join(Stealth.root, 'config', 'flow_map') require_directory("bot") if defined?(ActiveRecord) if ENV['DATABASE_URL'].present? ActiveRecord::Base.establish_connection(ENV['DATABASE_URL']) else ActiveRecord::Base.establish_connection(YAML::load_file("config/database.yml")[Stealth.env]) end end end
load_services_config(services_yaml=nil)
click to toggle source
Loads the services.yml configuration unless one has already been loaded
# File lib/stealth/base.rb, line 50 def self.load_services_config(services_yaml=nil) @semaphore ||= Mutex.new services_yaml ||= Stealth.load_services_config( File.read(File.join(Stealth.root, 'config', 'services.yml')) ) Thread.current[:configuration] ||= begin @semaphore.synchronize do services_config = YAML.load(ERB.new(services_yaml).result) unless services_config.has_key?(env) raise Stealth::Errors::ConfigurationError, "Could not find services.yml configuration for #{env} environment" end config = Stealth::Configuration.new(services_config[env]) set_config_defaults(config) config end end end
load_services_config!(services_yaml=nil)
click to toggle source
Same as `load_services_config` but forces the loading even if one has already been loaded
# File lib/stealth/base.rb, line 74 def self.load_services_config!(services_yaml=nil) Thread.current[:configuration] = nil load_services_config(services_yaml) end
root()
click to toggle source
# File lib/stealth/base.rb, line 28 def self.root @root ||= File.expand_path(Pathname.new(Dir.pwd)) end
set_config_defaults(config)
click to toggle source
# File lib/stealth/base.rb, line 44 def self.set_config_defaults(config) config.dynamic_delay_muliplier = 1.0 config.session_ttl = 0 end
Private Class Methods
for_each_file_in(directory, &blk)
click to toggle source
# File lib/stealth/base.rb, line 107 def self.for_each_file_in(directory, &blk) directory = directory.to_s.gsub(%r{(\/|\\)}, File::SEPARATOR) directory = Pathname.new(Dir.pwd).join(directory).to_s directory = File.join(directory, '**', '*.rb') unless directory =~ /(\*\*)/ Dir.glob(directory).sort.each(&blk) end
require_directory(directory)
click to toggle source
# File lib/stealth/base.rb, line 103 def self.require_directory(directory) for_each_file_in(directory) { |file| require_relative(file) } end