$VERBOSE=nil def indent s, n = 2 ws = ' ' * n s.gsub %r/^/, ws end template = IO::read 'README.tmpl' samples = '' prompt = '~ > ' Dir['sample/*'].each do |sample| samples << "\n" << " <========< #{ sample } >========>" << "\n\n" cmd = "cat #{ sample }" samples << indent(prompt + cmd, 2) << "\n\n" samples << indent(`#{ cmd }`, 4) << "\n" cmd = "ruby #{ sample }" samples << indent(prompt + cmd, 2) << "\n\n" cmd = "ruby -I ./lib -r ./lib/traits.rb #{ sample }" samples << indent(`#{ cmd }`, 4) << "\n" end #samples.gsub! %r/^/, ' ' readme = template.gsub %r/^\s*@samples\s*$/, samples print readme