aforward-actionwebservice 2.3.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/.gitignore +3 -0
  2. data/Gemfile +5 -0
  3. data/History.txt +325 -0
  4. data/Manifest.txt +12 -0
  5. data/PostInstall.txt +2 -0
  6. data/README.rdoc +410 -0
  7. data/Rakefile +2 -0
  8. data/actionwebservice.gemspec +19 -0
  9. data/autotest/discover.rb +2 -0
  10. data/examples/googlesearch/README +143 -0
  11. data/examples/googlesearch/autoloading/google_search_api.rb +50 -0
  12. data/examples/googlesearch/autoloading/google_search_controller.rb +57 -0
  13. data/examples/googlesearch/delegated/google_search_service.rb +108 -0
  14. data/examples/googlesearch/delegated/search_controller.rb +7 -0
  15. data/examples/googlesearch/direct/google_search_api.rb +50 -0
  16. data/examples/googlesearch/direct/search_controller.rb +58 -0
  17. data/examples/metaWeblog/README +17 -0
  18. data/examples/metaWeblog/apis/blogger_api.rb +60 -0
  19. data/examples/metaWeblog/apis/blogger_service.rb +34 -0
  20. data/examples/metaWeblog/apis/meta_weblog_api.rb +67 -0
  21. data/examples/metaWeblog/apis/meta_weblog_service.rb +48 -0
  22. data/examples/metaWeblog/controllers/xmlrpc_controller.rb +16 -0
  23. data/generators/web_service/USAGE +28 -0
  24. data/generators/web_service/templates/api_definition.rb +5 -0
  25. data/generators/web_service/templates/controller.rb +8 -0
  26. data/generators/web_service/templates/functional_test.rb +19 -0
  27. data/generators/web_service/web_service_generator.rb +29 -0
  28. data/lib/action_web_service/api.rb +297 -0
  29. data/lib/action_web_service/base.rb +38 -0
  30. data/lib/action_web_service/casting.rb +149 -0
  31. data/lib/action_web_service/client/base.rb +28 -0
  32. data/lib/action_web_service/client/soap_client.rb +113 -0
  33. data/lib/action_web_service/client/xmlrpc_client.rb +58 -0
  34. data/lib/action_web_service/client.rb +3 -0
  35. data/lib/action_web_service/container/action_controller_container.rb +93 -0
  36. data/lib/action_web_service/container/delegated_container.rb +86 -0
  37. data/lib/action_web_service/container/direct_container.rb +69 -0
  38. data/lib/action_web_service/container.rb +3 -0
  39. data/lib/action_web_service/dispatcher/abstract.rb +207 -0
  40. data/lib/action_web_service/dispatcher/action_controller_dispatcher.rb +379 -0
  41. data/lib/action_web_service/dispatcher.rb +2 -0
  42. data/lib/action_web_service/invocation.rb +202 -0
  43. data/lib/action_web_service/protocol/abstract.rb +112 -0
  44. data/lib/action_web_service/protocol/discovery.rb +37 -0
  45. data/lib/action_web_service/protocol/soap_protocol/marshaler.rb +242 -0
  46. data/lib/action_web_service/protocol/soap_protocol.rb +176 -0
  47. data/lib/action_web_service/protocol/xmlrpc_protocol.rb +122 -0
  48. data/lib/action_web_service/protocol.rb +4 -0
  49. data/lib/action_web_service/scaffolding.rb +281 -0
  50. data/lib/action_web_service/struct.rb +64 -0
  51. data/lib/action_web_service/support/class_inheritable_options.rb +26 -0
  52. data/lib/action_web_service/support/signature_types.rb +226 -0
  53. data/lib/action_web_service/templates/scaffolds/layout.html.erb +65 -0
  54. data/lib/action_web_service/templates/scaffolds/methods.html.erb +6 -0
  55. data/lib/action_web_service/templates/scaffolds/parameters.html.erb +29 -0
  56. data/lib/action_web_service/templates/scaffolds/result.html.erb +30 -0
  57. data/lib/action_web_service/test_invoke.rb +110 -0
  58. data/lib/action_web_service/version.rb +10 -0
  59. data/lib/action_web_service.rb +50 -0
  60. data/lib/actionwebservice.rb +1 -0
  61. data/old/Rakefile +173 -0
  62. data/old/Rakefile2 +25 -0
  63. data/old/TODO +32 -0
  64. data/old/actionwebservice.gemspec +37 -0
  65. data/old/install.rb +30 -0
  66. data/old/setup.rb +1379 -0
  67. data/script/console +10 -0
  68. data/script/destroy +14 -0
  69. data/script/generate +14 -0
  70. data/test/abstract_client.rb +183 -0
  71. data/test/abstract_dispatcher.rb +548 -0
  72. data/test/abstract_unit.rb +39 -0
  73. data/test/api_test.rb +102 -0
  74. data/test/apis/auto_load_api.rb +3 -0
  75. data/test/apis/broken_auto_load_api.rb +2 -0
  76. data/test/base_test.rb +42 -0
  77. data/test/casting_test.rb +94 -0
  78. data/test/client_soap_test.rb +155 -0
  79. data/test/client_xmlrpc_test.rb +153 -0
  80. data/test/container_test.rb +73 -0
  81. data/test/dispatcher_action_controller_soap_test.rb +138 -0
  82. data/test/dispatcher_action_controller_xmlrpc_test.rb +59 -0
  83. data/test/fixtures/db_definitions/mysql.sql +8 -0
  84. data/test/fixtures/users.yml +12 -0
  85. data/test/gencov +3 -0
  86. data/test/invocation_test.rb +185 -0
  87. data/test/run +6 -0
  88. data/test/scaffolded_controller_test.rb +146 -0
  89. data/test/struct_test.rb +52 -0
  90. data/test/test_action_web_service.rb +11 -0
  91. data/test/test_actionwebservice.rb +11 -0
  92. data/test/test_helper.rb +3 -0
  93. data/test/test_invoke_test.rb +112 -0
  94. metadata +184 -0
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ .rvmrc
2
+ .bundle
3
+ pkg
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'http://rubygems.org'
2
+ source 'http://gemcutter.org'
3
+
4
+ # Specify your gem's dependencies in blah.gemspec
5
+ gemspec
data/History.txt ADDED
@@ -0,0 +1,325 @@
1
+ === 2.3.8 2010-12-14
2
+
3
+ * 1 minor enhancement:
4
+ * Upgrading to rails 2.3.8
5
+
6
+ *2.1.0*
7
+
8
+ * Porting to Rails 2.1.0 [Kent Sibilev]
9
+
10
+ * Documentation for ActionWebService::API::Base. Closes #7275. [zackchandler]
11
+
12
+ * Allow action_web_service to handle various HTTP methods including GET. Closes #7011. [zackchandler]
13
+
14
+ * Ensure that DispatcherError is being thrown when a malformed request is received. [Kent Sibilev]
15
+
16
+ * Added support for decimal types. Closes #6676. [Kent Sibilev]
17
+
18
+ * Removed deprecated end_form_tag helper. [Kent Sibilev]
19
+
20
+ * Removed deprecated @request and @response usages. [Kent Sibilev]
21
+
22
+ * Removed deprecated end_form_tag helper. [Kent Sibilev]
23
+
24
+ * Removed deprecated @request and @response usages. [Kent Sibilev]
25
+
26
+ *1.2.6* (November 24th, 2007)
27
+
28
+ * Depend on Action Pack 1.13.6
29
+
30
+ * Depend on Active Record 1.15.6
31
+
32
+
33
+ *1.2.5* (October 12th, 2007)
34
+
35
+ * Depend on Action Pack 1.13.5
36
+
37
+ * Depend on Active Record 1.15.5
38
+
39
+
40
+ *1.2.4* (October 4th, 2007)
41
+
42
+ * Depend on Action Pack 1.13.4
43
+
44
+ * Depend on Active Record 1.15.4
45
+
46
+
47
+ *1.2.3* (March 12th, 2007)
48
+
49
+ * Depend on Action Pack 1.13.3
50
+
51
+
52
+ *1.2.2* (Feburary 4th, 2007)
53
+
54
+ * Depend on Action Pack 1.13.2
55
+
56
+
57
+ *1.2.1* (January 16th, 2007)
58
+
59
+ * Depend on Action Pack 1.13.1
60
+
61
+
62
+ *1.2.0* (January 16th, 2007)
63
+
64
+ * Removed invocation of deprecated before_action and around_action filter methods. Corresponding before_invocation and after_invocation methods should be used instead. #6275 [Kent Sibilev]
65
+
66
+ * Provide access to the underlying SOAP driver. #6212 [bmilekic, Kent Sibilev]
67
+
68
+ * ActionWebService WSDL generation ignores HTTP_X_FORWARDED_HOST [Paul Butcher <paul@paulbutcher.com>]
69
+
70
+ * Tighten rescue clauses. #5985 [james@grayproductions.net]
71
+
72
+ * Fixed XMLRPC multicall when one of the called methods returns a struct object. [Kent Sibilev]
73
+
74
+ * Fix invoke_layered since api_method didn't declare :expects. Closes #4720. [Kevin Ballard <kevin@sb.org>, Kent Sibilev]
75
+
76
+
77
+ *1.1.6* (August 10th, 2006)
78
+
79
+ * Rely on Action Pack 1.12.5
80
+
81
+
82
+ *1.1.5* (August 8th, 2006)
83
+
84
+ * Rely on Action Pack 1.12.4 and Active Record 1.14.4
85
+
86
+
87
+ *1.1.4* (June 29th, 2006)
88
+
89
+ * Rely on Action Pack 1.12.3
90
+
91
+
92
+ *1.1.3* (June 27th, 2006)
93
+
94
+ * Rely on Action Pack 1.12.2 and Active Record 1.14.3
95
+
96
+
97
+ *1.1.2* (April 9th, 2006)
98
+
99
+ * Rely on Active Record 1.14.2
100
+
101
+
102
+ *1.1.1* (April 6th, 2006)
103
+
104
+ * Do not convert driver options to strings (#4499)
105
+
106
+
107
+ *1.1.0* (March 27th, 2006)
108
+
109
+ * Make ActiveWebService::Struct type reloadable
110
+
111
+ * Fix scaffolding action when one of the members of a structural type has date or time type
112
+
113
+ * Remove extra index hash when generating scaffold html for parameters of structural type #4374 [joe@mjg2.com]
114
+
115
+ * Fix Scaffold Fails with Struct as a Parameter #4363 [joe@mjg2.com]
116
+
117
+ * Fix soap type registration of multidimensional arrays (#4232)
118
+
119
+ * Fix that marshaler couldn't handle ActiveRecord models defined in a different namespace (#2392).
120
+
121
+ * Fix that marshaler couldn't handle structs with members of ActiveRecord type (#1889).
122
+
123
+ * Fix that marshaler couldn't handle nil values for inner structs (#3576).
124
+
125
+ * Fix that changes to ActiveWebService::API::Base required restarting of the server (#2390).
126
+
127
+ * Fix scaffolding for signatures with :date, :time and :base64 types (#3321, #2769, #2078).
128
+
129
+ * Fix for incorrect casting of TrueClass/FalseClass instances (#2633, #3421).
130
+
131
+ * Fix for incompatibility problems with SOAP4R 1.5.5 (#2553) [Kent Sibilev]
132
+
133
+
134
+ *1.0.0* (December 13th, 2005)
135
+
136
+ * Become part of Rails 1.0
137
+
138
+ *0.9.4* (December 7th, 2005)
139
+
140
+ * Update from LGPL to MIT license as per Minero Aoki's permission. [Marcel Molina Jr.]
141
+
142
+ * Rename Version constant to VERSION. #2802 [Marcel Molina Jr.]
143
+
144
+ * Fix that XML-RPC date/time values did not have well-defined behaviour (#2516, #2534). This fix has one caveat, in that we can't support pre-1970 dates from XML-RPC clients.
145
+
146
+ *0.9.3* (November 7th, 2005)
147
+
148
+ * Upgraded to Action Pack 1.11.0 and Active Record 1.13.0
149
+
150
+
151
+ *0.9.2* (October 26th, 2005)
152
+
153
+ * Upgraded to Action Pack 1.10.2 and Active Record 1.12.2
154
+
155
+
156
+ *0.9.1* (October 19th, 2005)
157
+
158
+ * Upgraded to Action Pack 1.10.1 and Active Record 1.12.1
159
+
160
+
161
+ *0.9.0* (October 16th, 2005)
162
+
163
+ * Fix invalid XML request generation bug in test_invoke [Ken Barker]
164
+
165
+ * Add XML-RPC 'system.multicall' support #1941 [jbonnar]
166
+
167
+ * Fix duplicate XSD entries for custom types shared across delegated/layered services #1729 [Tyler Kovacs]
168
+
169
+ * Allow multiple invocations in the same test method #1720 [dkhawk]
170
+
171
+ * Added ActionWebService::API::Base.soap_client and ActionWebService::API::Base.xmlrpc_client helper methods to create the internal clients for an API, useful for testing from ./script/console
172
+
173
+ * ActionWebService now always returns UTF-8 responses.
174
+
175
+
176
+ *0.8.1* (11 July, 2005)
177
+
178
+ * Fix scaffolding for Action Pack controller changes
179
+
180
+
181
+ *0.8.0* (6 July, 2005)
182
+
183
+ * Fix WSDL generation by aliasing #inherited instead of trying to overwrite it, or the WSDL action may end up not being defined in the controller
184
+
185
+ * Add ActionController::Base.wsdl_namespace option, to allow overriding of the namespace used in generated WSDL and SOAP messages. This is equivalent to the [WebService(Namespace = "Value")] attribute in .NET.
186
+
187
+ * Add workaround for Ruby 1.8.3's SOAP4R changing the return value of SOAP::Mapping::Registry#find_mapped_soap_class #1414 [Shugo Maeda]
188
+
189
+ * Fix moduled controller URLs in WSDL, and add unit test to verify the generated URL #1428
190
+
191
+ * Fix scaffolding template paths, it was broken on Win32
192
+
193
+ * Fix that functional testing of :layered controllers failed when using the SOAP protocol
194
+
195
+ * Allow invocation filters in :direct controllers as well, as they have access to more information regarding the web service request than ActionPack filters
196
+
197
+ * Add support for a :base64 signature type #1272 [Shugo Maeda]
198
+
199
+ * Fix that boolean fields were not rendered correctly in scaffolding
200
+
201
+ * Fix that scaffolding was not working for :delegated dispatching
202
+
203
+ * Add support for structured types as input parameters to scaffolding, this should let one test the blogging APIs using scaffolding as well
204
+
205
+ * Fix that generated WSDL was not using relative_url_root for base URI #1210 [Shugo Maeda]
206
+
207
+ * Use UTF-8 encoding by default for SOAP responses, but if an encoding is supplied by caller, use that for the response #1211 [Shugo Maeda, NAKAMURA Hiroshi]
208
+
209
+ * If the WSDL was retrieved over HTTPS, use HTTPS URLs in the WSDL too
210
+
211
+ * Fix that casting change in 0.7.0 would convert nil values to the default value for the type instead of leaving it as nil
212
+
213
+
214
+ *0.7.1* (20th April, 2005)
215
+
216
+ * Depend on Active Record 1.10.1 and Action Pack 1.8.1
217
+
218
+
219
+ *0.7.0* (19th April, 2005)
220
+
221
+ * When casting structured types, don't try to send obj.name= unless obj responds to it, causes casting to be less likely to fail for XML-RPC
222
+
223
+ * Add scaffolding via ActionController::Base.web_service_scaffold for quick testing using a web browser
224
+
225
+ * ActionWebService::API::Base#api_methods now returns a hash containing ActionWebService::API::Method objects instead of hashes. However, ActionWebService::API::Method defines a #[]() backwards compatibility method so any existing code utilizing this will still work.
226
+
227
+ * The :layered dispatching mode can now be used with SOAP as well, allowing you to support SOAP and XML-RPC clients for APIs like the metaWeblog API
228
+
229
+ * Remove ActiveRecordSoapMarshallable workaround, see #912 for details
230
+
231
+ * Generalize casting code to be used by both SOAP and XML-RPC (previously, it was only XML-RPC)
232
+
233
+ * Ensure return value is properly cast as well, fixes XML-RPC interoperability with Ecto and possibly other clients
234
+
235
+ * Include backtraces in 500 error responses for failed request parsing, and remove "rescue nil" statements obscuring real errors for XML-RPC
236
+
237
+ * Perform casting of struct members even if the structure is already of the correct type, so that the type we specify for the struct member is always the type of the value seen by the API implementation
238
+
239
+
240
+ *0.6.2* (27th March, 2005)
241
+
242
+ * Allow method declarations for direct dispatching to declare parameters as well. We treat an arity of < 0 or > 0 as an indication that we should send through parameters. Closes #939.
243
+
244
+
245
+ *0.6.1* (22th March, 2005)
246
+
247
+ * Fix that method response QNames mismatched with that declared in the WSDL, makes SOAP::WSDLDriverFactory work against AWS again
248
+
249
+ * Fix that @request.env was being modified, instead, dup the value gotten from env
250
+
251
+ * Fix XML-RPC example to use :layered mode, so it works again
252
+
253
+ * Support casting '0' or 0 into false, and '1' or 1 into true, when expecting a boolean value
254
+
255
+ * Fix that SOAP fault response fault code values were not QName's #804
256
+
257
+
258
+ *0.6.0* (7th March, 2005)
259
+
260
+ * Add action_controller/test_invoke, used for integrating AWS with the Rails testing infrastructure
261
+
262
+ * Allow passing through options to the SOAP RPC driver for the SOAP client
263
+
264
+ * Make the SOAP WS marshaler use #columns to decide which fields to marshal as well, avoids providing attributes brought in by associations
265
+
266
+ * Add <tt>ActionWebService::API::Base.allow_active_record_expects</tt> option, with a default of false. Setting this to true will allow specifying ActiveRecord::Base model classes in <tt>:expects</tt>. API writers should take care to validate the received ActiveRecord model objects when turning it on, and/or have an authentication mechanism in place to reduce the security risk.
267
+
268
+ * Improve error message reporting. Bugs in either AWS or the web service itself will send back a protocol-specific error report message if possible, otherwise, provide as much detail as possible.
269
+
270
+ * Removed type checking of received parameters, and perform casting for XML-RPC if possible, but fallback to the received parameters if casting fails, closes #677
271
+
272
+ * Refactored SOAP and XML-RPC marshaling and encoding into a small library devoted exclusively to protocol specifics, also cleaned up the SOAP marshaling approach, so that array and custom type marshaling should be a bit faster.
273
+
274
+ * Add namespaced XML-RPC method name support, closes #678
275
+
276
+ * Replace '::' with '..' in fully qualified type names for marshaling and WSDL. This improves interoperability with .NET, and closes #676.
277
+
278
+
279
+ *0.5.0* (24th February, 2005)
280
+
281
+ * lib/action_service/dispatcher*: replace "router" fragments with
282
+ one file for Action Controllers, moves dispatching work out of
283
+ the container
284
+ * lib/*,test/*,examples/*: rename project to
285
+ ActionWebService. prefix all generic "service" type names with web_.
286
+ update all using code as well as the RDoc.
287
+ * lib/action_service/router/wsdl.rb: ensure that #wsdl is
288
+ defined in the final container class, or the new ActionPack
289
+ filtering will exclude it
290
+ * lib/action_service/struct.rb,test/struct_test.rb: create a
291
+ default #initialize on inherit that accepts a Hash containing
292
+ the default member values
293
+ * lib/action_service/api/action_controller.rb: add support and
294
+ tests for #client_api in controller
295
+ * test/router_wsdl_test.rb: add tests to ensure declared
296
+ service names don't contain ':', as ':' causes interoperability
297
+ issues
298
+ * lib/*, test/*: rename "interface" concept to "api", and change all
299
+ related uses to reflect this change. update all uses of Inflector
300
+ to call the method on String instead.
301
+ * test/api_test.rb: add test to ensure API definition not
302
+ instantiatable
303
+ * lib/action_service/invocation.rb: change @invocation_params to
304
+ @method_params
305
+ * lib/*: update RDoc
306
+ * lib/action_service/struct.rb: update to support base types
307
+ * lib/action_service/support/signature.rb: support the notion of
308
+ "base types" in signatures, with well-known unambiguous names such as :int,
309
+ :bool, etc, which map to the correct Ruby class. accept the same names
310
+ used by ActiveRecord as well as longer versions of each, as aliases.
311
+ * examples/*: update for seperate API definition updates
312
+ * lib/action_service/*, test/*: extensive refactoring: define API methods in
313
+ a seperate class, and specify it wherever used with 'service_api'.
314
+ this makes writing a client API for accessing defined API methods
315
+ with ActionWebService really easy.
316
+ * lib/action_service/container.rb: fix a bug in default call
317
+ handling for direct dispatching, and add ActionController filter
318
+ support for direct dispatching.
319
+ * test/router_action_controller_test.rb: add tests to ensure
320
+ ActionController filters are actually called.
321
+ * test/protocol_soap_test.rb: add more tests for direct dispatching.
322
+
323
+ 0.3.0
324
+
325
+ * First public release
data/Manifest.txt ADDED
@@ -0,0 +1,12 @@
1
+ History.txt
2
+ Manifest.txt
3
+ PostInstall.txt
4
+ README.rdoc
5
+ Rakefile
6
+ action_web_service.gemspec
7
+ lib/action_web_service.rb
8
+ script/console
9
+ script/destroy
10
+ script/generate
11
+ test/test_action_web_service.rb
12
+ test/test_helper.rb
data/PostInstall.txt ADDED
@@ -0,0 +1,2 @@
1
+
2
+ For more information on actionwebservice, see https://github.com/aforward/actionwebservice