class Github::API::Config::PropertySet
Class responsible for storing configuration properties
def <<(property)
- Api: - public
Returns:
-
(self)
-
Parameters:
-
property
(Property
) --
def <<(property) properties << property update_map(property.name, property.default) property.define_accessor_methods(self) self end
def [](name)
- Api: - public
def [](name) @map[name] end
def []=(name, property)
- Api: - public
def []=(name, property) update_map(name, property) end
def define_reader_method(property, method_name, visibility)
- Api: - private
def define_reader_method(property, method_name, visibility) property_set = self parent.send(:define_method, method_name) { property_set[property.name] } parent.send(visibility, method_name) end
def define_writer_method(property, method_name, visibility)
- Api: - private
def define_writer_method(property, method_name, visibility) property_set = self parent.send(:define_method, method_name) do |value| property_set[property.name]= value end parent.send(visibility, method_name) end
def each
- Api: - public
Returns:
-
(self)
-
Other tags:
- Yieldparam: property -
Other tags:
- Yield: -
def each return to_enum unless block_given? @map.each { |name, property| yield property if name.is_a?(Symbol) } self end
def empty?
- Api: - public
def empty? @map.empty? end
def initialize(parent = nil, properties = Set.new)
- Api: - private
Returns:
-
(undefined)
-
Parameters:
-
properties
(Set
) -- -
parent
(Object
) --
def initialize(parent = nil, properties = Set.new) @parent = parent @properties = properties @map = {} end
def to_hash
- Api: - public
def to_hash properties.each_with_object({}) do |property, props| name = property.name props[name] = self[name] end end
def update_map(name, property)
- Api: - private
def update_map(name, property) @map[name.to_sym] = @map[name.to_s.freeze] = property end