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 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