Module: Hutch::Config
- Defined in:
- lib/hutch/config.rb
Class Method Summary collapse
- .check_attr(attr) ⇒ Object
- .get(attr) ⇒ Object (also: [])
- .initialize ⇒ Object
- .load_from_file(file) ⇒ Object
- .method_missing(method, *args, &block) ⇒ Object
- .set(attr, value) ⇒ Object (also: []=)
- .user_config ⇒ Object
Class Method Details
.check_attr(attr) ⇒ Object
44 45 46 47 48 |
# File 'lib/hutch/config.rb', line 44 def self.check_attr(attr) unless user_config.key?(attr) raise UnknownAttributeError, "#{attr} is not a valid config attribute" end end |
.get(attr) ⇒ Object Also known as: []
29 30 31 32 |
# File 'lib/hutch/config.rb', line 29 def self.get(attr) check_attr(attr) user_config[attr] end |
.initialize ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/hutch/config.rb', line 10 def self.initialize @config = { mq_host: 'localhost', mq_port: 5672, mq_exchange: 'hutch', # TODO: should this be required? mq_vhost: '/', mq_tls: false, mq_username: 'guest', mq_password: 'guest', mq_api_host: 'localhost', mq_api_port: 15672, mq_api_ssl: false, log_level: Logger::INFO, require_paths: [], autoload_rails: true, error_handlers: [Hutch::ErrorHandlers::Logger.new] } end |
.load_from_file(file) ⇒ Object
55 56 57 58 59 |
# File 'lib/hutch/config.rb', line 55 def self.load_from_file(file) YAML.load(file).each do |attr, value| Hutch::Config.send("#{attr}=", value) end end |
.method_missing(method, *args, &block) ⇒ Object
61 62 63 64 65 66 67 68 69 70 |
# File 'lib/hutch/config.rb', line 61 def self.method_missing(method, *args, &block) attr = method.to_s.sub(/=$/, '').to_sym return super unless user_config.key?(attr) if method =~ /=$/ set(attr, args.first) else get(attr) end end |
.set(attr, value) ⇒ Object Also known as: []=
34 35 36 37 |
# File 'lib/hutch/config.rb', line 34 def self.set(attr, value) check_attr(attr) user_config[attr] = value end |
.user_config ⇒ Object
50 51 52 53 |
# File 'lib/hutch/config.rb', line 50 def self.user_config initialize unless @config @config end |