Hello, i want to use JSON with prototype, if i can with it send JSON data to my RPC server, and not only like the most JSON + prototype examples in the internet, wich tell me only how i can remote JSON data from my RPC server. But i think, prototype encodeURI my JSON string before send to the server. That is my result on the server which using the prototype Ajax.request: %7B%22method%22%3A%22foo%3A%3Abar%22%2C%22params%22%3A%... That is what i need: {"method":"foo::bar","params":... Can i deaktivate encodeURI in the prototype Ajax.request? Or have i ignored Something other? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
I''m not sure URI-encoding is an issue. What is your ''RPC'' server anyway? It''s likely to be accessed through HTTP. Be it through POST or GET, the default encoding format for the request is application/x-www-url-encoded, which means the HTTP server will automatically decode the string for you, and pass the decoded version to your "server". -- Christophe Porteneuve a.k.a. TDD "[They] did not know it was impossible, so they did it." --Mark Twain Email: tdd-x+CfDp/qHev2eFz/2MeuCQ@public.gmane.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
I use a generic PHP server which uses the PECL ext/json. My server use this to get the data: $data = json_decode(file_get_contents(''php://input'')); The client-code is simpel, i don''t select any encoding-formats etc.: new Ajax.Request(''server.php'', { method: ''post'', parameters: JSON.stringify({ method: ''foo::bar'', params: [data], id: new Date().getTime() }), onSuccess: function(transport){ var res = eval(''(''+transport.responseText+'')''); if (res.error) { alert(''Error: ''+res.error.message); return; } alert(res.result.desc); }, onFailure: function(){ alert(''Something went wrong...'') } }); --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
xpmstos wrote:> I use a generic PHP server which uses the PECL ext/json. > My server use this to get the data: > $data = json_decode(file_get_contents(''php://input'')); > > The client-code is simpel, i don''t select any encoding-formats etc.: > new Ajax.Request(''server.php'', > { > method: ''post'', > parameters: JSON.stringify({ > method: ''foo::bar'', > params: [data], > id: new Date().getTime() > }), ...Hello XP, I''m not a network guy, but I imagine you may find that some users (i.e. those using proxy servers, or those using certain browsers) may encounter problems when attempting to post non-url encoded characters. In fact, it may not work for anybody. Traditionally, setting up a scheme like this in php would simply request php to build the data from the posted string: <php> $data = $_POST; // where data then looks like the following, based on an ajax-posted object run through Hash.toQueryString() $data = array( ''method''=>''foo::bar'', ''params''=>array(''some data'',array(''some nested''=>''data'')), ''id''=>''1123123123'' ); </php> If you WOULD like to try sending JSON, you could override the original prototype Hash.toQueryString method by defining it after inclusion of prototype something like so: Object.extend(Hash, { toQueryString: function(obj) { JSON.stringify(obj); } }); then, in the parameters, send a simple object like so: new Ajax.Request(''server.php'', { method: ''post'', parameters: { method: ''foo::bar'', params: data, id: new Date().getTime() }), ... If you do try it, let us know what you find. Regards, Ken Snyder --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Hello Christophe, Hello Ken, i use atm FF2.0, but i want a compatibility for I.E.also etc. When i use your simple object:> new Ajax.Request(''server.php'', > { > method: ''post'', > parameters: { > method: ''foo::bar'', > params: data, > id: new Date().getTime() > }), ...the first chars in my string would be correct, but not the followings, the result look like this: {"method%22%3A%22foo%3A%3Abar%22%2C%22params%22%3A% I worked with another solution now. I use my javascript code like before: new Ajax.Request(''server.php'', { method: ''post'', parameters: JSON.stringify({ method: ''foo::bar'', params: [data], id: new Date().getTime() }), onSuccess:doSomething, onFailure: function(){ alert(''Something went wrong...'') } }); But new is my little solution on the server side, i will tell, it''s simple but it will works: function hex2str($hex) { $str = ''''; $loop = 1; for($i=0; $i<strlen($hex); $i+=$loop) { $chr = substr($hex,$i,1); if($chr==''%'') { // found next hex $chr = substr($hex,$i+1,2); $str .= chr(hexdec($chr)); $loop = 3; } else { // next char $str .= $chr; $loop = 1; } } return substr($str,0,strlen($str)-1); // kill the last "=", little bug } And now, i receive the string, decode it firstly with hex2str, before it decode as a JSON objekt: $string = hex2str(file_get_contents(''php://input'')); $objJSON=json_decode($string); What would you think, is it a terrible solution? Or is it acceptable? Thanks for you help Christophe and Ken --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Try something like this. <?php $a_SomeNestedData = array ( // Some manual data. ''Key1'' => ''Data1'', ''Key2'' => array ( ''Key2.1'' => ''Data2'', ''Key2.2'' => ''Data3'', ), // Some external data. ''POST'' => array_key_exists(''_POST'',$GLOBALS) ? $_POST : NULL, ''GET'' => array_key_exists(''_GET'',$GLOBALS) ? $_GET : NULL, ''COOKIE'' => array_key_exists(''_COOKIE'',$GLOBALS) ? $_COOKIE : NULL, ); $s_Response = rawurlencode(json_encode($a_SomeNestedData)); echo $s_Response; ?> On the CLI for me, this produces ... %7B%22Key1%22%3A%22Data1%22%2C%22Key2%22%3A%7B%22Key2.1%22%3A%22Data2%22%2C%22Key2.2%22%3A%22Data3%22%7D%2C%22POST%22%3A%5B%5D%2C%22GET%22%3A%5B%5D%2C%22COOKIE%22%3A%5B%5D%7D Now, assuming this was the response to an AJAX request, you would then use ... var obj_SomeNestedData = unescape(transport.responseText) in your onSuccess handler to get the data back again. xpmstos wrote:> I use a generic PHP server which uses the PECL ext/json. > My server use this to get the data: > $data = json_decode(file_get_contents(''php://input'')); > > The client-code is simpel, i don''t select any encoding-formats etc.: > new Ajax.Request(''server.php'', > { > method: ''post'', > parameters: JSON.stringify({ > method: ''foo::bar'', > params: [data], > id: new Date().getTime() > }), ...Hello XP, I''m not a network guy, but I imagine you may find that some users (i.e. those using proxy servers, or those using certain browsers) may encounter problems when attempting to post non-url encoded characters. In fact, it may not work for anybody. Traditionally, setting up a scheme like this in php would simply request php to build the data from the posted string: <php> $data = $_POST; // where data then looks like the following, based on an ajax-posted object run through Hash.toQueryString() $data = array( ''method''=>''foo::bar'', ''params''=>array(''some data'',array(''some nested''=>''data'')), ''id''=>''1123123123'' ); </php> If you WOULD like to try sending JSON, you could override the original prototype Hash.toQueryString method by defining it after inclusion of prototype something like so: Object.extend(Hash, { toQueryString: function(obj) { JSON.stringify(obj); } }); then, in the parameters, send a simple object like so: new Ajax.Request(''server.php'', { method: ''post'', parameters: { method: ''foo::bar'', params: data, id: new Date().getTime() }), ... If you do try it, let us know what you find. Regards, Ken Snyder - Show quoted text - On 04/03/07, xpmstos <tandler-aEpbh9vYmBeELgA04lAiVw@public.gmane.org> wrote:> > Hello Christophe, Hello Ken, > > i use atm FF2.0, but i want a compatibility for I.E.also etc. > When i use your simple object: > > new Ajax.Request(''server.php'', > > { > > method: ''post'', > > parameters: { > > method: ''foo::bar'', > > params: data, > > id: new Date().getTime() > > }), ... > the first chars in my string would be correct, but not the followings, > the result look like this: > {"method%22%3A%22foo%3A%3Abar%22%2C%22params%22%3A% > > I worked with another solution now. I use my javascript code like > before: > new Ajax.Request(''server.php'', > { > method: ''post'', > parameters: JSON.stringify({ > method: ''foo::bar'', > params: [data], > id: new Date().getTime() > }), > onSuccess:doSomething, > onFailure: function(){ alert(''Something went wrong...'') } > }); > > But new is my little solution on the server side, i will tell, it''s > simple but it will works: > function hex2str($hex) { > $str = ''''; $loop = 1; > for($i=0; $i<strlen($hex); $i+=$loop) { > $chr = substr($hex,$i,1); > if($chr==''%'') { // found next hex > $chr = substr($hex,$i+1,2); > $str .= chr(hexdec($chr)); > $loop = 3; > } > else { // next char > $str .= $chr; > $loop = 1; > } > } > return substr($str,0,strlen($str)-1); // kill the last "=", little > bug > } > > And now, i receive the string, decode it firstly with hex2str, before > it decode as a JSON objekt: > $string = hex2str(file_get_contents(''php://input'')); > $objJSON=json_decode($string); > > What would you think, is it a terrible solution? Or is it acceptable? > Thanks for you help Christophe and Ken > > > --~--~---------~--~----~------------~-------~--~----~ > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. > To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org > For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en > -~----------~----~----~----~------~----~------~--~--- > >-- ----- Richard Quadling Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 "Standing on the shoulders of some very clever giants!" --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
var obj_SomeNestedData = eval(''('' + unescape(transport.responseText) + '')''); Sorry!!! Silly typo. On 05/03/07, Richard Quadling <rquadling-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:> Try something like this. > > <?php > $a_SomeNestedData = array > ( > // Some manual data. > ''Key1'' => ''Data1'', > ''Key2'' => array > ( > ''Key2.1'' => ''Data2'', > ''Key2.2'' => ''Data3'', > ), > // Some external data. > ''POST'' => array_key_exists(''_POST'',$GLOBALS) ? $_POST : NULL, > ''GET'' => array_key_exists(''_GET'',$GLOBALS) ? $_GET : NULL, > ''COOKIE'' => array_key_exists(''_COOKIE'',$GLOBALS) ? $_COOKIE : NULL, > ); > > $s_Response = rawurlencode(json_encode($a_SomeNestedData)); > echo $s_Response; > ?> > > On the CLI for me, this produces ... > > %7B%22Key1%22%3A%22Data1%22%2C%22Key2%22%3A%7B%22Key2.1%22%3A%22Data2%22%2C%22Key2.2%22%3A%22Data3%22%7D%2C%22POST%22%3A%5B%5D%2C%22GET%22%3A%5B%5D%2C%22COOKIE%22%3A%5B%5D%7D > > Now, assuming this was the response to an AJAX request, you would then use ... > > var obj_SomeNestedData = unescape(transport.responseText) > > in your onSuccess handler to get the data back again. > > > xpmstos wrote: > > I use a generic PHP server which uses the PECL ext/json. > > My server use this to get the data: > > $data = json_decode(file_get_contents(''php://input'')); > > > > The client-code is simpel, i don''t select any encoding-formats etc.: > > new Ajax.Request(''server.php'', > > { > > method: ''post'', > > parameters: JSON.stringify({ > > method: ''foo::bar'', > > params: [data], > > id: new Date().getTime() > > }), ... > Hello XP, > > I''m not a network guy, but I imagine you may find that some users > (i.e. those using proxy servers, or those using certain browsers) may > encounter problems when attempting to post non-url encoded characters. > In fact, it may not work for anybody. Traditionally, setting up a > scheme like this in php would simply request php to build the data > from the posted string: > > <php> > $data = $_POST; > > // where data then looks like the following, based on an ajax-posted > object run through Hash.toQueryString() > $data = array( > ''method''=>''foo::bar'', > ''params''=>array(''some data'',array(''some nested''=>''data'')), > ''id''=>''1123123123'' > ); > </php> > > > If you WOULD like to try sending JSON, you could override the original > prototype Hash.toQueryString method by defining it after inclusion of > prototype something like so: > > Object.extend(Hash, { > toQueryString: function(obj) { > JSON.stringify(obj); > } > }); > > then, in the parameters, send a simple object like so: > > new Ajax.Request(''server.php'', > { > method: ''post'', > parameters: { > method: ''foo::bar'', > params: data, > id: new Date().getTime() > }), ... > > > If you do try it, let us know what you find. > > > Regards, > > Ken Snyder > - Show quoted text - > > > > > > > On 04/03/07, xpmstos <tandler-aEpbh9vYmBeELgA04lAiVw@public.gmane.org> wrote: > > > > Hello Christophe, Hello Ken, > > > > i use atm FF2.0, but i want a compatibility for I.E.also etc. > > When i use your simple object: > > > new Ajax.Request(''server.php'', > > > { > > > method: ''post'', > > > parameters: { > > > method: ''foo::bar'', > > > params: data, > > > id: new Date().getTime() > > > }), ... > > the first chars in my string would be correct, but not the followings, > > the result look like this: > > {"method%22%3A%22foo%3A%3Abar%22%2C%22params%22%3A% > > > > I worked with another solution now. I use my javascript code like > > before: > > new Ajax.Request(''server.php'', > > { > > method: ''post'', > > parameters: JSON.stringify({ > > method: ''foo::bar'', > > params: [data], > > id: new Date().getTime() > > }), > > onSuccess:doSomething, > > onFailure: function(){ alert(''Something went wrong...'') } > > }); > > > > But new is my little solution on the server side, i will tell, it''s > > simple but it will works: > > function hex2str($hex) { > > $str = ''''; $loop = 1; > > for($i=0; $i<strlen($hex); $i+=$loop) { > > $chr = substr($hex,$i,1); > > if($chr==''%'') { // found next hex > > $chr = substr($hex,$i+1,2); > > $str .= chr(hexdec($chr)); > > $loop = 3; > > } > > else { // next char > > $str .= $chr; > > $loop = 1; > > } > > } > > return substr($str,0,strlen($str)-1); // kill the last "=", little > > bug > > } > > > > And now, i receive the string, decode it firstly with hex2str, before > > it decode as a JSON objekt: > > $string = hex2str(file_get_contents(''php://input'')); > > $objJSON=json_decode($string); > > > > What would you think, is it a terrible solution? Or is it acceptable? > > Thanks for you help Christophe and Ken > > > > > > --~--~---------~--~----~------------~-------~--~----~ > > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. > > To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org > > To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org > > For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en > > -~----------~----~----~----~------~----~------~--~--- > > > > > > > -- > ----- > Richard Quadling > Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 > "Standing on the shoulders of some very clever giants!" >-- ----- Richard Quadling Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 "Standing on the shoulders of some very clever giants!" --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
And in reverse, try escape() as the encoding function in JS and rawurldecode() as the PHP function. On 03/03/07, xpmstos <tandler-aEpbh9vYmBeELgA04lAiVw@public.gmane.org> wrote:> > Hello, > > i want to use JSON with prototype, if i can with it send JSON data to > my RPC server, and not only like the most JSON + prototype examples in > the internet, wich tell me only how i can remote JSON data from my RPC > server. > But i think, prototype encodeURI my JSON string before send to the > server. > > That is my result on the server which using the prototype > Ajax.request: > > %7B%22method%22%3A%22foo%3A%3Abar%22%2C%22params%22%3A%... > > That is what i need: > > {"method":"foo::bar","params":... > > Can i deaktivate encodeURI in the prototype Ajax.request? Or have i > ignored Something other? > > > > >-- ----- Richard Quadling Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 "Standing on the shoulders of some very clever giants!" --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
encodeURI() and encodeURIComponent() are preferable to escape(), as the first two will handle all Unicode characters; escape() will not. TAG On Mar 5, 2007, at 3:53 AM, Richard Quadling wrote:> > And in reverse, try escape() as the encoding function in JS and > rawurldecode() as the PHP function.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
i use utf8_encode on server-side before json_encode and send it back to the client. it works perfect. best regards --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
For completeness, can you give the full route you take in both directions? On 05/03/07, xpmstos <tandler-aEpbh9vYmBeELgA04lAiVw@public.gmane.org> wrote:> > i use utf8_encode on server-side before json_encode and send it back > to the client. it works perfect. > > best regards > > > > >-- ----- Richard Quadling Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 "Standing on the shoulders of some very clever giants!" --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
ok, thats my code on client-side (i use FCKeditor as wysiwyg): function doAction() { var content = oFCKeditor.GetHTML(); content = content.replace(/"/g, "\""); var title = $(''title'').value; // input-field new Ajax.Request(''server.php'', { method: ''post'', parameters: JSON.stringify({ method: ''class::function'', params: [title,encodeURIComponent(content)], id: new Date().getTime() }), onSuccess: function(transport){ var res = eval(''(''+transport.responseText+'')''); if (res.error) { alert(''Error: ''+res.error.message); return; } alert(res.result.desc); } }); } ok, now some lines of my JSON RPC server: function hex2str($hex) { $str = ''''; $loop = 1; for($i=0; $i<strlen($hex); $i+=$loop) { $chr = substr($hex,$i,1); if($chr==''%'') { // found next hex $chr = substr($hex,$i+1,2); $str .= chr(hexdec($chr)); $loop = 3; } else { // next char $str .= $chr; $loop = 1; } } return substr($str,0,strlen($str)-1); // kill the last "=", little bug } try { $string = hex2str(file_get_contents(''php://input'')); $objJSON=json_decode($string); if(!$objJSON) throw new Exception(''Not JSON Data...''); /* do something and fill $obj->buffer with requested data */ $response->result=$obj->buffer; } catch (Exception $e) { $err=new stdClass; $err->message = $e->getMessage(); $response->error=$err; } $response->id=$objJSON->id; echo json_encode($response); that is all, but i had some problems with sending html-code. i don''t understand how i escape the control characters, i trying with replace, but i will not work. best regards --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---