Sha256: fdb12ba2ef0e05ae9a115329d90be618d63c8c0882a4bc0354508a852fd4812e

Contents?: true

Size: 767 Bytes

Versions: 4

Compression:

Stored size: 767 Bytes

Contents

require 'glue/attribute'

require 'nitro/shaders'

module Nitro

# The output buffering mixin. Provides php-style output
# buffering functionality.
#--
# TODO: use better names but keep the ob_xxx php style methods
# as aliases.
#++

module OutputBuffering
	# Output buffers stack, used for php-style nested output 
	# buffering.

	attr :out_buffers
	
	# Start (push) a new output buffer.

	def ob_start
		@out_buffers ||= []
		@out_buffers.push(@out)
		@out = ''
	end
	
	# End (pop) the current output buffer.
	
	def ob_end
		@out = @out_buffers.pop
	end
	
	# End (pop) the current output buffer and write to the parent.
	
	def ob_write_end
		nested_buffer = @out
		@out = @out_buffers.pop
		@out << nested_buffer
	end
end

end

# * George Moschovitis <gm@navel.gr>

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
nitro-0.18.0 lib/nitro/buffering.rb
nitro-0.18.1 lib/nitro/buffering.rb
nitro-0.19.0 lib/nitro/buffering.rb
nitro-0.20.0 lib/nitro/buffering.rb