Hello all,
I just saw the great news that MagLev reached 1.0 and I like to congratulate Gemstome guys for all work on that project, important for us Smalltalkers as well! http://maglev.github.com/ Best regards Janko -- Janko Mivšek Aida/Web Smalltalk Web Application Server http://www.aidaweb.si |
Indeed, to have Gemstone available to Ruby is a great thing if you can't work on ST i.e. Ruby is not all that bad a place to be. My question though is what's a viable application for this? i.e. have you all thought about how to integrate this into a pre-existing Ruby app framework. For example, it seems that the Borges project (Ruby Seaside) is dead but that seems would have been a great candidate to use MagLev to provide persistence. Rails is coupled to RDMS , one can plug different frameworks e.g. ActiveRecord, DataMapper but its an RDMS thing.
-Charles
2011/11/3 Janko Mivšek <[hidden email]> Hello all, Charles A. Monteiro www.monteirosfusion.com sent from the road |
On Thu, Nov 3, 2011 at 9:19 AM, Charles Monteiro <[hidden email]> wrote:
Indeed, to have Gemstone available to Ruby is a great thing if you can't work on ST i.e. Ruby is not all that bad a place to be. My question though is what's a viable application for this? i.e. have you all thought about how to integrate this into a pre-existing Ruby app framework. For example, it seems that the Borges project (Ruby Seaside) is dead but that seems would have been a great candidate to use MagLev to provide persistence. Rails is coupled to RDMS , one can plug different frameworks e.g. ActiveRecord, DataMapper but its an RDMS thing. Charles, I spoke with two Rails core developers on the subject of using Maglev as a Rails datastore. They said that one will need to do the following:
a) create a connection adapter. e.g. see sqlite3_adapter in Rails 3 b) create a visitor e.g. Rails out of the box supports the following visitors: Next, Rails have many NoSQL adapters including the following:
Riak Redis MongoDB CouchDB BigTable and so on Thus, it should be a matter of researching one of the examples above to produce a drop in replacement for ActiveRecord.
-Conrad
|
extremely cool, I need to understand how those adapters work. I know that this the wrong thread for it but I wonder how "pluggable" this all is. What I mean is this, say I had developed an app using standard Rails 3.x i.e. ActiveRecord and had thus used all the relationship descriptors that do the magic e.g. "belongsTo" and so forth, can I simply pop a couch db adapter ? If so how do we implement that in the case of an OO db i.e. ActiveRecord relied on the convention of setting up foreign keys (id).
Do you know of a spec to write these adapters? I guess Google is my friend :) thanks On Thu, Nov 3, 2011 at 9:06 PM, Conrad Taylor <[hidden email]> wrote:
Charles A. Monteiro www.monteirosfusion.com sent from the road |
On Thu, Nov 3, 2011 at 6:36 PM, Charles Monteiro <[hidden email]> wrote:
extremely cool, I need to understand how those adapters work. I know that this the wrong thread for it but I wonder how "pluggable" this all is. What I mean is this, say I had developed an app using standard Rails 3.x i.e. ActiveRecord and had thus used all the relationship descriptors that do the magic e.g. "belongsTo" and so forth, can I simply pop a couch db adapter ? If so how do we implement that in the case of an OO db i.e. ActiveRecord relied on the convention of setting up foreign keys (id).
Charles, there's no spec. However, you can consider the code of another adapter to be the specification. I have looked at a few of them (i.e. NoSQL solutions) and they tend to follow a similar theme. Next, NoSQL solutions are built outside of the ActiveRecord ecosystem and it's a good reason for doing so. For example, it makes your model code fully documenting:
class Project include MongoMapper::Document key :name, String, :required => true key :priority, Integer many :tasks end I really like the fact that you're defining everything inline using a simple DSL. BTW, I have done a simple podcast on Maglev which provides an introduction which covers the building of a simple interface called MaglevModel:
I feel that Maglev could have one of the more natural models because it doesn't try to decompose a Ruby object into something that's different. For example,
class Comment < ActiveRecord::Base end
|
On Thu, Nov 3, 2011 at 8:31 PM, Conrad Taylor <[hidden email]> wrote:
ActiveRecord: class Post < ActiveRecord::Base has_many :comments end Maglev: class Comment include MaglevModel def initialize( arguments ) @title = arguments[:title] end end class Post include MaglevModel attr_accessor :title, :body attr_reader :comments def initialize( arguments )
@title = arguments[:title] @body = arguments[:body] @comments = [] end def add_comment( title ) @comments << Comment.new( title )
end end I really like this way writing Ruby plus I don't have to deal with SQL joins. -Conrad
|
In reply to this post by Charles Monteiro
Charles,
How about using both Ruby and Smalltalk? Martin McClure gave a talk at ESUG 2011 called "Not-so-foreign functions: Calling Ruby from Smalltalk" where he demonstrated calling a Ruby Gem from Smalltalk. The Gem he used also a had native code extension. Given that there are over 28,000 Ruby Gems, I hope some will be of use to Smalltalkers. -- Monty From: "Charles Monteiro" <[hidden email]> To: "GemStone Seaside beta discussion" <[hidden email]> Sent: Thursday, November 3, 2011 9:19:28 AM Subject: Re: [GS/SS Beta] MagLev 1.0 released, congrats to Gemstoners! Indeed, to have Gemstone available to Ruby is a great thing if you can't work on ST i.e. Ruby is not all that bad a place to be. My question though is what's a viable application for this? i.e. have you all thought about how to integrate this into a pre-existing Ruby app framework. For example, it seems that the Borges project (Ruby Seaside) is dead but that seems would have been a great candidate to use MagLev to provide persistence. Rails is coupled to RDMS , one can plug different frameworks e.g. ActiveRecord, DataMapper but its an RDMS thing. -Charles
2011/11/3 Janko Mivšek <[hidden email]> Hello all, Charles A. Monteiro www.monteirosfusion.com sent from the road |
In reply to this post by Conrad Taylor
Conrad:
This is starting to sink in i.e. how to use Maglev for persistency, what I"m unsure about is how to mix it with Rails i.e. can I just ignore ActiveRecord and combine MagLev with the rest of Rails ? i.e. does it all work ?
On Thu, Nov 3, 2011 at 11:45 PM, Conrad Taylor <[hidden email]> wrote:
Charles A. Monteiro www.monteirosfusion.com sent from the road |
Free forum by Nabble | Edit this page |