Sha256: fbafffd0bee2aa983b26d52c5dbf25bcdf28b6c51cb58527908fe746eaee296b
Contents?: true
Size: 850 Bytes
Versions: 4
Compression:
Stored size: 850 Bytes
Contents
module WashOut # This class is a Rack middleware used to route SOAP requests to a proper # action of a given SOAP controller. class Router def initialize(controller_name) @controller_name = "#{controller_name.to_s}_controller".camelize end def call(env) controller = @controller_name.constantize if soap_action = env['HTTP_SOAPACTION'] # RUBY18 1.8 does not have force_encoding. soap_action.force_encoding('UTF-8') if soap_action.respond_to? :force_encoding soap_action.gsub!(/^\"(.*)\"$/, '\1') env['wash_out.soap_action'] = soap_action end action_spec = controller.soap_actions[soap_action] if action_spec action = action_spec[:to] else action = '_invalid_action' end controller.action(action).call(env) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
wash_out-0.5.2 | lib/wash_out/router.rb |
wash_out-0.4.2 | lib/wash_out/router.rb |
wash_out-0.4.1 | lib/wash_out/router.rb |
wash_out-0.4.0 | lib/wash_out/router.rb |