From: "ara.t.howard" Date: 2007-11-09T12:46:18+09:00 Subject: Re: local variables, eval, and parsing On Nov 8, 2007, at 8:14 PM, Peņa, Botp wrote: > From: ara.t.howard [mailto:ara.t.howard@gmail.com] > # class Config > > i get a TypeError here :) > > # attribute "width" > # attribute "height" > # attribute "color" > > is it possible without declaring those above? > i mean, something like some sort of attrib_eval(like below) but > automagically creates those attributes... > > # config.instance_eval IO.read(path) > > kind regards -botp > if i'm following correctly, you mean this? cfp:~ > cat a.rb require "attributes" class Config def self.load path config = new config.configure IO.read(path) config end def configure *a, &b @configuring = true instance_eval *a, &b ensure @configuring = false end def method_missing m, *a, &b super unless @configuring attribute m send m, *a, &b end end config = Config.load "b.rb" p config config.configure{ width 42.0 } p config cfp:~ > cat b.rb configure { width 42 height 42.0 color "pinky-beige" honky true } cfp:~ > ruby a.rb # # ?? a @ http://codeforpeople.com/ -- we can deny everything, except that we have the possibility of being better. simply reflect on that. h.h. the 14th dalai lama