Sha256: aae17d878b3f3d754e72b2136fb627d90712935df93b742caa61b3b3abad4e0c

Contents?: true

Size: 1.83 KB

Versions: 1

Compression:

Stored size: 1.83 KB

Contents

class CDM::EntityDefinition
  attr_accessor :name,
                :version_id,
                :type,
                :document_version,
                :last_saved_tools_version,
                :system_version,
                :minimum_tools_version,
                :mac_os_version,
                :i_os_version

  def initialize
    @name                     = ""
    @version_id               = ""
    @type                     = "com.apple.IDECoreDataModeler.DataModel"
    @document_version         = "1.0"
    @last_saved_tools_version = "2061"
    @system_version           = "12D78"
    @minimum_tools_version    = "Automatic"
    @mac_os_version           = "Automatic"
    @i_os_version             = "Automatic"
  end

  def entities
    @entities ||= []
  end

  def create_entity(entity_name, &b)
    entity = CDM::EntityDescriptor.new(entity_name)
    if block_given?
      yield(entity)
    end
    entities.push entity
  end

  def xml_attributes
    attrs = {
      name:                               name,
      userDefinedModelVersionIdentifier:  version_id,
      type:                               type,
      documentVersion:                    document_version,
      lastSavedToolsVersion:              last_saved_tools_version,
      systemVersion:                      system_version,
      minimumToolsVersion:                minimum_tools_version,
      macOSVersion:                       mac_os_version,
      iOSVersion:                         i_os_version
    }
    attrs.reject { |k, v| v.nil? }
  end

  def xml_attributes_as_string
    xml_attributes.map { |k, v| "#{k}=\"#{v}\"" }.join(" ")
  end

  def to_xml
    xml = [
      "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>",
      "<model #{xml_attributes_as_string}>",
      entities.map(&:to_xml),
      "</model>"
    ]
    xml.flatten.join("\n")
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
core_data_motion-0.0.1 lib/core_data_motion/entity_definition.rb