From: Tim Uckun Date: 2006-06-08T20:29:27+09:00 Subject: Re: Two questions about data structures. I understand what you are doing I think. It's a neat solution. But how do I store that stuff in a database? On 6/7/06, Daniel Schierbeck wrote: > I'm such a nice guy... > > class Entity > def initialize > @opts = {:left_handed => false, :red_haired => true} > end > > def method_missing(name, *args) > key = name.to_s[0..-2].to_sym > case name.to_s > when /\?$/ > value = @opts[key] > if value.respond_to? :to_sym > if value.to_s =~ /!$/ > !@opts[value.to_s[0..-2].to_sym] > else > @opts[value.to_sym] > end > elsif value.respond_to? :to_proc > instance_eval(&value) > else > value > end > when /=$/ > @opts[key] = args.first > when /!$/ > @opts[key] = !@opts[key] > else > super > end > end > end > > entity = Entity.new > entity.likes_hendrix = true > entity.long_haired = true > entity.hippie = proc{long_haired? and likes_hendrix?} > entity.hippie? => true > > > Cheers, > Daniel > >