kaiwren-wrest 0.0.6 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/README.rdoc +83 -31
  2. data/Rakefile +29 -13
  3. data/VERSION.yml +1 -1
  4. data/examples/delicious.rb +58 -0
  5. data/examples/wow_realm_status.rb +57 -0
  6. data/lib/wrest.rb +11 -2
  7. data/lib/wrest/components.rb +1 -2
  8. data/lib/wrest/components/attributes_container.rb +34 -74
  9. data/lib/wrest/components/attributes_container/typecaster.rb +121 -0
  10. data/lib/wrest/components/mutators.rb +18 -1
  11. data/lib/wrest/components/mutators/base.rb +52 -39
  12. data/lib/wrest/components/mutators/camel_to_snake_case.rb +7 -5
  13. data/lib/wrest/components/mutators/xml_mini_type_caster.rb +43 -0
  14. data/lib/wrest/components/mutators/xml_simple_type_caster.rb +22 -20
  15. data/lib/wrest/components/translators.rb +20 -17
  16. data/lib/wrest/components/translators/content_types.rb +2 -2
  17. data/lib/wrest/components/translators/json.rb +11 -8
  18. data/lib/wrest/components/translators/xml.rb +9 -12
  19. data/lib/wrest/core_ext/hash/conversions.rb +1 -1
  20. data/lib/wrest/core_ext/string/conversions.rb +2 -2
  21. data/lib/wrest/http.rb +24 -0
  22. data/lib/wrest/http/delete.rb +23 -0
  23. data/lib/wrest/http/get.rb +23 -0
  24. data/lib/wrest/http/options.rb +23 -0
  25. data/lib/wrest/http/post.rb +23 -0
  26. data/lib/wrest/http/put.rb +23 -0
  27. data/lib/wrest/http/request.rb +48 -0
  28. data/lib/wrest/http/response.rb +44 -0
  29. data/lib/wrest/resource/base.rb +52 -25
  30. data/lib/wrest/resource/state.rb +6 -0
  31. data/lib/wrest/uri.rb +85 -29
  32. data/lib/wrest/uri_template.rb +18 -1
  33. data/lib/wrest/version.rb +1 -1
  34. data/spec/spec.opts +1 -1
  35. data/spec/spec_helper.rb +8 -1
  36. data/spec/wrest/components/attributes_container/typecaster_spec.rb +63 -0
  37. data/spec/wrest/components/attributes_container_spec.rb +17 -61
  38. data/spec/wrest/components/mutators/base_spec.rb +5 -1
  39. data/spec/wrest/components/mutators/xml_mini_type_caster_spec.rb +75 -0
  40. data/spec/wrest/components/mutators_spec.rb +21 -0
  41. data/spec/wrest/components/translators/xml_spec.rb +1 -1
  42. data/spec/wrest/components/translators_spec.rb +9 -0
  43. data/spec/wrest/core_ext/string/conversions_spec.rb +9 -0
  44. data/spec/wrest/http/request_spec.rb +22 -0
  45. data/spec/wrest/{response_spec.rb → http/response_spec.rb} +4 -4
  46. data/spec/wrest/resource/base_spec.rb +126 -11
  47. data/spec/wrest/uri_spec.rb +124 -20
  48. data/spec/wrest/uri_template_spec.rb +11 -1
  49. metadata +33 -20
  50. data/lib/wrest/components/typecast_helpers.rb +0 -41
  51. data/lib/wrest/response.rb +0 -38
@@ -1,41 +0,0 @@
1
- module Wrest::Components #:nodoc:
2
- # Provides helper methods which build lambdas
3
- # to cast strings to specific types.
4
- module TypecastHelpers
5
- def as_base64Binary
6
- ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING['base64Binary']
7
- end
8
-
9
- def as_boolean
10
- ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING['boolean']
11
- end
12
-
13
- def as_decimal
14
- ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING['decimal']
15
- end
16
-
17
- def as_date
18
- ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING['date']
19
- end
20
-
21
- def as_datetime
22
- ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING['datetime']
23
- end
24
-
25
- def as_float
26
- ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING['float']
27
- end
28
-
29
- def as_integer
30
- ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING['integer']
31
- end
32
-
33
- def as_symbol
34
- ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING['symbol']
35
- end
36
-
37
- def as_yaml
38
- ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING['yaml']
39
- end
40
- end
41
- end
@@ -1,38 +0,0 @@
1
- # Copyright 2009 Sidu Ponnappa
2
-
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
- # Unless required by applicable law or agreed to in writing, software distributed under the License
7
- # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
8
- # See the License for the specific language governing permissions and limitations under the License.
9
-
10
- module Wrest #:nodoc:
11
- # Decorates a response providing support for deserialisation.
12
- #
13
- # The following methods are also available (unlisted by rdoc because they're forwarded):
14
- #
15
- # <tt>:@http_response, :code, :message, :body, :http_version,
16
- # :[], :content_length, :content_type, :each_header, :each_name, :each_value, :fetch,
17
- # :get_fields, :key?, :type_params</tt>
18
- #
19
- # They behave exactly like their Net::HTTPResponse equivalents.
20
- class Response
21
- extend Forwardable
22
- def_delegators :@http_response, :code, :message, :body, :http_version,
23
- :[], :content_length, :content_type, :each_header, :each_name, :each_value, :fetch,
24
- :get_fields, :key?, :type_params
25
-
26
- def initialize(http_response)
27
- @http_response = http_response
28
- end
29
-
30
- def deserialise
31
- deserialise_using(Wrest::Components::Translators.lookup(@http_response.content_type))
32
- end
33
-
34
- def deserialise_using(translator)
35
- translator.deserialise(@http_response)
36
- end
37
- end
38
- end