actionwebservice 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/{ChangeLog → CHANGELOG} +20 -0
- data/README +45 -1
- data/Rakefile +12 -10
- data/TODO +8 -9
- data/lib/action_web_service.rb +10 -6
- data/lib/action_web_service/api.rb +1 -2
- data/lib/action_web_service/api/{abstract.rb → base.rb} +14 -71
- data/lib/action_web_service/base.rb +0 -3
- data/lib/action_web_service/client/base.rb +1 -12
- data/lib/action_web_service/client/soap_client.rb +49 -17
- data/lib/action_web_service/client/xmlrpc_client.rb +20 -15
- data/lib/action_web_service/container.rb +3 -85
- data/lib/action_web_service/{api/action_controller.rb → container/action_controller_container.rb} +2 -2
- data/lib/action_web_service/container/delegated_container.rb +87 -0
- data/lib/action_web_service/container/direct_container.rb +70 -0
- data/lib/action_web_service/dispatcher/abstract.rb +100 -102
- data/lib/action_web_service/dispatcher/action_controller_dispatcher.rb +199 -137
- data/lib/action_web_service/protocol.rb +1 -1
- data/lib/action_web_service/protocol/abstract.rb +14 -112
- data/lib/action_web_service/protocol/discovery.rb +37 -0
- data/lib/action_web_service/protocol/soap_protocol.rb +32 -458
- data/lib/action_web_service/protocol/xmlrpc_protocol.rb +29 -149
- data/lib/action_web_service/struct.rb +2 -5
- data/lib/action_web_service/test_invoke.rb +130 -0
- data/lib/action_web_service/vendor/ws.rb +4 -0
- data/lib/action_web_service/vendor/ws/common.rb +8 -0
- data/lib/action_web_service/vendor/ws/encoding.rb +3 -0
- data/lib/action_web_service/vendor/ws/encoding/abstract.rb +26 -0
- data/lib/action_web_service/vendor/ws/encoding/soap_rpc_encoding.rb +90 -0
- data/lib/action_web_service/vendor/ws/encoding/xmlrpc_encoding.rb +53 -0
- data/lib/action_web_service/vendor/ws/marshaling.rb +3 -0
- data/lib/action_web_service/vendor/ws/marshaling/abstract.rb +17 -0
- data/lib/action_web_service/vendor/ws/marshaling/soap_marshaling.rb +277 -0
- data/lib/action_web_service/vendor/ws/marshaling/xmlrpc_marshaling.rb +116 -0
- data/lib/action_web_service/vendor/ws/types.rb +162 -0
- data/test/abstract_client.rb +8 -11
- data/test/abstract_dispatcher.rb +370 -0
- data/test/abstract_unit.rb +1 -0
- data/test/api_test.rb +18 -1
- data/test/apis/auto_load_api.rb +3 -0
- data/test/apis/broken_auto_load_api.rb +2 -0
- data/test/client_soap_test.rb +16 -3
- data/test/client_xmlrpc_test.rb +16 -4
- data/test/container_test.rb +28 -8
- data/test/dispatcher_action_controller_soap_test.rb +106 -0
- data/test/dispatcher_action_controller_xmlrpc_test.rb +44 -0
- data/test/gencov +1 -1
- data/test/invocation_test.rb +39 -3
- data/test/run +4 -4
- data/test/test_invoke_test.rb +77 -0
- data/test/ws/abstract_encoding.rb +68 -0
- data/test/ws/abstract_unit.rb +13 -0
- data/test/ws/gencov +3 -0
- data/test/ws/run +5 -0
- data/test/ws/soap_marshaling_test.rb +91 -0
- data/test/ws/soap_rpc_encoding_test.rb +47 -0
- data/test/ws/types_test.rb +41 -0
- data/test/ws/xmlrpc_encoding_test.rb +34 -0
- metadata +48 -19
- data/lib/action_web_service/protocol/registry.rb +0 -55
- data/lib/action_web_service/support/signature.rb +0 -100
- data/test/abstract_soap.rb +0 -58
- data/test/dispatcher_action_controller_test.rb +0 -186
- data/test/protocol_registry_test.rb +0 -53
- data/test/protocol_soap_test.rb +0 -252
- data/test/protocol_xmlrpc_test.rb +0 -147
@@ -0,0 +1,77 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/abstract_unit'
|
2
|
+
require 'action_web_service/test_invoke'
|
3
|
+
|
4
|
+
class TestInvokeAPI < ActionWebService::API::Base
|
5
|
+
api_method :add, :expects => [:int, :int], :returns => [:int]
|
6
|
+
end
|
7
|
+
|
8
|
+
class TestInvokeService < ActionWebService::Base
|
9
|
+
web_service_api TestInvokeAPI
|
10
|
+
|
11
|
+
attr :invoked
|
12
|
+
|
13
|
+
def add(a, b)
|
14
|
+
@invoked = true
|
15
|
+
a + b
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class TestController < ActionController::Base
|
20
|
+
def rescue_action(e); raise e; end
|
21
|
+
end
|
22
|
+
|
23
|
+
class TestInvokeDirectController < TestController
|
24
|
+
web_service_api TestInvokeAPI
|
25
|
+
|
26
|
+
attr :invoked
|
27
|
+
|
28
|
+
def add
|
29
|
+
@invoked = true
|
30
|
+
@method_params[0] + @method_params[1]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class TestInvokeDelegatedController < TestController
|
35
|
+
web_service_dispatching_mode :delegated
|
36
|
+
web_service :service, TestInvokeService.new
|
37
|
+
end
|
38
|
+
|
39
|
+
class TestInvokeLayeredController < TestController
|
40
|
+
web_service_dispatching_mode :layered
|
41
|
+
web_service :one, TestInvokeService.new
|
42
|
+
web_service :two, TestInvokeService.new
|
43
|
+
end
|
44
|
+
|
45
|
+
class TestInvokeTest < Test::Unit::TestCase
|
46
|
+
def setup
|
47
|
+
@request = ActionController::TestRequest.new
|
48
|
+
@response = ActionController::TestResponse.new
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_direct_add
|
52
|
+
@controller = TestInvokeDirectController.new
|
53
|
+
assert_equal nil, @controller.invoked
|
54
|
+
result = invoke :add, 25, 25
|
55
|
+
assert_equal 50, result
|
56
|
+
assert_equal true, @controller.invoked
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_delegated_add
|
60
|
+
@controller = TestInvokeDelegatedController.new
|
61
|
+
assert_equal nil, @controller.web_service_object(:service).invoked
|
62
|
+
result = invoke_delegated :service, :add, 100, 50
|
63
|
+
assert_equal 150, result
|
64
|
+
assert_equal true, @controller.web_service_object(:service).invoked
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_layered_add
|
68
|
+
@protocol = :xmlrpc
|
69
|
+
@controller = TestInvokeLayeredController.new
|
70
|
+
[:one, :two].each do |service|
|
71
|
+
assert_equal nil, @controller.web_service_object(service).invoked
|
72
|
+
result = invoke_layered service, :add, 200, -50
|
73
|
+
assert_equal 150, result
|
74
|
+
assert_equal true, @controller.web_service_object(service).invoked
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/abstract_unit'
|
2
|
+
|
3
|
+
module Nested
|
4
|
+
class StructClass
|
5
|
+
attr_accessor :name
|
6
|
+
attr_accessor :version
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@name = 5
|
10
|
+
@version = "1.0"
|
11
|
+
end
|
12
|
+
|
13
|
+
def ==(other)
|
14
|
+
@name == other.name && @version == other.version
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module EncodingTest
|
20
|
+
def setup
|
21
|
+
@call_signature = [:int, :bool, :string, :float, [:time], Nested::StructClass]
|
22
|
+
@call_params = [1, true, "string", 5.0, [Time.now], Nested::StructClass.new]
|
23
|
+
@response_signature = [:string]
|
24
|
+
@response_param = "hello world"
|
25
|
+
test_setup
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_abstract
|
29
|
+
obj = WS::Encoding::AbstractEncoding.new
|
30
|
+
assert_raises(NotImplementedError) do
|
31
|
+
obj.encode_rpc_call(nil, nil)
|
32
|
+
end
|
33
|
+
assert_raises(NotImplementedError) do
|
34
|
+
obj.decode_rpc_call(nil)
|
35
|
+
end
|
36
|
+
assert_raises(NotImplementedError) do
|
37
|
+
obj.encode_rpc_response(nil, nil)
|
38
|
+
end
|
39
|
+
assert_raises(NotImplementedError) do
|
40
|
+
obj.decode_rpc_response(nil)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def encode_rpc_call(method_name, signature, params)
|
45
|
+
params = params.dup
|
46
|
+
(0..(signature.length-1)).each do |i|
|
47
|
+
type_binding = @marshaler.register_type(signature[i])
|
48
|
+
info = WS::ParamInfo.create(signature[i], type_binding, i)
|
49
|
+
params[i] = @marshaler.marshal(WS::Param.new(params[i], info))
|
50
|
+
end
|
51
|
+
@encoder.encode_rpc_call(method_name, params)
|
52
|
+
end
|
53
|
+
|
54
|
+
def decode_rpc_call(obj)
|
55
|
+
@encoder.decode_rpc_call(obj)
|
56
|
+
end
|
57
|
+
|
58
|
+
def encode_rpc_response(method_name, signature, param)
|
59
|
+
type_binding = @marshaler.register_type(signature[0])
|
60
|
+
info = WS::ParamInfo.create(signature[0], type_binding, 0)
|
61
|
+
param = @marshaler.marshal(WS::Param.new(param, info))
|
62
|
+
@encoder.encode_rpc_response(method_name, param)
|
63
|
+
end
|
64
|
+
|
65
|
+
def decode_rpc_response(obj)
|
66
|
+
@encoder.decode_rpc_response(obj)
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
$:.unshift(Pathname.new(File.dirname(__FILE__)).realpath.to_s + '/../../lib/action_web_service/vendor')
|
3
|
+
require 'test/unit'
|
4
|
+
require 'ws'
|
5
|
+
begin
|
6
|
+
require 'active_record'
|
7
|
+
rescue LoadError
|
8
|
+
begin
|
9
|
+
require 'rubygems'
|
10
|
+
require_gem 'activerecord', '>= 1.6.0'
|
11
|
+
rescue LoadError
|
12
|
+
end
|
13
|
+
end
|
data/test/ws/gencov
ADDED
data/test/ws/run
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/abstract_unit'
|
2
|
+
|
3
|
+
module Nested
|
4
|
+
class MyClass
|
5
|
+
attr_accessor :id
|
6
|
+
attr_accessor :name
|
7
|
+
|
8
|
+
def initialize(id, name)
|
9
|
+
@id = id
|
10
|
+
@name = name
|
11
|
+
end
|
12
|
+
|
13
|
+
def ==(other)
|
14
|
+
@id == other.id && @name == other.name
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class SoapMarshalingTest < Test::Unit::TestCase
|
20
|
+
def setup
|
21
|
+
@marshaler = WS::Marshaling::SoapMarshaler.new
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_abstract
|
25
|
+
marshaler = WS::Marshaling::AbstractMarshaler.new
|
26
|
+
assert_raises(NotImplementedError) do
|
27
|
+
marshaler.marshal(nil)
|
28
|
+
end
|
29
|
+
assert_raises(NotImplementedError) do
|
30
|
+
marshaler.unmarshal(nil)
|
31
|
+
end
|
32
|
+
assert_equal(nil, marshaler.register_type(nil))
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_marshaling
|
36
|
+
info = WS::ParamInfo.create(Nested::MyClass, @marshaler.register_type(Nested::MyClass))
|
37
|
+
param = WS::Param.new(Nested::MyClass.new(2, "name"), info)
|
38
|
+
new_param = @marshaler.unmarshal(@marshaler.marshal(param))
|
39
|
+
assert(param == new_param)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_exception_marshaling
|
43
|
+
info = WS::ParamInfo.create(RuntimeError, @marshaler.register_type(RuntimeError))
|
44
|
+
param = WS::Param.new(RuntimeError.new("hello, world"), info)
|
45
|
+
new_param = @marshaler.unmarshal(@marshaler.marshal(param))
|
46
|
+
assert_equal("hello, world", new_param.value.detail.cause.message)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_registration
|
50
|
+
type_binding1 = @marshaler.register_type(:int)
|
51
|
+
type_binding2 = @marshaler.register_type(:int)
|
52
|
+
assert(type_binding1.equal?(type_binding2))
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_active_record
|
56
|
+
if Object.const_defined?('ActiveRecord')
|
57
|
+
node_class = Class.new(ActiveRecord::Base) do
|
58
|
+
def initialize(*args)
|
59
|
+
super(*args)
|
60
|
+
@new_record = false
|
61
|
+
end
|
62
|
+
|
63
|
+
class << self
|
64
|
+
def name
|
65
|
+
"Node"
|
66
|
+
end
|
67
|
+
|
68
|
+
def columns(*args)
|
69
|
+
[
|
70
|
+
ActiveRecord::ConnectionAdapters::Column.new('id', 0, 'int'),
|
71
|
+
ActiveRecord::ConnectionAdapters::Column.new('name', nil, 'string'),
|
72
|
+
ActiveRecord::ConnectionAdapters::Column.new('email', nil, 'string'),
|
73
|
+
]
|
74
|
+
end
|
75
|
+
|
76
|
+
def connection
|
77
|
+
self
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
info = WS::ParamInfo.create(node_class, @marshaler.register_type(node_class), 0)
|
82
|
+
ar_obj = node_class.new('name' => 'hello', 'email' => 'test@test.com')
|
83
|
+
param = WS::Param.new(ar_obj, info)
|
84
|
+
obj = @marshaler.marshal(param)
|
85
|
+
param = @marshaler.unmarshal(obj)
|
86
|
+
new_ar_obj = param.value
|
87
|
+
assert_equal(ar_obj, new_ar_obj)
|
88
|
+
assert(!ar_obj.equal?(new_ar_obj))
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/abstract_encoding'
|
2
|
+
require 'time'
|
3
|
+
|
4
|
+
class SoapRpcEncodingTest < Test::Unit::TestCase
|
5
|
+
include EncodingTest
|
6
|
+
|
7
|
+
def test_setup
|
8
|
+
@encoder = WS::Encoding::SoapRpcEncoding.new
|
9
|
+
@marshaler = WS::Marshaling::SoapMarshaler.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_call_encoding_and_decoding
|
13
|
+
obj = encode_rpc_call('DecodeMe', @call_signature, @call_params)
|
14
|
+
method_name, decoded_params = decode_rpc_call(obj)
|
15
|
+
params = decoded_params.map{|x| @marshaler.unmarshal(x).value}
|
16
|
+
assert_equal(method_name, 'DecodeMe')
|
17
|
+
assert_equal(@call_params[0..3], params[0..3])
|
18
|
+
# XXX: DateTime not marshaled correctly yet
|
19
|
+
assert_equal(@call_params[5..-1], params[5..-1])
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_response_encoding_and_decoding_simple
|
23
|
+
obj = encode_rpc_response('DecodeMe', @response_signature, @response_param)
|
24
|
+
method_name, return_value = decode_rpc_response(obj)
|
25
|
+
return_value = @marshaler.unmarshal(return_value).value
|
26
|
+
assert_equal('DecodeMe', method_name)
|
27
|
+
assert_equal(@response_param, return_value)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_response_encoding_and_decoding_struct
|
31
|
+
struct = Nested::StructClass.new
|
32
|
+
obj = encode_rpc_response('DecodeMe', [Nested::StructClass], struct)
|
33
|
+
method_name, return_value = decode_rpc_response(obj)
|
34
|
+
return_value = @marshaler.unmarshal(return_value).value
|
35
|
+
assert_equal('DecodeMe', method_name)
|
36
|
+
assert_equal(struct, return_value)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_response_encoding_and_decoding_array
|
40
|
+
struct = Nested::StructClass.new
|
41
|
+
obj = encode_rpc_response('DecodeMe', [[Nested::StructClass]], [struct])
|
42
|
+
method_name, return_value = decode_rpc_response(obj)
|
43
|
+
return_value = @marshaler.unmarshal(return_value).value
|
44
|
+
assert_equal('DecodeMe', method_name)
|
45
|
+
assert_equal([struct], return_value)
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/abstract_unit'
|
2
|
+
|
3
|
+
class TypesTest < Test::Unit::TestCase
|
4
|
+
include WS
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@caster = BaseTypeCaster.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_base_types
|
11
|
+
assert_equal(:int, BaseTypes.canonical_type_name(:integer))
|
12
|
+
assert_equal(:int, BaseTypes.canonical_type_name(:fixnum))
|
13
|
+
assert_equal(Integer, BaseTypes.type_name_to_class(:bignum))
|
14
|
+
assert_equal(Date, BaseTypes.type_name_to_class(:date))
|
15
|
+
assert_equal(Time, BaseTypes.type_name_to_class(:timestamp))
|
16
|
+
assert_equal(TrueClass, BaseTypes.type_name_to_class(:bool))
|
17
|
+
assert_equal(:int, BaseTypes.class_to_type_name(Bignum))
|
18
|
+
assert_equal(:bool, BaseTypes.class_to_type_name(FalseClass))
|
19
|
+
assert_equal(Integer, BaseTypes.canonical_type_class(Fixnum))
|
20
|
+
assert_raises(TypeError) do
|
21
|
+
BaseTypes.canonical_type_name(:fake)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_casting
|
26
|
+
assert_equal(5, @caster.cast("5", Fixnum))
|
27
|
+
assert_equal('50.0', @caster.cast(50.0, String))
|
28
|
+
assert_equal(true, @caster.cast('true', FalseClass))
|
29
|
+
assert_equal(false, @caster.cast('false', TrueClass))
|
30
|
+
assert_raises(TypeError) do
|
31
|
+
@caster.cast('yes', FalseClass)
|
32
|
+
end
|
33
|
+
assert_equal(3.14159, @caster.cast('3.14159', Float))
|
34
|
+
now1 = Time.new
|
35
|
+
now2 = @caster.cast("#{now1}", Time)
|
36
|
+
assert_equal(now1.tv_sec, now2.tv_sec)
|
37
|
+
date1 = Date.parse('2004-01-01')
|
38
|
+
date2 = @caster.cast("#{date1}", Date)
|
39
|
+
assert_equal(date1, date2)
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/abstract_encoding'
|
2
|
+
require 'time'
|
3
|
+
|
4
|
+
class XmlRpcEncodingTest < Test::Unit::TestCase
|
5
|
+
include EncodingTest
|
6
|
+
|
7
|
+
def test_setup
|
8
|
+
@encoder = WS::Encoding::XmlRpcEncoding.new
|
9
|
+
@marshaler = WS::Marshaling::XmlRpcMarshaler.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_typed_call_encoding_and_decoding
|
13
|
+
obj = encode_rpc_call('DecodeMe', @call_signature, @call_params)
|
14
|
+
method_name, params = decode_rpc_call(obj)
|
15
|
+
(0..(@call_signature.length-1)).each do |i|
|
16
|
+
params[i] = @marshaler.typed_unmarshal(params[i], @call_signature[i]).value
|
17
|
+
end
|
18
|
+
assert_equal(method_name, 'DecodeMe')
|
19
|
+
assert_equal(@call_params[0..3], params[0..3])
|
20
|
+
assert_equal(@call_params[5..-1], params[5..-1])
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_untyped_call_encoding_and_decoding
|
24
|
+
obj = encode_rpc_call('DecodeMe', @call_signature, @call_params)
|
25
|
+
method_name, params = decode_rpc_call(obj)
|
26
|
+
(0..(@call_signature.length-1)).each do |i|
|
27
|
+
params[i] = @marshaler.unmarshal(params[i]).value
|
28
|
+
end
|
29
|
+
assert_equal(method_name, 'DecodeMe')
|
30
|
+
assert_equal(@call_params[0..3], params[0..3])
|
31
|
+
assert_equal(@call_params[5].name, params[5]['name'])
|
32
|
+
assert_equal(@call_params[5].version, params[5]['version'])
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.8.
|
2
|
+
rubygems_version: 0.8.6
|
3
3
|
specification_version: 1
|
4
4
|
name: actionwebservice
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2005-
|
6
|
+
version: 0.6.0
|
7
|
+
date: 2005-03-07
|
8
8
|
summary: Web service support for Action Pack.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -31,7 +31,7 @@ files:
|
|
31
31
|
- setup.rb
|
32
32
|
- README
|
33
33
|
- TODO
|
34
|
-
-
|
34
|
+
- CHANGELOG
|
35
35
|
- MIT-LICENSE
|
36
36
|
- examples/googlesearch
|
37
37
|
- examples/metaWeblog
|
@@ -54,6 +54,7 @@ files:
|
|
54
54
|
- lib/action_web_service/base.rb
|
55
55
|
- lib/action_web_service/client
|
56
56
|
- lib/action_web_service/client.rb
|
57
|
+
- lib/action_web_service/container
|
57
58
|
- lib/action_web_service/container.rb
|
58
59
|
- lib/action_web_service/dispatcher
|
59
60
|
- lib/action_web_service/dispatcher.rb
|
@@ -62,35 +63,63 @@ files:
|
|
62
63
|
- lib/action_web_service/protocol.rb
|
63
64
|
- lib/action_web_service/struct.rb
|
64
65
|
- lib/action_web_service/support
|
65
|
-
- lib/action_web_service/
|
66
|
-
- lib/action_web_service/
|
66
|
+
- lib/action_web_service/test_invoke.rb
|
67
|
+
- lib/action_web_service/vendor
|
68
|
+
- lib/action_web_service/api/base.rb
|
67
69
|
- lib/action_web_service/client/base.rb
|
68
70
|
- lib/action_web_service/client/soap_client.rb
|
69
71
|
- lib/action_web_service/client/xmlrpc_client.rb
|
72
|
+
- lib/action_web_service/container/action_controller_container.rb
|
73
|
+
- lib/action_web_service/container/delegated_container.rb
|
74
|
+
- lib/action_web_service/container/direct_container.rb
|
70
75
|
- lib/action_web_service/dispatcher/abstract.rb
|
71
76
|
- lib/action_web_service/dispatcher/action_controller_dispatcher.rb
|
72
77
|
- lib/action_web_service/protocol/abstract.rb
|
73
|
-
- lib/action_web_service/protocol/
|
78
|
+
- lib/action_web_service/protocol/discovery.rb
|
74
79
|
- lib/action_web_service/protocol/soap_protocol.rb
|
75
80
|
- lib/action_web_service/protocol/xmlrpc_protocol.rb
|
76
81
|
- lib/action_web_service/support/class_inheritable_options.rb
|
77
|
-
- lib/action_web_service/
|
82
|
+
- lib/action_web_service/vendor/ws
|
83
|
+
- lib/action_web_service/vendor/ws.rb
|
84
|
+
- lib/action_web_service/vendor/ws/common.rb
|
85
|
+
- lib/action_web_service/vendor/ws/encoding
|
86
|
+
- lib/action_web_service/vendor/ws/encoding.rb
|
87
|
+
- lib/action_web_service/vendor/ws/marshaling
|
88
|
+
- lib/action_web_service/vendor/ws/marshaling.rb
|
89
|
+
- lib/action_web_service/vendor/ws/types.rb
|
90
|
+
- lib/action_web_service/vendor/ws/encoding/abstract.rb
|
91
|
+
- lib/action_web_service/vendor/ws/encoding/soap_rpc_encoding.rb
|
92
|
+
- lib/action_web_service/vendor/ws/encoding/xmlrpc_encoding.rb
|
93
|
+
- lib/action_web_service/vendor/ws/marshaling/abstract.rb
|
94
|
+
- lib/action_web_service/vendor/ws/marshaling/soap_marshaling.rb
|
95
|
+
- lib/action_web_service/vendor/ws/marshaling/xmlrpc_marshaling.rb
|
78
96
|
- test/abstract_client.rb
|
79
|
-
- test/
|
97
|
+
- test/abstract_dispatcher.rb
|
80
98
|
- test/abstract_unit.rb
|
81
99
|
- test/api_test.rb
|
100
|
+
- test/apis
|
82
101
|
- test/base_test.rb
|
83
102
|
- test/client_soap_test.rb
|
84
103
|
- test/client_xmlrpc_test.rb
|
85
104
|
- test/container_test.rb
|
86
|
-
- test/
|
105
|
+
- test/dispatcher_action_controller_soap_test.rb
|
106
|
+
- test/dispatcher_action_controller_xmlrpc_test.rb
|
87
107
|
- test/gencov
|
88
108
|
- test/invocation_test.rb
|
89
|
-
- test/protocol_registry_test.rb
|
90
|
-
- test/protocol_soap_test.rb
|
91
|
-
- test/protocol_xmlrpc_test.rb
|
92
109
|
- test/run
|
93
110
|
- test/struct_test.rb
|
111
|
+
- test/test_invoke_test.rb
|
112
|
+
- test/ws
|
113
|
+
- test/apis/auto_load_api.rb
|
114
|
+
- test/apis/broken_auto_load_api.rb
|
115
|
+
- test/ws/abstract_encoding.rb
|
116
|
+
- test/ws/abstract_unit.rb
|
117
|
+
- test/ws/gencov
|
118
|
+
- test/ws/run
|
119
|
+
- test/ws/soap_marshaling_test.rb
|
120
|
+
- test/ws/soap_rpc_encoding_test.rb
|
121
|
+
- test/ws/types_test.rb
|
122
|
+
- test/ws/xmlrpc_encoding_test.rb
|
94
123
|
test_files: []
|
95
124
|
rdoc_options: []
|
96
125
|
extra_rdoc_files: []
|
@@ -105,9 +134,9 @@ dependencies:
|
|
105
134
|
version_requirements: !ruby/object:Gem::Version::Requirement
|
106
135
|
requirements:
|
107
136
|
-
|
108
|
-
- "
|
137
|
+
- ">="
|
109
138
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.5.
|
139
|
+
version: 1.5.1
|
111
140
|
version:
|
112
141
|
- !ruby/object:Gem::Dependency
|
113
142
|
name: activerecord
|
@@ -115,9 +144,9 @@ dependencies:
|
|
115
144
|
version_requirements: !ruby/object:Gem::Version::Requirement
|
116
145
|
requirements:
|
117
146
|
-
|
118
|
-
- "
|
147
|
+
- ">="
|
119
148
|
- !ruby/object:Gem::Version
|
120
|
-
version: 1.
|
149
|
+
version: 1.8.0
|
121
150
|
version:
|
122
151
|
- !ruby/object:Gem::Dependency
|
123
152
|
name: activesupport
|
@@ -125,7 +154,7 @@ dependencies:
|
|
125
154
|
version_requirements: !ruby/object:Gem::Version::Requirement
|
126
155
|
requirements:
|
127
156
|
-
|
128
|
-
- "
|
157
|
+
- ">="
|
129
158
|
- !ruby/object:Gem::Version
|
130
|
-
version: 1.0.
|
159
|
+
version: 1.0.1
|
131
160
|
version:
|