class Clickatell::Catcher::Rack::Middleware
Attributes
messages[R]
Public Class Methods
new(app, options = {})
click to toggle source
# File lib/clickatell/catcher/rack.rb, line 14 def initialize(app, options = {}) @app = app @messages = Clickatell::Catcher::Rack::SharedArray.new @logger = options[:logger] || ::Rack::NullLogger.new(nil) @message_adder = MessageAdder.new(@messages) @messages_renderer = MessagesRenderer.new(@messages) end
Public Instance Methods
add_message(request_body)
click to toggle source
# File lib/clickatell/catcher/rack.rb, line 22 def add_message(request_body) @message_adder.add(request_body) @logger.debug("[#{Process.pid}] Messages: " + @messages.inspect) @message_adder.rack_response end
call(env)
click to toggle source
# File lib/clickatell/catcher/rack.rb, line 41 def call(env) request = ::Rack::Request.new(env) if request.path == '/rest/message' rest_message(request) else status, headers, body = @app.call(env) # return result [status, headers, body] end end
render_messages()
click to toggle source
# File lib/clickatell/catcher/rack.rb, line 28 def render_messages @logger.debug("[#{Process.pid}] Rendering Messages: " + @messages.inspect) @messages_renderer.rack_response end
rest_message(request)
click to toggle source
# File lib/clickatell/catcher/rack.rb, line 33 def rest_message(request) if request.get? render_messages else add_message(request.body.read) end end