Re: wie expandiere ich hashvalues in einem string

robert kuzelj <[email protected]> Thu, 24 Feb 2005 14:55:49 +0100
Newsgroups gmane.comp.lang.ruby.german
Message-ID <[email protected]>
robert kuzelj wrote:
> myhash = {"eins" => 1, "zwei" => 2}
> str = "eins: #{eins}, zwei: #{zwei}"
> 
> result = str % myhash
> 
> geht das oder wenn nicht wie gehts?

hab mir jetzt was eigenes gebaut...aber so richtig zufrieden bin
ich nicht. es muss doch was eingebautes geben, dass das macht
oder?

class Expander
   def initialize(_template, _values)
     _values.each do |key, value|
       _template.gsub!(/(\#\{#{key}\})/, "#{value}")
     end
     @result = _template
   end

   def to_s
     return @result
   end

end

s = Expander.new 'Eins: #{eins}, Zwei: #{zwei}', {"eins" => 111, "zwei" 
=> 222}
puts s.to_s

ergibt >>> Eins: 111, Zwei: 222

ciao robertj