better description

This commit is contained in:
Jeena Paradies 2010-06-20 22:45:17 +02:00
parent d18fa7d38e
commit 9363d5fdb5

28
README
View file

@ -1,12 +1,17 @@
Plistifier
==========
Adds the ActiveRecord#to_plist and Array#to_plist methods similar to ActiveRecord#to_xml.
The :only, :except, :methods, and :include options are supported. Additionally you can use
the :plist_filename option to change the default name for download.
Adds the possibility to talk to a rails app via (Binary) Property Lists
http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man5/plist.5.html
It is designed to work as the JSON format but on the iPhone it is easier to use,
much faster, because Plist is smaller, therefore it doesn't need any third party
libraries for parsing like JSON, or difficult SAX-style parsing like XML.
It adds the ActiveRecord#to_plist, Array#to_plist and Hash#to_plist methods similar to
ActiveRecord#to_json. The :only, :except, :methods, and :include options are supported
on ActiveRecord and Array with ActiveRecord items.
It too ads the :plist option to the ActiveRecord::Base#render method. With help of that
you get binary plist files which you can easy use in your iPhone.
Install
=======
@ -17,6 +22,9 @@ script/plugin install git://github.com/jeena/plistifier.git
Example
=======
Getting data from rails
-----------------------
In your PostController use for example:
def index
@ -54,14 +62,15 @@ On the iPhone use for example:
NSLog(@"Title: %@", [[posts objectAtIndex:0] objectForKey:@"title"]);
Sending data to rails
---------------------
It is possible to send a plist back into rails. On the iPhone you have to do for example:
NSDictionary *aPost = [[NSDictionary alloc] initWithObjectsAndKeys:
@"A title", @"title",
@"Some text for body", @"body", nil];
NSDictionary *aDict = [[NSDictionary alloc] initWithObjectsAndKeys:aPost, @"post", nil];
NSData *data = [NSPropertyListSerialization dataFromPropertyList:aDict
format:NSPropertyListBinaryFormat_v1_0
errorDescription:nil];
@ -73,6 +82,11 @@ It is possible to send a plist back into rails. On the iPhone you have to do for
[request setHTTPBody:data];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection release];
[request release];
[data release];
[aDict release];
[aPost release];
And on the rails side: