Class: Configuration::OutputText

Inherits:
Scope
  • Object
show all
Defined in:
lib/httpimagestore/configuration/handler.rb

Direct Known Subclasses

OutputOK

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Scope

node_parsers, #parse, register_node_parser

Constructor Details

#initialize(text, status, cache_control) ⇒ OutputText

Returns a new instance of OutputText.



232
233
234
235
236
# File 'lib/httpimagestore/configuration/handler.rb', line 232

def initialize(text, status, cache_control)
	@text = RubyStringTemplate.new(text || fail("no text?!"))
	@status = status || 200
	@cache_control = cache_control
end

Class Method Details

.match(node) ⇒ Object



221
222
223
# File 'lib/httpimagestore/configuration/handler.rb', line 221

def self.match(node)
	node.name == 'output_text'
end

.parse(configuration, node) ⇒ Object



225
226
227
228
229
230
# File 'lib/httpimagestore/configuration/handler.rb', line 225

def self.parse(configuration, node)
	configuration.output and raise StatementCollisionError.new(node, 'output')
	text = node.grab_values('text').first
	status, cache_control = *node.grab_attributes('status', 'cache-control')
	configuration.output = OutputText.new(text, status || 200, cache_control)
end

Instance Method Details

#realize(request_state) ⇒ Object



238
239
240
241
242
243
244
245
246
247
# File 'lib/httpimagestore/configuration/handler.rb', line 238

def realize(request_state)
	# make sure variables are available in request context
	status = @status
	text = @text.render(request_state)
	cache_control = @cache_control
	request_state.output do
		res['Cache-Control'] = cache_control if cache_control
		write_plain status.to_i, text.to_s
	end
end