class Lutaml::Model::Schema::Generator::PropertiesCollection
def add_property(property)
def add_property(property) @properties << if property.is_a?(Property) property else Property.new(property.name, property, register: register) end end
def from_attributes(attributes, register)
def from_attributes(attributes, register) new(register: register).tap do |collection| attributes.each do |attribute| name = attribute.name collection << Property.new(name, attribute, register: register) end end end
def from_class(klass)
def from_class(klass) from_attributes(klass.attributes.values, extract_register_from(klass)) end
def initialize(properties = [], register:)
def initialize(properties = [], register:) self.properties = properties @register = register end
def properties=(properties)
def properties=(properties) @properties ||= [] @properties.clear @properties = properties.map do |property| next property if property.is_a?(Property) Property.new(property.name, property, register) end end
def to_schema
def to_schema properties.each_with_object({}) do |property, schema| schema.merge!(property.to_schema) end end