class FoxycartHelpers::Middleware
Public Class Methods
new(app=nil)
click to toggle source
# File lib/foxycart_helpers/middleware.rb, line 8 def initialize(app=nil) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/foxycart_helpers/middleware.rb, line 16 def call(env) req = Rack::Request.new(env) return @app.call(env) unless req.path_info == config.mount_point return response 405 unless req.post? parse_and_respond req.POST['FoxyData'] end
config()
click to toggle source
# File lib/foxycart_helpers/middleware.rb, line 12 def config FoxycartHelpers.configuration end
Private Instance Methods
parse_and_respond(params)
click to toggle source
# File lib/foxycart_helpers/middleware.rb, line 26 def parse_and_respond(params) datafeed = Datafeed.from_params params FoxycartHelpers.propagate datafeed response 200, 'foxy' rescue => e raise e if config.raise_exceptions? response 500 end
response(status, body='', headers={})
click to toggle source
# File lib/foxycart_helpers/middleware.rb, line 35 def response(status, body='', headers={}) [ status, {'Content-Type' => 'text/plain'}.merge(headers), [body], ] end