class CoreData::DataModel

Attributes

entities[R]
name[R]
version[R]

Public Class Methods

new(data_model) click to toggle source
# File lib/core_data/data_model.rb, line 9
def initialize(data_model)
  loop do
    case data_model
    when File, /^\<\?xml/
      (data_model = ::Nokogiri::XML(data_model)) && redo
    when String
      case data_model
      when /\.xcdatamodeld?$/
        (data_model = Dir[File.join(data_model, '/**/contents')].first) && redo
      else
        (data_model = ::File.read(data_model)) && redo
      end
    when ::Nokogiri::XML::Document
      break
    else
      raise ArgumentError
    end
  end

  model = data_model.at_xpath('model')

  @name = model['name']
  @version = model['systemVersion']
  @entities = model.xpath('entity').collect { |element| Entity.new(element) }
end