Module: Ez::Settings::Accessors

Included in:
Ez::Settings
Defined in:
lib/ez/settings/accessors.rb

Instance Method Summary collapse

Instance Method Details

#[](interface_name, group_name = nil, key_name = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ez/settings/accessors.rb', line 9

def [](interface_name, group_name = nil, key_name = nil)
  interface = interface(interface_name)

  not_registered_interface!(interface_name) unless interface

  if only_interface?(interface, group_name, key_name)
    interface
  else
    group = group(interface, group_name)

    not_registered_group!(interface_name, group_name) unless group

    if interface_and_group?(interface, group_name, key_name)
      group(interface, group_name)
    else
      begin
        store(interface, group).send(key_name.to_sym)
      rescue NoMethodError
        not_registered_key!(interface_name, group_name, key_name)
      end
    end
  end
end