datanoise-actionwebservice 2.2.2 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +3 -3
- data/lib/action_web_service.rb +3 -3
- data/lib/action_web_service/casting.rb +7 -2
- data/lib/action_web_service/protocol/abstract.rb +4 -4
- data/lib/action_web_service/scaffolding.rb +4 -4
- data/lib/action_web_service/version.rb +2 -2
- data/test/abstract_dispatcher.rb +3 -2
- data/test/abstract_unit.rb +8 -2
- data/test/api_test.rb +1 -1
- data/test/base_test.rb +1 -1
- data/test/casting_test.rb +8 -0
- data/test/client_soap_test.rb +1 -1
- data/test/client_xmlrpc_test.rb +1 -1
- data/test/dispatcher_action_controller_soap_test.rb +2 -1
- data/test/scaffolded_controller_test.rb +6 -6
- data/test/test_invoke_test.rb +1 -1
- metadata +6 -4
data/Rakefile
CHANGED
|
@@ -72,8 +72,8 @@ spec = Gem::Specification.new do |s|
|
|
|
72
72
|
s.rubyforge_project = "aws"
|
|
73
73
|
s.homepage = "http://www.rubyonrails.org"
|
|
74
74
|
|
|
75
|
-
s.add_dependency('actionpack', '= 2.
|
|
76
|
-
s.add_dependency('activerecord', '= 2.
|
|
75
|
+
s.add_dependency('actionpack', '= 2.3.2' + PKG_BUILD)
|
|
76
|
+
s.add_dependency('activerecord', '= 2.3.2' + PKG_BUILD)
|
|
77
77
|
|
|
78
78
|
s.has_rdoc = true
|
|
79
79
|
s.requirements << 'none'
|
|
@@ -170,4 +170,4 @@ task :release => [ :package ] do
|
|
|
170
170
|
rubyforge = RubyForge.new
|
|
171
171
|
rubyforge.login
|
|
172
172
|
rubyforge.add_release(PKG_NAME, PKG_NAME, "REL #{PKG_VERSION}", *packages)
|
|
173
|
-
end
|
|
173
|
+
end
|
data/lib/action_web_service.rb
CHANGED
|
@@ -27,9 +27,9 @@ begin
|
|
|
27
27
|
require 'active_record'
|
|
28
28
|
rescue LoadError
|
|
29
29
|
require 'rubygems'
|
|
30
|
-
gem 'activesupport', '>= 2.
|
|
31
|
-
gem 'actionpack', '>= 2.
|
|
32
|
-
gem 'activerecord', '>= 2.
|
|
30
|
+
gem 'activesupport', '>= 2.3.0'
|
|
31
|
+
gem 'actionpack', '>= 2.3.0'
|
|
32
|
+
gem 'activerecord', '>= 2.3.0'
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
$:.unshift(File.dirname(__FILE__) + "/action_web_service/vendor/")
|
|
@@ -117,8 +117,13 @@ module ActionWebService # :nodoc:
|
|
|
117
117
|
|
|
118
118
|
def cast_to_structured_type(value, signature_type) # :nodoc:
|
|
119
119
|
obj = nil
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
# if the canonical classes are the same or if the given value is of
|
|
121
|
+
# a type that is derived from the signature_type do not attempt to
|
|
122
|
+
# "cast" the value into the signature_type as it's already good to go
|
|
123
|
+
obj = (
|
|
124
|
+
canonical_type(value.class) == canonical_type(signature_type.type) or
|
|
125
|
+
derived_from?(signature_type.type, value.class)
|
|
126
|
+
) ? value : signature_type.type_class.new
|
|
122
127
|
if value.respond_to?(:each_pair)
|
|
123
128
|
klass = signature_type.type_class
|
|
124
129
|
value.each_pair do |name, val|
|
|
@@ -12,7 +12,7 @@ module ActionWebService # :nodoc:
|
|
|
12
12
|
|
|
13
13
|
def encode_action_pack_request(service_name, public_method_name, raw_body, options={})
|
|
14
14
|
klass = options[:request_class] || SimpleActionPackRequest
|
|
15
|
-
request = klass.new
|
|
15
|
+
request = klass.new({})
|
|
16
16
|
request.request_parameters['action'] = service_name.to_s
|
|
17
17
|
request.env['RAW_POST_DATA'] = raw_body
|
|
18
18
|
request.env['REQUEST_METHOD'] = 'POST'
|
|
@@ -71,9 +71,9 @@ module ActionWebService # :nodoc:
|
|
|
71
71
|
end
|
|
72
72
|
end
|
|
73
73
|
|
|
74
|
-
class SimpleActionPackRequest < ActionController::
|
|
75
|
-
def initialize
|
|
76
|
-
@env =
|
|
74
|
+
class SimpleActionPackRequest < ActionController::Request # :nodoc:
|
|
75
|
+
def initialize(env = {})
|
|
76
|
+
@env = env
|
|
77
77
|
@qparams = {}
|
|
78
78
|
@rparams = {}
|
|
79
79
|
@cookies = {}
|
|
@@ -69,7 +69,7 @@ module ActionWebService
|
|
|
69
69
|
post_params = params['method_params'] ? params['method_params'].dup : nil
|
|
70
70
|
params = []
|
|
71
71
|
@scaffold_method.expects.each_with_index do |spec, i|
|
|
72
|
-
params << post_params[i.to_s]
|
|
72
|
+
params << post_params[i.to_s]
|
|
73
73
|
end if @scaffold_method.expects
|
|
74
74
|
params = @scaffold_method.cast_expects(params)
|
|
75
75
|
method_name = public_method_name(@scaffold_service.name, @scaffold_method.public_name)
|
|
@@ -106,9 +106,9 @@ module ActionWebService
|
|
|
106
106
|
def render_invocation_scaffold(action)
|
|
107
107
|
customized_template = "\#{self.class.controller_path}/#{action_name}/\#{action}"
|
|
108
108
|
default_template = scaffold_path(action)
|
|
109
|
-
|
|
109
|
+
begin
|
|
110
110
|
content = @template.render(:file => customized_template)
|
|
111
|
-
|
|
111
|
+
rescue ActionView::MissingTemplate
|
|
112
112
|
content = @template.render(:file => default_template)
|
|
113
113
|
end
|
|
114
114
|
@template.instance_variable_set("@content_for_layout", content)
|
|
@@ -125,7 +125,7 @@ module ActionWebService
|
|
|
125
125
|
|
|
126
126
|
def reset_invocation_response
|
|
127
127
|
erase_render_results
|
|
128
|
-
response.
|
|
128
|
+
response.instance_variable_set :@header, Rack::Utils::HeaderHash.new(::ActionController::Response::DEFAULT_HEADERS.merge("cookie" => []))
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
def public_method_name(service_name, method_name)
|
data/test/abstract_dispatcher.rb
CHANGED
|
@@ -358,7 +358,7 @@ module DispatcherCommonTests
|
|
|
358
358
|
response = ActionController::TestResponse.new
|
|
359
359
|
controller.process(request, response)
|
|
360
360
|
# puts response.body
|
|
361
|
-
assert(response.
|
|
361
|
+
assert(response.status =~ /^500/)
|
|
362
362
|
end
|
|
363
363
|
send_garbage_request.call
|
|
364
364
|
controller.class.web_service_exception_reporting = false
|
|
@@ -538,7 +538,8 @@ module DispatcherCommonTests
|
|
|
538
538
|
|
|
539
539
|
def http_method_allowed?(method)
|
|
540
540
|
method = method.to_s.upcase
|
|
541
|
-
test_request = ActionController::TestRequest.new
|
|
541
|
+
test_request = ActionController::TestRequest.new
|
|
542
|
+
test_request.action = 'api'
|
|
542
543
|
test_response = ActionController::TestResponse.new
|
|
543
544
|
test_request.env['REQUEST_METHOD'] = method
|
|
544
545
|
result = @direct_controller.process(test_request, test_response)
|
data/test/abstract_unit.rb
CHANGED
|
@@ -4,7 +4,9 @@ require 'rubygems'
|
|
|
4
4
|
require 'test/unit'
|
|
5
5
|
require 'action_web_service'
|
|
6
6
|
require 'action_controller'
|
|
7
|
-
require 'action_controller/
|
|
7
|
+
require 'action_controller/test_case'
|
|
8
|
+
require 'action_view'
|
|
9
|
+
require 'action_view/test_case'
|
|
8
10
|
|
|
9
11
|
# Show backtraces for deprecated behavior for quicker cleanup.
|
|
10
12
|
ActiveSupport::Deprecation.debug = true
|
|
@@ -14,6 +16,7 @@ ActiveRecord::Base.logger = ActionController::Base.logger = Logger.new("debug.lo
|
|
|
14
16
|
|
|
15
17
|
begin
|
|
16
18
|
require 'activerecord'
|
|
19
|
+
require "active_record/test_case"
|
|
17
20
|
require "active_record/fixtures" unless Object.const_defined?(:Fixtures)
|
|
18
21
|
rescue LoadError => e
|
|
19
22
|
fail "\nFailed to load activerecord: #{e}"
|
|
@@ -30,4 +33,7 @@ ActiveRecord::Base.configurations = {
|
|
|
30
33
|
|
|
31
34
|
ActiveRecord::Base.establish_connection 'mysql'
|
|
32
35
|
|
|
33
|
-
|
|
36
|
+
class ActiveSupport::TestCase
|
|
37
|
+
include ActiveRecord::TestFixtures
|
|
38
|
+
self.fixture_path = "#{File.dirname(__FILE__)}/fixtures/"
|
|
39
|
+
end
|
data/test/api_test.rb
CHANGED
data/test/base_test.rb
CHANGED
|
@@ -34,7 +34,7 @@ module BaseTest
|
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
class TC_Base <
|
|
37
|
+
class TC_Base < ActiveSupport::TestCase
|
|
38
38
|
def test_options
|
|
39
39
|
assert(BaseTest::PristineService.web_service_api.inflect_names == false)
|
|
40
40
|
assert(BaseTest::Service.web_service_api.inflect_names == true)
|
data/test/casting_test.rb
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
require File.dirname(__FILE__) + '/abstract_unit'
|
|
2
2
|
|
|
3
3
|
module CastingTest
|
|
4
|
+
class A < ActionWebService::Struct; end
|
|
5
|
+
class B < A; end
|
|
4
6
|
class API < ActionWebService::API::Base
|
|
5
7
|
api_method :int, :expects => [:int]
|
|
6
8
|
api_method :str, :expects => [:string]
|
|
@@ -14,6 +16,8 @@ module CastingTest
|
|
|
14
16
|
api_method :int_array, :expects => [[:int]]
|
|
15
17
|
api_method :str_array, :expects => [[:string]]
|
|
16
18
|
api_method :bool_array, :expects => [[:bool]]
|
|
19
|
+
|
|
20
|
+
api_method :a, :expects => [A]
|
|
17
21
|
end
|
|
18
22
|
end
|
|
19
23
|
|
|
@@ -78,6 +82,10 @@ class TC_Casting < Test::Unit::TestCase
|
|
|
78
82
|
cast_expects(:int_array, ['1', '2.021', '4'])
|
|
79
83
|
end
|
|
80
84
|
end
|
|
85
|
+
|
|
86
|
+
def test_structured_type_casting_with_polymorphism
|
|
87
|
+
assert cast_expects(:a, B.new)[0].is_a?(B)
|
|
88
|
+
end
|
|
81
89
|
|
|
82
90
|
private
|
|
83
91
|
def cast_expects(method_name, *args)
|
data/test/client_soap_test.rb
CHANGED
data/test/client_xmlrpc_test.rb
CHANGED
|
@@ -129,7 +129,8 @@ class TC_DispatcherActionControllerSoap < Test::Unit::TestCase
|
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
def ensure_valid_wsdl_action(controller)
|
|
132
|
-
test_request = ActionController::TestRequest.new
|
|
132
|
+
test_request = ActionController::TestRequest.new
|
|
133
|
+
test_request.action = 'wsdl'
|
|
133
134
|
test_response = ActionController::TestResponse.new
|
|
134
135
|
wsdl = controller.process(test_request, test_response).body
|
|
135
136
|
ensure_valid_wsdl(controller, wsdl, DispatcherTest::WsdlNamespace)
|
|
@@ -64,12 +64,12 @@ class ScaffoldedController < ActionController::Base
|
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
-
class ScaffoldedControllerTest <
|
|
68
|
-
def setup
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
end
|
|
67
|
+
class ScaffoldedControllerTest < ActionController::TestCase
|
|
68
|
+
# def setup
|
|
69
|
+
# @controller = ScaffoldedController.new
|
|
70
|
+
# @request = ActionController::TestRequest.new
|
|
71
|
+
# @response = ActionController::TestResponse.new
|
|
72
|
+
# end
|
|
73
73
|
|
|
74
74
|
def test_scaffold_invoke
|
|
75
75
|
get :scaffold_invoke
|
data/test/test_invoke_test.rb
CHANGED
|
@@ -49,7 +49,7 @@ class TestInvokeLayeredController < TestController
|
|
|
49
49
|
web_service(:two) { @service_two ||= TestInvokeService.new }
|
|
50
50
|
end
|
|
51
51
|
|
|
52
|
-
class TestInvokeTest <
|
|
52
|
+
class TestInvokeTest < ActiveSupport::TestCase
|
|
53
53
|
def setup
|
|
54
54
|
@request = ActionController::TestRequest.new
|
|
55
55
|
@response = ActionController::TestResponse.new
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: datanoise-actionwebservice
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Leon Breedt, Kent Sibilev
|
|
@@ -9,26 +9,28 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date:
|
|
12
|
+
date: 2009-03-29 00:00:00 -07:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: actionpack
|
|
17
|
+
type: :runtime
|
|
17
18
|
version_requirement:
|
|
18
19
|
version_requirements: !ruby/object:Gem::Requirement
|
|
19
20
|
requirements:
|
|
20
21
|
- - "="
|
|
21
22
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: 2.
|
|
23
|
+
version: 2.3.2
|
|
23
24
|
version:
|
|
24
25
|
- !ruby/object:Gem::Dependency
|
|
25
26
|
name: activerecord
|
|
27
|
+
type: :runtime
|
|
26
28
|
version_requirement:
|
|
27
29
|
version_requirements: !ruby/object:Gem::Requirement
|
|
28
30
|
requirements:
|
|
29
31
|
- - "="
|
|
30
32
|
- !ruby/object:Gem::Version
|
|
31
|
-
version: 2.
|
|
33
|
+
version: 2.3.2
|
|
32
34
|
version:
|
|
33
35
|
description: Adds WSDL/SOAP and XML-RPC web service support to Action Pack
|
|
34
36
|
email: bitserf@gmail.com, ksibilev@yahoo.com
|