rickenharp-actionwebservice 2.3.4

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.
Files changed (79) hide show
  1. data/CHANGELOG +320 -0
  2. data/MIT-LICENSE +21 -0
  3. data/README +381 -0
  4. data/Rakefile +173 -0
  5. data/TODO +32 -0
  6. data/examples/googlesearch/README +143 -0
  7. data/examples/googlesearch/autoloading/google_search_api.rb +50 -0
  8. data/examples/googlesearch/autoloading/google_search_controller.rb +57 -0
  9. data/examples/googlesearch/delegated/google_search_service.rb +108 -0
  10. data/examples/googlesearch/delegated/search_controller.rb +7 -0
  11. data/examples/googlesearch/direct/google_search_api.rb +50 -0
  12. data/examples/googlesearch/direct/search_controller.rb +58 -0
  13. data/examples/metaWeblog/README +17 -0
  14. data/examples/metaWeblog/apis/blogger_api.rb +60 -0
  15. data/examples/metaWeblog/apis/blogger_service.rb +34 -0
  16. data/examples/metaWeblog/apis/meta_weblog_api.rb +67 -0
  17. data/examples/metaWeblog/apis/meta_weblog_service.rb +48 -0
  18. data/examples/metaWeblog/controllers/xmlrpc_controller.rb +16 -0
  19. data/generators/web_service/USAGE +28 -0
  20. data/generators/web_service/templates/api_definition.rb +5 -0
  21. data/generators/web_service/templates/controller.rb +8 -0
  22. data/generators/web_service/templates/functional_test.rb +19 -0
  23. data/generators/web_service/web_service_generator.rb +29 -0
  24. data/lib/action_web_service.rb +66 -0
  25. data/lib/action_web_service/api.rb +297 -0
  26. data/lib/action_web_service/base.rb +38 -0
  27. data/lib/action_web_service/casting.rb +149 -0
  28. data/lib/action_web_service/client.rb +3 -0
  29. data/lib/action_web_service/client/base.rb +28 -0
  30. data/lib/action_web_service/client/soap_client.rb +113 -0
  31. data/lib/action_web_service/client/xmlrpc_client.rb +58 -0
  32. data/lib/action_web_service/container.rb +3 -0
  33. data/lib/action_web_service/container/action_controller_container.rb +93 -0
  34. data/lib/action_web_service/container/delegated_container.rb +86 -0
  35. data/lib/action_web_service/container/direct_container.rb +69 -0
  36. data/lib/action_web_service/dispatcher.rb +2 -0
  37. data/lib/action_web_service/dispatcher/abstract.rb +207 -0
  38. data/lib/action_web_service/dispatcher/action_controller_dispatcher.rb +379 -0
  39. data/lib/action_web_service/invocation.rb +202 -0
  40. data/lib/action_web_service/protocol.rb +4 -0
  41. data/lib/action_web_service/protocol/abstract.rb +112 -0
  42. data/lib/action_web_service/protocol/discovery.rb +37 -0
  43. data/lib/action_web_service/protocol/soap_protocol.rb +176 -0
  44. data/lib/action_web_service/protocol/soap_protocol/marshaler.rb +242 -0
  45. data/lib/action_web_service/protocol/xmlrpc_protocol.rb +122 -0
  46. data/lib/action_web_service/scaffolding.rb +281 -0
  47. data/lib/action_web_service/struct.rb +64 -0
  48. data/lib/action_web_service/support/class_inheritable_options.rb +26 -0
  49. data/lib/action_web_service/support/signature_types.rb +226 -0
  50. data/lib/action_web_service/templates/scaffolds/layout.html.erb +65 -0
  51. data/lib/action_web_service/templates/scaffolds/methods.html.erb +6 -0
  52. data/lib/action_web_service/templates/scaffolds/parameters.html.erb +29 -0
  53. data/lib/action_web_service/templates/scaffolds/result.html.erb +30 -0
  54. data/lib/action_web_service/test_invoke.rb +110 -0
  55. data/lib/action_web_service/version.rb +9 -0
  56. data/lib/actionwebservice.rb +1 -0
  57. data/setup.rb +1379 -0
  58. data/test/abstract_client.rb +183 -0
  59. data/test/abstract_dispatcher.rb +548 -0
  60. data/test/abstract_unit.rb +39 -0
  61. data/test/api_test.rb +102 -0
  62. data/test/apis/auto_load_api.rb +3 -0
  63. data/test/apis/broken_auto_load_api.rb +2 -0
  64. data/test/base_test.rb +42 -0
  65. data/test/casting_test.rb +94 -0
  66. data/test/client_soap_test.rb +155 -0
  67. data/test/client_xmlrpc_test.rb +153 -0
  68. data/test/container_test.rb +73 -0
  69. data/test/dispatcher_action_controller_soap_test.rb +138 -0
  70. data/test/dispatcher_action_controller_xmlrpc_test.rb +59 -0
  71. data/test/fixtures/db_definitions/mysql.sql +8 -0
  72. data/test/fixtures/users.yml +12 -0
  73. data/test/gencov +3 -0
  74. data/test/invocation_test.rb +185 -0
  75. data/test/run +6 -0
  76. data/test/scaffolded_controller_test.rb +146 -0
  77. data/test/struct_test.rb +52 -0
  78. data/test/test_invoke_test.rb +112 -0
  79. metadata +170 -0
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ require 'test/unit'
3
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
4
+ args = Dir[File.join(File.dirname(__FILE__), '*_test.rb')] + Dir[File.join(File.dirname(__FILE__), 'ws/*_test.rb')]
5
+ (r = Test::Unit::AutoRunner.new(true)).process_args(args)
6
+ exit r.run
@@ -0,0 +1,146 @@
1
+ require File.dirname(__FILE__) + '/abstract_unit'
2
+
3
+ ActionController::Routing::Routes.draw do |map|
4
+ map.connect '', :controller => 'scaffolded'
5
+ map.connect ':controller/:action/:id'
6
+ end
7
+
8
+ ActionController::Base.view_paths = [ '.' ]
9
+
10
+ class ScaffoldPerson < ActionWebService::Struct
11
+ member :id, :int
12
+ member :name, :string
13
+ member :birth, :date
14
+
15
+ def ==(other)
16
+ self.id == other.id && self.name == other.name
17
+ end
18
+ end
19
+
20
+ class ScaffoldedControllerTestAPI < ActionWebService::API::Base
21
+ api_method :hello, :expects => [{:integer=>:int}, :string], :returns => [:bool]
22
+ api_method :hello_struct_param, :expects => [{:person => ScaffoldPerson}], :returns => [:bool]
23
+ api_method :date_of_birth, :expects => [ScaffoldPerson], :returns => [:string]
24
+ api_method :bye, :returns => [[ScaffoldPerson]]
25
+ api_method :date_diff, :expects => [{:start_date => :date}, {:end_date => :date}], :returns => [:int]
26
+ api_method :time_diff, :expects => [{:start_time => :time}, {:end_time => :time}], :returns => [:int]
27
+ api_method :base64_upcase, :expects => [:base64], :returns => [:base64]
28
+ end
29
+
30
+ class ScaffoldedController < ActionController::Base
31
+ web_service_api ScaffoldedControllerTestAPI
32
+ web_service_scaffold :scaffold_invoke
33
+
34
+ def hello(int, string)
35
+ 0
36
+ end
37
+
38
+ def hello_struct_param(person)
39
+ 0
40
+ end
41
+
42
+ def date_of_birth(person)
43
+ person.birth.to_s
44
+ end
45
+
46
+ def bye
47
+ [ScaffoldPerson.new(:id => 1, :name => "leon"), ScaffoldPerson.new(:id => 2, :name => "paul")]
48
+ end
49
+
50
+ def rescue_action(e)
51
+ raise e
52
+ end
53
+
54
+ def date_diff(start_date, end_date)
55
+ end_date - start_date
56
+ end
57
+
58
+ def time_diff(start_time, end_time)
59
+ end_time - start_time
60
+ end
61
+
62
+ def base64_upcase(data)
63
+ data.upcase
64
+ end
65
+ end
66
+
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
+
74
+ def test_scaffold_invoke
75
+ get :scaffold_invoke
76
+ assert_template 'methods.html.erb'
77
+ end
78
+
79
+ def test_scaffold_invoke_method_params
80
+ get :scaffold_invoke_method_params, :service => 'scaffolded', :method => 'Hello'
81
+ assert_template 'parameters.html.erb'
82
+ end
83
+
84
+ def test_scaffold_invoke_method_params_with_struct
85
+ get :scaffold_invoke_method_params, :service => 'scaffolded', :method => 'HelloStructParam'
86
+ assert_template 'parameters.html.erb'
87
+ assert_tag :tag => 'form'
88
+ assert_tag :tag => 'input', :attributes => {:name => "method_params[0][name]"}
89
+ end
90
+
91
+ def test_scaffold_invoke_submit_hello
92
+ post :scaffold_invoke_submit, :service => 'scaffolded', :method => 'Hello', :method_params => {'0' => '5', '1' => 'hello world'}
93
+ assert_template 'result.html.erb'
94
+ assert_equal false, @controller.instance_eval{ @method_return_value }
95
+ end
96
+
97
+ def test_scaffold_invoke_submit_bye
98
+ post :scaffold_invoke_submit, :service => 'scaffolded', :method => 'Bye'
99
+ assert_template 'result.html.erb'
100
+ persons = [ScaffoldPerson.new(:id => 1, :name => "leon"), ScaffoldPerson.new(:id => 2, :name => "paul")]
101
+ assert_equal persons, @controller.instance_eval{ @method_return_value }
102
+ end
103
+
104
+ def test_scaffold_date_params
105
+ get :scaffold_invoke_method_params, :service => 'scaffolded', :method => 'DateDiff'
106
+ (0..1).each do |param|
107
+ (1..3).each do |date_part|
108
+ assert_tag :tag => 'select', :attributes => {:name => "method_params[#{param}][#{date_part}]"},
109
+ :children => {:greater_than => 1, :only => {:tag => 'option'}}
110
+ end
111
+ end
112
+
113
+ post :scaffold_invoke_submit, :service => 'scaffolded', :method => 'DateDiff',
114
+ :method_params => {'0' => {'1' => '2006', '2' => '2', '3' => '1'}, '1' => {'1' => '2006', '2' => '2', '3' => '2'}}
115
+ assert_equal 1, @controller.instance_eval{ @method_return_value }
116
+ end
117
+
118
+ def test_scaffold_struct_date_params
119
+ post :scaffold_invoke_submit, :service => 'scaffolded', :method => 'DateOfBirth',
120
+ :method_params => {'0' => {'birth' => {'1' => '2006', '2' => '2', '3' => '1'}, 'id' => '1', 'name' => 'person'}}
121
+ assert_equal '2006-02-01', @controller.instance_eval{ @method_return_value }
122
+ end
123
+
124
+ def test_scaffold_time_params
125
+ get :scaffold_invoke_method_params, :service => 'scaffolded', :method => 'TimeDiff'
126
+ (0..1).each do |param|
127
+ (1..6).each do |date_part|
128
+ assert_tag :tag => 'select', :attributes => {:name => "method_params[#{param}][#{date_part}]"},
129
+ :children => {:greater_than => 1, :only => {:tag => 'option'}}
130
+ end
131
+ end
132
+
133
+ post :scaffold_invoke_submit, :service => 'scaffolded', :method => 'TimeDiff',
134
+ :method_params => {'0' => {'1' => '2006', '2' => '2', '3' => '1', '4' => '1', '5' => '1', '6' => '1'},
135
+ '1' => {'1' => '2006', '2' => '2', '3' => '2', '4' => '1', '5' => '1', '6' => '1'}}
136
+ assert_equal 86400, @controller.instance_eval{ @method_return_value }
137
+ end
138
+
139
+ def test_scaffold_base64
140
+ get :scaffold_invoke_method_params, :service => 'scaffolded', :method => 'Base64Upcase'
141
+ assert_tag :tag => 'textarea', :attributes => {:name => 'method_params[0]'}
142
+
143
+ post :scaffold_invoke_submit, :service => 'scaffolded', :method => 'Base64Upcase', :method_params => {'0' => 'scaffold'}
144
+ assert_equal 'SCAFFOLD', @controller.instance_eval{ @method_return_value }
145
+ end
146
+ end
@@ -0,0 +1,52 @@
1
+ require File.dirname(__FILE__) + '/abstract_unit'
2
+
3
+ module StructTest
4
+ class Struct < ActionWebService::Struct
5
+ member :id, Integer
6
+ member :name, String
7
+ member :items, [String]
8
+ member :deleted, :bool
9
+ member :emails, [:string]
10
+ end
11
+ end
12
+
13
+ class TC_Struct < Test::Unit::TestCase
14
+ include StructTest
15
+
16
+ def setup
17
+ @struct = Struct.new(:id => 5,
18
+ :name => 'hello',
19
+ :items => ['one', 'two'],
20
+ :deleted => true,
21
+ :emails => ['test@test.com'])
22
+ end
23
+
24
+ def test_members
25
+ assert_equal(5, Struct.members.size)
26
+ assert_equal(Integer, Struct.members[:id].type_class)
27
+ assert_equal(String, Struct.members[:name].type_class)
28
+ assert_equal(String, Struct.members[:items].element_type.type_class)
29
+ assert_equal(TrueClass, Struct.members[:deleted].type_class)
30
+ assert_equal(String, Struct.members[:emails].element_type.type_class)
31
+ end
32
+
33
+ def test_initializer_and_lookup
34
+ assert_equal(5, @struct.id)
35
+ assert_equal('hello', @struct.name)
36
+ assert_equal(['one', 'two'], @struct.items)
37
+ assert_equal(true, @struct.deleted)
38
+ assert_equal(['test@test.com'], @struct.emails)
39
+ assert_equal(5, @struct['id'])
40
+ assert_equal('hello', @struct['name'])
41
+ assert_equal(['one', 'two'], @struct['items'])
42
+ assert_equal(true, @struct['deleted'])
43
+ assert_equal(['test@test.com'], @struct['emails'])
44
+ end
45
+
46
+ def test_each_pair
47
+ @struct.each_pair do |name, value|
48
+ assert_equal @struct.__send__(name), value
49
+ assert_equal @struct[name], value
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,112 @@
1
+ require File.dirname(__FILE__) + '/abstract_unit'
2
+ require 'action_web_service/test_invoke'
3
+
4
+ class TestInvokeAPI < ActionWebService::API::Base
5
+ api_method :null
6
+ api_method :add, :expects => [:int, :int], :returns => [:int]
7
+ end
8
+
9
+ class TestInvokeService < ActionWebService::Base
10
+ web_service_api TestInvokeAPI
11
+
12
+ attr :invoked
13
+
14
+ def add(a, b)
15
+ @invoked = true
16
+ a + b
17
+ end
18
+
19
+ def null
20
+ end
21
+ end
22
+
23
+ class TestController < ActionController::Base
24
+ def rescue_action(e); raise e; end
25
+ end
26
+
27
+ class TestInvokeDirectController < TestController
28
+ web_service_api TestInvokeAPI
29
+
30
+ attr :invoked
31
+
32
+ def add
33
+ @invoked = true
34
+ @method_params[0] + @method_params[1]
35
+ end
36
+
37
+ def null
38
+ end
39
+ end
40
+
41
+ class TestInvokeDelegatedController < TestController
42
+ web_service_dispatching_mode :delegated
43
+ web_service :service, TestInvokeService.new
44
+ end
45
+
46
+ class TestInvokeLayeredController < TestController
47
+ web_service_dispatching_mode :layered
48
+ web_service(:one) { @service_one ||= TestInvokeService.new }
49
+ web_service(:two) { @service_two ||= TestInvokeService.new }
50
+ end
51
+
52
+ class TestInvokeTest < ActiveSupport::TestCase
53
+ def setup
54
+ @request = ActionController::TestRequest.new
55
+ @response = ActionController::TestResponse.new
56
+ end
57
+
58
+ def test_direct_add
59
+ @controller = TestInvokeDirectController.new
60
+ assert_equal nil, @controller.invoked
61
+ result = invoke :add, 25, 25
62
+ assert_equal 50, result
63
+ assert_equal true, @controller.invoked
64
+ end
65
+
66
+ def test_delegated_add
67
+ @controller = TestInvokeDelegatedController.new
68
+ assert_equal nil, @controller.web_service_object(:service).invoked
69
+ result = invoke_delegated :service, :add, 100, 50
70
+ assert_equal 150, result
71
+ assert_equal true, @controller.web_service_object(:service).invoked
72
+ end
73
+
74
+ def test_layered_add
75
+ [:soap, :xmlrpc].each do |protocol|
76
+ @protocol = protocol
77
+ [:one, :two].each do |service|
78
+ @controller = TestInvokeLayeredController.new
79
+ assert_equal nil, @controller.web_service_object(service).invoked
80
+ result = invoke_layered service, :add, 200, -50
81
+ assert_equal 150, result
82
+ assert_equal true, @controller.web_service_object(service).invoked
83
+ end
84
+ end
85
+ end
86
+
87
+ def test_layered_fail_with_wrong_number_of_arguments
88
+ [:soap, :xmlrpc].each do |protocol|
89
+ @protocol = protocol
90
+ [:one, :two].each do |service|
91
+ @controller = TestInvokeLayeredController.new
92
+ assert_raise(ArgumentError) { invoke_layered service, :add, 1 }
93
+ end
94
+ end
95
+ end
96
+
97
+ def test_delegated_fail_with_wrong_number_of_arguments
98
+ @controller = TestInvokeDelegatedController.new
99
+ assert_raise(ArgumentError) { invoke_delegated :service, :add, 1 }
100
+ end
101
+
102
+ def test_direct_fail_with_wrong_number_of_arguments
103
+ @controller = TestInvokeDirectController.new
104
+ assert_raise(ArgumentError) { invoke :add, 1 }
105
+ end
106
+
107
+ def test_with_no_parameters_declared
108
+ @controller = TestInvokeDirectController.new
109
+ assert_nil invoke(:null)
110
+ end
111
+
112
+ end
metadata ADDED
@@ -0,0 +1,170 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rickenharp-actionwebservice
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.3.4
5
+ platform: ruby
6
+ authors:
7
+ - Leon Breedt, Kent Sibilev
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-05-16 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: actionpack
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - "="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.3.4
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: activerecord
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.3.4
34
+ version:
35
+ description: Adds WSDL/SOAP and XML-RPC web service support to Action Pack
36
+ email: bitserf@gmail.com, ksibilev@yahoo.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files: []
42
+
43
+ files:
44
+ - Rakefile
45
+ - setup.rb
46
+ - README
47
+ - TODO
48
+ - CHANGELOG
49
+ - MIT-LICENSE
50
+ - examples/googlesearch
51
+ - examples/googlesearch/autoloading
52
+ - examples/googlesearch/autoloading/google_search_api.rb
53
+ - examples/googlesearch/autoloading/google_search_controller.rb
54
+ - examples/googlesearch/delegated
55
+ - examples/googlesearch/delegated/google_search_service.rb
56
+ - examples/googlesearch/delegated/search_controller.rb
57
+ - examples/googlesearch/direct
58
+ - examples/googlesearch/direct/google_search_api.rb
59
+ - examples/googlesearch/direct/search_controller.rb
60
+ - examples/googlesearch/README
61
+ - examples/metaWeblog
62
+ - examples/metaWeblog/apis
63
+ - examples/metaWeblog/apis/blogger_api.rb
64
+ - examples/metaWeblog/apis/blogger_service.rb
65
+ - examples/metaWeblog/apis/meta_weblog_api.rb
66
+ - examples/metaWeblog/apis/meta_weblog_service.rb
67
+ - examples/metaWeblog/controllers
68
+ - examples/metaWeblog/controllers/xmlrpc_controller.rb
69
+ - examples/metaWeblog/README
70
+ - lib/action_web_service
71
+ - lib/action_web_service/api.rb
72
+ - lib/action_web_service/base.rb
73
+ - lib/action_web_service/casting.rb
74
+ - lib/action_web_service/client
75
+ - lib/action_web_service/client/base.rb
76
+ - lib/action_web_service/client/soap_client.rb
77
+ - lib/action_web_service/client/xmlrpc_client.rb
78
+ - lib/action_web_service/client.rb
79
+ - lib/action_web_service/container
80
+ - lib/action_web_service/container/action_controller_container.rb
81
+ - lib/action_web_service/container/delegated_container.rb
82
+ - lib/action_web_service/container/direct_container.rb
83
+ - lib/action_web_service/container.rb
84
+ - lib/action_web_service/dispatcher
85
+ - lib/action_web_service/dispatcher/abstract.rb
86
+ - lib/action_web_service/dispatcher/action_controller_dispatcher.rb
87
+ - lib/action_web_service/dispatcher.rb
88
+ - lib/action_web_service/invocation.rb
89
+ - lib/action_web_service/protocol
90
+ - lib/action_web_service/protocol/abstract.rb
91
+ - lib/action_web_service/protocol/discovery.rb
92
+ - lib/action_web_service/protocol/soap_protocol
93
+ - lib/action_web_service/protocol/soap_protocol/marshaler.rb
94
+ - lib/action_web_service/protocol/soap_protocol.rb
95
+ - lib/action_web_service/protocol/xmlrpc_protocol.rb
96
+ - lib/action_web_service/protocol.rb
97
+ - lib/action_web_service/scaffolding.rb
98
+ - lib/action_web_service/struct.rb
99
+ - lib/action_web_service/support
100
+ - lib/action_web_service/support/class_inheritable_options.rb
101
+ - lib/action_web_service/support/signature_types.rb
102
+ - lib/action_web_service/templates
103
+ - lib/action_web_service/templates/scaffolds
104
+ - lib/action_web_service/templates/scaffolds/layout.html.erb
105
+ - lib/action_web_service/templates/scaffolds/methods.html.erb
106
+ - lib/action_web_service/templates/scaffolds/parameters.html.erb
107
+ - lib/action_web_service/templates/scaffolds/result.html.erb
108
+ - lib/action_web_service/test_invoke.rb
109
+ - lib/action_web_service/version.rb
110
+ - lib/action_web_service.rb
111
+ - lib/actionwebservice.rb
112
+ - test/abstract_client.rb
113
+ - test/abstract_dispatcher.rb
114
+ - test/abstract_unit.rb
115
+ - test/api_test.rb
116
+ - test/apis
117
+ - test/apis/auto_load_api.rb
118
+ - test/apis/broken_auto_load_api.rb
119
+ - test/base_test.rb
120
+ - test/casting_test.rb
121
+ - test/client_soap_test.rb
122
+ - test/client_xmlrpc_test.rb
123
+ - test/container_test.rb
124
+ - test/dispatcher_action_controller_soap_test.rb
125
+ - test/dispatcher_action_controller_xmlrpc_test.rb
126
+ - test/fixtures
127
+ - test/fixtures/db_definitions
128
+ - test/fixtures/db_definitions/mysql.sql
129
+ - test/fixtures/users.yml
130
+ - test/gencov
131
+ - test/invocation_test.rb
132
+ - test/run
133
+ - test/scaffolded_controller_test.rb
134
+ - test/struct_test.rb
135
+ - test/test_invoke_test.rb
136
+ - generators/web_service
137
+ - generators/web_service/templates
138
+ - generators/web_service/templates/api_definition.rb
139
+ - generators/web_service/templates/controller.rb
140
+ - generators/web_service/templates/functional_test.rb
141
+ - generators/web_service/USAGE
142
+ - generators/web_service/web_service_generator.rb
143
+ has_rdoc: true
144
+ homepage: http://www.rubyonrails.org
145
+ post_install_message:
146
+ rdoc_options: []
147
+
148
+ require_paths:
149
+ - lib
150
+ required_ruby_version: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: "0"
155
+ version:
156
+ required_rubygems_version: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: "0"
161
+ version:
162
+ requirements:
163
+ - none
164
+ rubyforge_project: aws
165
+ rubygems_version: 1.2.0
166
+ signing_key:
167
+ specification_version: 2
168
+ summary: Web service support for Action Pack.
169
+ test_files: []
170
+