class Ez::Settings::Interface
Attributes
groups[R]
name[R]
store[R]
Public Class Methods
define(name, &block)
click to toggle source
# File lib/ez/settings/interface.rb, line 23 def self.define(name, &block) interface = new(name) interface.instance_eval(&block) interface end
new(name)
click to toggle source
# File lib/ez/settings/interface.rb, line 33 def initialize(name) @name = name @keys = [] @groups = [] end
Public Instance Methods
define(&block)
click to toggle source
# File lib/ez/settings/interface.rb, line 39 def define(&block) instance_eval(&block) end
group(name, options = {}, &block)
click to toggle source
# File lib/ez/settings/interface.rb, line 43 def group(name, options = {}, &block) find_or_initialize_group(name, options, &block) end
keys()
click to toggle source
# File lib/ez/settings/interface.rb, line 47 def keys groups.map(&:keys).flatten end
Private Instance Methods
add_group(group)
click to toggle source
# File lib/ez/settings/interface.rb, line 63 def add_group(group) @groups << group group end
find_or_initialize_group(name, options = {}, &block)
click to toggle source
# File lib/ez/settings/interface.rb, line 53 def find_or_initialize_group(name, options = {}, &block) existing_group = groups.find { |g| g.name == name } if existing_group existing_group.instance_eval(&block) else add_group(Group.new(name, self.name, options, &block)) end end