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`)