document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/pygment_trac.css" />');
document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/embed.css" />');
document.write('<div class="flowcoder_post flowcoder_clearfix">');
document.write('<div class="flowcoder_posttitle"><a href=\"http://flowcoder.com/162\">Passing a block to Rack::Response#finish<\/a></div>');
document.write('<div class="flowcoder_postbody flowcoder_syntax"><div class=\"highlight\"><pre><span class=\"c1\"># Passing a block to Rack::Response#finish<\/span>\n<span class=\"c1\">#<\/span>\n<span class=\"c1\"># You can pass a block to #write, which yields self;<\/span>\n<span class=\"c1\"># calls to #write inside the block will write directly to the<\/span>\n<span class=\"c1\"># output stream instead of Rack::Response&#39;s internal buffer<\/span>\n<span class=\"k\">class<\/span> <span class=\"nc\">App<\/span>\n  <span class=\"k\">def<\/span> <span class=\"nf\">call<\/span><span class=\"p\">(<\/span><span class=\"n\">env<\/span><span class=\"p\">)<\/span>\n    <span class=\"no\">Rack<\/span><span class=\"o\">::<\/span><span class=\"no\">Response<\/span><span class=\"o\">.<\/span><span class=\"n\">new<\/span><span class=\"o\">.<\/span><span class=\"n\">finish<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">resp<\/span><span class=\"o\">|<\/span>\n      <span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">write<\/span> <span class=\"s2\">&quot;one<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">&quot;<\/span>\n      <span class=\"nb\">sleep<\/span> <span class=\"mi\">1<\/span>\n      <span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">write<\/span> <span class=\"s2\">&quot;two<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">&quot;<\/span>\n      <span class=\"nb\">sleep<\/span> <span class=\"mi\">1<\/span>\n      <span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">write<\/span> <span class=\"s2\">&quot;three<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">&quot;<\/span>\n    <span class=\"k\">end<\/span>\n  <span class=\"k\">end<\/span>\n<span class=\"k\">end<\/span>\n\n<span class=\"n\">run<\/span> <span class=\"no\">App<\/span><span class=\"o\">.<\/span><span class=\"n\">new<\/span>\n\n<span class=\"c1\"># Run with &quot;rackup&quot; command; use curl to connect:<\/span>\n<span class=\"c1\">#<\/span>\n<span class=\"c1\">#   &gt; curl localhost:9292<\/span>\n<span class=\"c1\">#   one<\/span>\n<span class=\"c1\">#   two<\/span>\n<span class=\"c1\">#   three<\/span>\n<\/pre><\/div>\n</div>');
document.write('<div class="flowcoder_bottombar flowcoder_clearfix">');
document.write('<div class="flowcoder_postedby">Posted by <a href=\"http://flowcoder.com/gbuesing\">gbuesing<\/a> on <a href=\"http://flowcoder.com/\">Flowcoder<\/a></div>');
document.write('<div class="flowcoder_viewraw"><a href=\"http://flowcoder.com/162.txt\">view raw<\/a></div>');
document.write('</div></div>');
