datanoise-actionwebservice 2.2.2 → 2.3.2

Sign up to get free protection for your applications and to get access to all the features.
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.1.0' + PKG_BUILD)
76
- s.add_dependency('activerecord', '= 2.1.0' + PKG_BUILD)
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
@@ -27,9 +27,9 @@ begin
27
27
  require 'active_record'
28
28
  rescue LoadError
29
29
  require 'rubygems'
30
- gem 'activesupport', '>= 2.1.0'
31
- gem 'actionpack', '>= 2.1.0'
32
- gem 'activerecord', '>= 2.1.0'
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
- obj = value if canonical_type(value.class) == canonical_type(signature_type.type)
121
- obj ||= signature_type.type_class.new
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::AbstractRequest # :nodoc:
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
- if template_exists?(customized_template)
109
+ begin
110
110
  content = @template.render(:file => customized_template)
111
- else
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.headers = ::ActionController::AbstractResponse::DEFAULT_HEADERS.merge("cookie" => [])
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)
@@ -1,8 +1,8 @@
1
1
  module ActionWebService
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 2
4
- MINOR = 1
5
- TINY = 0
4
+ MINOR = 3
5
+ TINY = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -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.headers['Status'] =~ /^500/)
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({ 'action' => 'api' })
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)
@@ -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/test_process'
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
- Test::Unit::TestCase.fixture_path = "#{File.dirname(__FILE__)}/fixtures/"
36
+ class ActiveSupport::TestCase
37
+ include ActiveRecord::TestFixtures
38
+ self.fixture_path = "#{File.dirname(__FILE__)}/fixtures/"
39
+ end
data/test/api_test.rb CHANGED
@@ -12,7 +12,7 @@ module APITest
12
12
  end
13
13
  end
14
14
 
15
- class TC_API < Test::Unit::TestCase
15
+ class TC_API < ActiveSupport::TestCase
16
16
  API = APITest::API
17
17
 
18
18
  def test_api_method_declaration
data/test/base_test.rb CHANGED
@@ -34,7 +34,7 @@ module BaseTest
34
34
  end
35
35
  end
36
36
 
37
- class TC_Base < Test::Unit::TestCase
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)
@@ -48,7 +48,7 @@ module ClientSoapTest
48
48
  end
49
49
  end
50
50
 
51
- class TC_ClientSoap < Test::Unit::TestCase
51
+ class TC_ClientSoap < ActiveSupport::TestCase
52
52
  include ClientTest
53
53
  include ClientSoapTest
54
54
 
@@ -42,7 +42,7 @@ module ClientXmlRpcTest
42
42
  end
43
43
  end
44
44
 
45
- class TC_ClientXmlRpc < Test::Unit::TestCase
45
+ class TC_ClientXmlRpc < ActiveSupport::TestCase
46
46
  include ClientTest
47
47
  include ClientXmlRpcTest
48
48
 
@@ -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({ 'action' => 'wsdl' })
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 < Test::Unit::TestCase
68
- def setup
69
- @controller = ScaffoldedController.new
70
- @request = ActionController::TestRequest.new
71
- @response = ActionController::TestResponse.new
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
@@ -49,7 +49,7 @@ class TestInvokeLayeredController < TestController
49
49
  web_service(:two) { @service_two ||= TestInvokeService.new }
50
50
  end
51
51
 
52
- class TestInvokeTest < Test::Unit::TestCase
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.2.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: 2008-10-27 00:00:00 -07:00
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.2.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.2.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