From: 7stud -- Date: 2011-04-14T10:09:40+09:00 Subject: Re: Copying parameters to singleton class 7stud -- wrote in post #992632: > Try something like this: > > def using(new_options) > Class.new(self) do > old_options = superclass.options > common_keys = old_options.keys & new_options.keys > > common_keys.each do |key| > old_options[key] = new_options[key] > end > > @options = old_options > @options.freeze > end > end Whoops. That doesn't work: prog.rb:18:in `[]=': can't modify frozen hash (RuntimeError) Hmmm...why can you merge() but not directly assign to individual keys when a hash is frozen? Ok, merge() with some better variable names: def using(new_options) Class.new(self) do old_options = superclass.options @options = old_options.merge(new_options).select do |key| old_options.has_key?(key) end.freeze end end -- Posted via http://www.ruby-forum.com/.