From: Peter Ertl Date: 2005-11-18T01:25:10+09:00 Subject: Re: Serializing an instance with arbitrary methods (in rails) This is supposed to be good stuff: http://yaml4r.sourceforge.net > --- Urspr�ngliche Nachricht --- > Von: Gavin Kistner > An: ruby-talk@ruby-lang.org (ruby-talk ML) > Betreff: Serializing an instance with arbitrary methods (in rails) > Datum: Fri, 18 Nov 2005 01:21:43 +0900 > > (I know there's a rails mailing list. For some reason this feels more > appropriate to ruby-talk. I'll go to the other ML if this one fails :) > > Summary: > I'm writing a rails app where I want to save information about a > user's session, so that they may return at a later date and pick up > where they left off. The information being saved is an object with > arbitrary instance variables. What's the best way (or any good way) > to save this? So far, the only thing I can think of is Marshal dump/ > load to a db row, but this seems off for some reason. Is this the > best way? > > Details: > I'm writing an app that's an odd mixture of interactive fiction, > wiki, and MUD. (Well, single-user for now.) Think of a web version of > a "Choose Your Own Adventure" book, where anyone can write the pages/ > choices, and every page and choice can have arbitrary ruby code > associated with it. Each page and choice is an ERB template (in the > future, with wiki markup), allowing the contents of the story and > text of the choices to vary. > > Each page can run Ruby code against a 'ReaderSession' before the page > is viewed, setting the consequences of getting to the page. Each > choice can run Ruby code to decide if it may be shown (e.g. has the > user already made this choice? does the user have enough gold to buy > the rabbit? does the user have the sword needed to slay the dragon > here?). When the user makes a choice, code specific to that choice > can be run before the destination page is shown (e.g. subtract the > right amount of gold and add the rabbit to the inventory). > > When the user starts a story, a blank ReaderSession object is > created. The code for each page/choice is run within the scope of > this instance, so that any instance variables may be set without > harming others (a sort of namespace) and I can easily start the story > over by clearing out the instance variables. > > Certain details haven't been ironed out yet: should each choice be > hardcoded to a destination page, or can the 'result code' for a > choice change which page you go to? How will I use AJAX to make this > a multi-user/reader game, so that when someone else arrives at the > same page, you know they're there? Can pages have time limits that > force the user to make a choice before a default action is taken > automatically? > > Thanks for any advice/brainstorming. :) As with all my personal > projects, this will be an (advertisement-free), free service for > the .net to enjoy. (In other words, helping me isn't helping with > some commercial project you'll never see. :) > > -- > (-, /\ \/ / /\/ >