diff options
author | Leon Breedt <bitserf@gmail.com> | 2005-03-28 03:20:13 +0000 |
---|---|---|
committer | Leon Breedt <bitserf@gmail.com> | 2005-03-28 03:20:13 +0000 |
commit | 594063f23cf8e7cecd24329e801992784f420b55 (patch) | |
tree | d52e9a6fc0521d51fcc3875162adf0411ee6caa0 /actionwebservice/lib/action_web_service/protocol/abstract.rb | |
parent | 439a216dcb65ac83d86ca04bb898e1797a87ce70 (diff) | |
download | rails-594063f23cf8e7cecd24329e801992784f420b55.tar.gz rails-594063f23cf8e7cecd24329e801992784f420b55.tar.bz2 rails-594063f23cf8e7cecd24329e801992784f420b55.zip |
generalize casting code to be used by both SOAP and XML-RPC (previously only XML-RPC). switch
to better model for API methods, and improve the ability to generate protocol requests/response,
will be required by upcoming scaffolding.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1030 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionwebservice/lib/action_web_service/protocol/abstract.rb')
-rw-r--r-- | actionwebservice/lib/action_web_service/protocol/abstract.rb | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/actionwebservice/lib/action_web_service/protocol/abstract.rb b/actionwebservice/lib/action_web_service/protocol/abstract.rb index 7526539d53..ed50a6ffde 100644 --- a/actionwebservice/lib/action_web_service/protocol/abstract.rb +++ b/actionwebservice/lib/action_web_service/protocol/abstract.rb @@ -3,17 +3,31 @@ module ActionWebService # :nodoc: class ProtocolError < ActionWebServiceError # :nodoc: end + class AbstractProtocol + attr :marshaler + attr :encoder + + def marshal_response(method, return_value) + body = method.encode_rpc_response(marshaler, encoder, return_value) + Response.new(body, 'text/xml') + end + end + class Request # :nodoc: attr :protocol attr :method_name attr :method_params attr :service_name + attr_accessor :api + attr_accessor :api_method - def initialize(protocol, method_name, method_params, service_name) + def initialize(protocol, method_name, method_params, service_name, api=nil, api_method=nil) @protocol = protocol @method_name = method_name @method_params = method_params @service_name = service_name + @api = api + @api_method = api_method end end |