feldpost-actionwebservice 2.3.3

Sign up to get free protection for your applications and to get access to all the features.
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 +171 -0
data/test/run ADDED
@@ -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,171 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: feldpost-actionwebservice
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.3.3
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.3
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.3
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
+ licenses:
146
+ post_install_message:
147
+ rdoc_options: []
148
+
149
+ require_paths:
150
+ - lib
151
+ required_ruby_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: "0"
156
+ version:
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: "0"
162
+ version:
163
+ requirements:
164
+ - none
165
+ rubyforge_project: aws
166
+ rubygems_version: 1.3.5
167
+ signing_key:
168
+ specification_version: 2
169
+ summary: Web service support for Action Pack.
170
+ test_files: []
171
+