README.md in ruby-xcdm-0.0.4 vs README.md in ruby-xcdm-0.0.5

- old
+ new

@@ -1,9 +1,12 @@ # ruby-xcdm -This is a tool for generating the same xcdatamodeld files that XCode does when designing a datamodel for Core Data. -It is written in pure ruby, but it will be of particular interest to RubyMotion developers. +This is a tool for generating the same xcdatamodeld files that XCode does when +designing a datamodel for Core Data. It is written in pure ruby, but it will +be of particular interest to RubyMotion developers. It offers the essential +features that XCode does, plus a text-based workflow (nicer for git, among +other things) and some niceties, like automatic inverse relationships. ## Installation Add this line to your application's Gemfile: @@ -15,12 +18,25 @@ Or install it yourself as: $ gem install ruby-xcdm -## Usage +## Usage (RubyMotion) +1. Make a directory called "schemas" inside your RubyMotion project +2. Create one schema version per file within the directory +3. To build the schema, run `rake schema:build` + +If you want to build the schema every time you run the simulator, add this to +your Rakefile: + +```ruby +task :"build:simulator" => :"schema:build" +``` + +## Usage (Plain Ruby) + 1. Make a directory to hold your schemas (a.k.a. data model in XCode parlance) 2. Create one schema version per file within the directory 3. Run the command to generate a datamodel: xcdm MyApplicationName schemadir datamodeldestdir @@ -28,33 +44,36 @@ ## Schema File Format Here's a sample schema file: +```ruby schema "0.0.1" do entity "Article" do string :body, optional: false integer32 :length boolean :published, default: false datetime :publishedAt, default: false string :title, optional: false - has_one :author + belongs_to :author end entity "Author" do float :fee string :name, optional: false has_many :articles end end +``` -It's pretty self-explanatory. All the built-in data types are supported, and inverse relationships are -generated automatically. If you need to set some of the more esoteric options on properties or -relationships, you can include the raw parameters, like renamingIdentifier or defaultValueString. +All the built-in data types are supported, and inverse relationships are +generated automatically. If you need to set some of the more esoteric options +on properties or relationships, you can include the raw parameters, like +renamingIdentifier or defaultValueString. ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`)