diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2009-03-13 18:49:53 -0700 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2009-03-13 18:49:53 -0700 |
commit | 4a7b11d5d857a0f5ce6eb8af7a6dfcb94f31fcfa (patch) | |
tree | 45a99d0a57695ff5c0e5c96a54b86932c3fda40c /actionpack/lib/action_view/body_parts/concurrent_block.rb | |
parent | 2f998fc81fd3525e4f19ba55937ee423c4b71856 (diff) | |
download | rails-4a7b11d5d857a0f5ce6eb8af7a6dfcb94f31fcfa.tar.gz rails-4a7b11d5d857a0f5ce6eb8af7a6dfcb94f31fcfa.tar.bz2 rails-4a7b11d5d857a0f5ce6eb8af7a6dfcb94f31fcfa.zip |
Less ceremony
Diffstat (limited to 'actionpack/lib/action_view/body_parts/concurrent_block.rb')
-rw-r--r-- | actionpack/lib/action_view/body_parts/concurrent_block.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/actionpack/lib/action_view/body_parts/concurrent_block.rb b/actionpack/lib/action_view/body_parts/concurrent_block.rb new file mode 100644 index 0000000000..28a3a3bf4d --- /dev/null +++ b/actionpack/lib/action_view/body_parts/concurrent_block.rb @@ -0,0 +1,25 @@ +module ActionView + module BodyParts + class ConcurrentBlock + def initialize(&block) + @block = block + @body = [] + start + end + + def to_s + finish + @body.join + end + + protected + def start + @worker = Thread.new { @block.call(@body) } + end + + def finish + @worker.join if @worker && @worker.alive? + end + end + end +end |