Class: S3MediaServerApi::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/s3_media_server_api/config.rb

Class Method Summary collapse

Class Method Details

.add_config(name, default_value = nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/s3_media_server_api/config.rb', line 7

def add_config(name, default_value = nil)

  define_singleton_method "#{name}=".to_sym do |value|
    instance_variable_set("@#{name}".to_sym,value)
  end

  define_singleton_method "#{name}".to_sym do
    value = instance_variable_get(:"@#{name}")
    raise ConfigError.new("Key: '#{name}' cannot be nil.")  if @required_keys.include?(name.to_sym) && value.nil?
    value
  end

  self.send("#{name}=".to_sym, default_value)
end

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



26
27
28
29
30
31
# File 'lib/s3_media_server_api/config.rb', line 26

def configure
  yield self
  @required_keys.each do |key|
    raise ConfigError.new("Key: #{key} cannot be nil.") if instance_variable_get(:"@#{key}").nil?
  end
end

.required(*args) ⇒ Object



22
23
24
# File 'lib/s3_media_server_api/config.rb', line 22

def required(*args)
  @required_keys = args
end