class Github::API::Config::PropertySet

Class responsible for storing configuration properties

def <<(property)

Other tags:
    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)

Other tags:
    Api: - public
def [](name)
  @map[name]
end

def []=(name, property)

Other tags:
    Api: - public
def []=(name, property)
  update_map(name, property)
end

def define_reader_method(property, method_name, visibility)

Other tags:
    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)

Other tags:
    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

Other tags:
    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?

Other tags:
    Api: - public
def empty?
  @map.empty?
end

def initialize(parent = nil, properties = Set.new)

Other tags:
    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

Other tags:
    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)

Other tags:
    Api: - private
def update_map(name, property)
  @map[name.to_sym] = @map[name.to_s.freeze] = property
end