I''m struggling a bit with the best way to override the private create and update methods. I have an adapter for a non sql backend and I need to either override create and update, or alternatively maybe override create_or_update and have it call replacements for create and update. I would prefer the approach that modifies as little as possible of activerecord. Suggestions? Chris --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com To unsubscribe from this group, send email to rubyonrails-core-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---
> I''m struggling a bit with the best way to override the private create > and update methods. I have an adapter for a non sql backend and I > need to either override create and update, or alternatively maybe > override create_or_update and have it call replacements for create and > update. I would prefer the approach that modifies as little as > possible of activerecord. > > Suggestions?Given all the other things we do with SQL like .find(:all, :include=>...) you''re going to be changing a lot more than that. My advice would be to aim to be duck-type compatible rather than reuse the implementation. Take a look at how we''ve implemented ActiveResource. -- Cheers Koz --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com To unsubscribe from this group, send email to rubyonrails-core-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---
On Oct 26, 5:55 pm, "Michael Koziarski" <mich...@koziarski.com> wrote:> > I''m struggling a bit with the best way to override the private create > > and update methods. I have an adapter for a non sql backend and I > > need to either override create and update, or alternatively maybe > > override create_or_update and have it call replacements for create and > > update. I would prefer the approach that modifies as little as > > possible of activerecord. > > > Suggestions? > > Given all the other things we do with SQL like .find(:all, > :include=>...) you''re going to be changing a lot more than that.Actually I want to keep most of the semantics of activerecord, I just don''t want to generate sql. With only overriding about 6 methods in activerecord::base I have everything working except for some associations. Right now what I''m doing is for our prototype, later I''ll probably write it clean from scratch as you suggest. Chris --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com To unsubscribe from this group, send email to rubyonrails-core-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---
On Oct 27, 9:52 pm, snacktime <snackt...@gmail.com> wrote:> On Oct 26, 5:55 pm, "Michael Koziarski" <mich...@koziarski.com> wrote: > > > > I''m struggling a bit with the best way to override the private create > > > and update methods. I have an adapter for a non sql backend and I > > > need to either override create and update, or alternatively maybe > > > override create_or_update and have it call replacements for create and > > > update. I would prefer the approach that modifies as little as > > > possible of activerecord. > > > > Suggestions? > > > Given all the other things we do with SQL like .find(:all, > > :include=>...) you''re going to be changing a lot more than that. > > Actually I want to keep most of the semantics of activerecord, I just > don''t want to generate sql. With only overriding about 6 methods in > activerecord::base I have everything working except for some > associations. Right now what I''m doing is for our prototype, later > I''ll probably write it clean from scratch as you suggest. > > ChrisChris, Care to share some of what you have done? Mike B. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com To unsubscribe from this group, send email to rubyonrails-core-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---
> > Care to share some of what you have done? > > Mike B.Sorry it took so long to get back on this. After a few iterations we basically have an async activeresource. Inside activeresource we spin up a thread which opens a connection to a localhost server and keeps the connection open across rails requests, using a simple line based protocol. The localhost server proxies the requests from activeresource into http requests to our middleware. Since the localhost server uses Eventmachine, the whole thing is asynchronous. For example, Person.find() returns immediately, giving me an object that I can at any subsequent time call a wait() method on when I need the results. Or optionally I can just wait for Person.find() to return the result. It also lets us do things like prefetch data for ajax requests that get called after the page is loaded, etc.. We can also make activeresource calls in one request, and then get the results in a subsequent rails request, by saving query id''s in the session. I have permission to contribute this back as open source, but I need another month or so of testing and adding a bit more abstraction before I''m ready to release it. There are quite a few changes to activeresource, primarily in connection.rb. I''ve also added in some of the type checking/casting and validation helpers from activerecord, and I''m working on some conventions for REST service discovery also. Chris --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com To unsubscribe from this group, send email to rubyonrails-core-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---