class ConfigMapper::ConfigStruct::Attribute

Attributes

default[RW]
description[RW]
factory[RW]
name[R]
required[RW]
validator[RW]

Public Class Methods

new(name) click to toggle source
# File lib/config_mapper/config_struct.rb, line 225
def initialize(name)
  @name = name.to_sym
end

Public Instance Methods

config_doc() click to toggle source
# File lib/config_mapper/config_struct.rb, line 246
def config_doc
  self_doc.merge(type_doc)
end
factory=(arg) click to toggle source
# File lib/config_mapper/config_struct.rb, line 242
def factory=(arg)
  @factory = Factory.resolve(arg)
end
initial_value() click to toggle source
# File lib/config_mapper/config_struct.rb, line 237
def initial_value
  return factory.new if factory
  default
end

Private Instance Methods

self_doc() click to toggle source
# File lib/config_mapper/config_struct.rb, line 252
def self_doc
  {
    ".#{name}" => {}.tap do |doc|
      doc["description"] = description if description
      doc["default"] = default if default
      doc["type"] = String(validator.name) if validator.respond_to?(:name)
    end
  }
end
type_doc() click to toggle source
# File lib/config_mapper/config_struct.rb, line 262
def type_doc
  return {} unless factory.respond_to?(:config_doc)
  factory.config_doc.each_with_object({}) do |(path, doc), result|
    result[".#{name}#{path}"] = doc
  end
end