class Waistband::Configuration
Attributes
Public Class Methods
Source
# File lib/waistband/configuration.rb, line 15 def initialize @yml_config = {} @indexes = {} end
Public Instance Methods
Source
# File lib/waistband/configuration.rb, line 43 def client ::Waistband::Client.from_config(client_config_hash) end
Source
# File lib/waistband/configuration.rb, line 32 def index(name) return @indexes[name] if @indexes[name] yml = load_yml_with_erb(File.join(config_dir, "waistband_#{name}.yml")) @indexes[name] = yml[@env].with_indifferent_access end
Source
# File lib/waistband/configuration.rb, line 38 def method_missing(method_name, *args, &block) return @yml_config[method_name] if @yml_config.has_key?(method_name) super end
Calls superclass method
Source
# File lib/waistband/configuration.rb, line 47 def reset_timeout remove_instance_variable '@timeout' end
Source
# File lib/waistband/configuration.rb, line 20 def setup self.config_dir = default_config_dir unless config_dir raise "Please define a valid `config_dir` configuration variable!" unless config_dir raise "Couldn't find configuration directory #{config_dir}" unless File.exist?(config_dir) @env ||= ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development' yml = load_yml_with_erb(File.join(config_dir, 'waistband.yml')) @yml_config = yml[@env].with_indifferent_access @adapter = @yml_config.delete('adapter') end
Private Instance Methods
Source
# File lib/waistband/configuration.rb, line 53 def client_config_hash { 'servers' => servers, 'randomize_hosts' => true, 'retry_on_failure' => retries, 'reload_on_failure' => reload_on_failure, 'timeout' => timeout, 'adapter' => @adapter } end
Source
# File lib/waistband/configuration.rb, line 77 def default_config_dir @default_config_dir ||= begin return nil unless defined?(Rails) File.join(Rails.root, 'config') end end
Source
# File lib/waistband/configuration.rb, line 64 def load_yml_with_erb(file) if defined?(ERB) YAML.safe_load(ERB.new(File.read(file)).result, aliases: true, permitted_classes: [Symbol]) else YAML.safe_load_file(file, aliases: true, permitted_classes: [Symbol]) end end
Source
# File lib/waistband/configuration.rb, line 72 def timeout return @timeout if defined? @timeout @yml_config['timeout'] end