class Ez::Settings::Interface::Group

Constants

OverwriteKeyError

Attributes

interface[R]
keys[R]
name[R]
options[R]
store[R]

Public Class Methods

new(name, interface, options = {}, &block) click to toggle source
# File lib/ez/settings/interface/group.rb, line 13
def initialize(name, interface, options = {}, &block)
  @name      = name
  @interface = interface
  @options   = options
  @keys      = []

  instance_eval(&block)
end

Public Instance Methods

key(key_name, params = {}) click to toggle source
# File lib/ez/settings/interface/group.rb, line 22
def key(key_name, params = {})
  prevent_key_rewrite!(key_name)

  keys << Interface::Key.new(key_name, params.merge(group: name, interface: interface))
  keys
end
ui_keys() click to toggle source
# File lib/ez/settings/interface/group.rb, line 29
def ui_keys
  keys.select(&:ui?)
end

Private Instance Methods

prevent_key_rewrite!(key_name) click to toggle source
# File lib/ez/settings/interface/group.rb, line 39
def prevent_key_rewrite!(key_name)
  return unless keys.map(&:name).include?(key_name)

  raise OverwriteKeyError, "Key #{key_name} already registred in #{name} group"
end