Class: CoreDataMotion::EntityDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/core_data_motion/entity_definition.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeEntityDefinition

Returns a new instance of EntityDefinition.



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/core_data_motion/entity_definition.rb', line 12

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

Instance Attribute Details

#document_versionObject

Returns the value of attribute document_version.



2
3
4
# File 'lib/core_data_motion/entity_definition.rb', line 2

def document_version
  @document_version
end

#i_os_versionObject

Returns the value of attribute i_os_version.



2
3
4
# File 'lib/core_data_motion/entity_definition.rb', line 2

def i_os_version
  @i_os_version
end

#last_saved_tools_versionObject

Returns the value of attribute last_saved_tools_version.



2
3
4
# File 'lib/core_data_motion/entity_definition.rb', line 2

def last_saved_tools_version
  @last_saved_tools_version
end

#mac_os_versionObject

Returns the value of attribute mac_os_version.



2
3
4
# File 'lib/core_data_motion/entity_definition.rb', line 2

def mac_os_version
  @mac_os_version
end

#minimum_tools_versionObject

Returns the value of attribute minimum_tools_version.



2
3
4
# File 'lib/core_data_motion/entity_definition.rb', line 2

def minimum_tools_version
  @minimum_tools_version
end

#nameObject

Returns the value of attribute name.



2
3
4
# File 'lib/core_data_motion/entity_definition.rb', line 2

def name
  @name
end

#system_versionObject

Returns the value of attribute system_version.



2
3
4
# File 'lib/core_data_motion/entity_definition.rb', line 2

def system_version
  @system_version
end

#typeObject

Returns the value of attribute type.



2
3
4
# File 'lib/core_data_motion/entity_definition.rb', line 2

def type
  @type
end

#version_idObject

Returns the value of attribute version_id.



2
3
4
# File 'lib/core_data_motion/entity_definition.rb', line 2

def version_id
  @version_id
end

Instance Method Details

#create_entity(entity_name, &b) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/core_data_motion/entity_definition.rb', line 28

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

#entitiesObject



24
25
26
# File 'lib/core_data_motion/entity_definition.rb', line 24

def entities
  @entities ||= []
end

#to_xmlObject



55
56
57
58
59
60
61
62
63
# File 'lib/core_data_motion/entity_definition.rb', line 55

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

#xml_attributesObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/core_data_motion/entity_definition.rb', line 36

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

#xml_attributes_as_stringObject



51
52
53
# File 'lib/core_data_motion/entity_definition.rb', line 51

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