Class: MotionMigrate::Generate
- Inherits:
-
Object
- Object
- MotionMigrate::Generate
- Defined in:
- lib/motion_migrate/generate.rb
Class Method Summary collapse
Class Method Details
.build ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/motion_migrate/generate.rb', line 11 def build models = Dir.glob("app/models/*.rb") raise "! No models defined in 'app/models', add models to this folder if you want to generate the database model." if models.count == 0 models.each do |filename| File.open(filename) { |file| eval(file.read) } end builder = Nokogiri::XML::Builder.new(:encoding => "UTF-8") do |xml| xml.model(database_model_attributes) do ObjectSpace.each_object(Class).select { |klass| klass < MotionMigrate::Model }.each do |entity| xml.entity(:name => entity.entity_name, :representedClassName => entity.entity_name, :syncable => "YES") do entity.properties[entity.entity_name].each do |name, property| xml.attribute(property) end unless entity.properties[entity.entity_name].nil? entity.relationships[entity.entity_name].each do |name, relationship| xml.relationship(relationship) end unless entity.relationships[entity.entity_name].nil? end end end end builder.to_xml end |
.database_model_attributes ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/motion_migrate/generate.rb', line 36 def database_model_attributes { :name => "", :userDefinedModelVersionIdentifier => "", :type => "com.apple.IDECoreDataModeler.DataModel", :documentVersion => "1.0", :lastSavedToolsVersion => "1811", :systemVersion => "11D50", :minimumToolsVersion => "Automatic", :macOSVersion => "Automatic", :iOSVersion => "Automatic" } end |