Class: AlphaApi::DynamicSettingsNode

Inherits:
SettingsNode show all
Defined in:
lib/alpha_api/dynamic_settings_node.rb

Direct Known Subclasses

NamespaceSettings

Class Method Summary collapse

Methods inherited from SettingsNode

build

Class Method Details

.add_reader(name) ⇒ Object



16
17
18
19
20
# File 'lib/alpha_api/dynamic_settings_node.rb', line 16

def add_reader(name)
  define_singleton_method(name) do |*args|
    send("#{name}_setting").value(*args)
  end
end

.add_writer(name, type) ⇒ Object



22
23
24
25
26
# File 'lib/alpha_api/dynamic_settings_node.rb', line 22

def add_writer(name, type)
  define_singleton_method("#{name}=") do |value|
    send("#{name}_setting=", DynamicSetting.build(value, type))
  end
end

.register(name, value, type = nil) ⇒ Object



9
10
11
12
13
14
# File 'lib/alpha_api/dynamic_settings_node.rb', line 9

def register(name, value, type = nil)
  class_attribute "#{name}_setting"
  add_reader(name)
  add_writer(name, type)
  send "#{name}=", value
end