module Ez::Settings::Accessors

Public Instance Methods

[](interface_name, group_name = nil, key_name = nil) click to toggle source
# 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