wrest 0.0.5-java → 0.0.6-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. data/README.rdoc +31 -17
  2. data/Rakefile +7 -2
  3. data/VERSION.yml +1 -1
  4. data/lib/wrest/components.rb +3 -1
  5. data/lib/wrest/components/attributes_container.rb +65 -10
  6. data/lib/wrest/components/mutators.rb +2 -1
  7. data/lib/wrest/components/mutators/base.rb +27 -11
  8. data/lib/wrest/components/mutators/camel_to_snake_case.rb +20 -0
  9. data/lib/wrest/components/mutators/xml_simple_type_caster.rb +25 -21
  10. data/lib/wrest/{translators.rb → components/translators.rb} +6 -6
  11. data/lib/wrest/{translators → components/translators}/content_types.rb +5 -5
  12. data/lib/wrest/components/translators/json.rb +22 -0
  13. data/lib/wrest/{translators → components/translators}/xml.rb +19 -17
  14. data/lib/wrest/components/typecast_helpers.rb +41 -0
  15. data/lib/wrest/core_ext/hash/conversions.rb +22 -3
  16. data/lib/wrest/exceptions.rb +6 -1
  17. data/lib/wrest/{translators/json.rb → exceptions/method_not_overridden_exception.rb} +11 -15
  18. data/lib/wrest/exceptions/unsupported_content_type_exception.rb +11 -9
  19. data/lib/wrest/resource/base.rb +5 -1
  20. data/lib/wrest/response.rb +2 -2
  21. data/lib/wrest/uri.rb +3 -3
  22. data/lib/wrest/version.rb +1 -1
  23. data/spec/spec_helper.rb +2 -1
  24. data/spec/wrest/components/attributes_container_spec.rb +66 -11
  25. data/spec/wrest/components/mutators/base_spec.rb +28 -8
  26. data/spec/wrest/components/mutators/camel_to_snake_spec.rb +22 -0
  27. data/spec/wrest/components/mutators/xml_simple_type_caster_spec.rb +14 -8
  28. data/spec/wrest/{translators → components/translators}/xml_spec.rb +3 -3
  29. data/spec/wrest/components/translators_spec.rb +9 -0
  30. data/spec/wrest/core_ext/hash/conversions_spec.rb +1 -1
  31. data/spec/wrest/resource/base_spec.rb +1 -1
  32. data/spec/wrest/response_spec.rb +3 -3
  33. data/spec/wrest/uri_spec.rb +2 -2
  34. metadata +61 -56
  35. data/spec/wrest/translators_spec.rb +0 -9
@@ -1,12 +1,12 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require File.dirname(__FILE__) + '/../../../spec_helper'
2
2
 
3
- module Wrest::Translators
3
+ module Wrest::Components::Translators
4
4
  describe Xml do
5
5
  it "should know how to convert xml to a hashmap" do
6
6
  http_response = mock('Http Reponse')
7
7
  http_response.should_receive(:body).and_return("<ooga><age>12</age></ooga>")
8
8
 
9
- Xml.call(http_response).should == {"ooga"=>[{"age"=>["12"]}]}
9
+ Xml.deserialise(http_response).should == {"ooga"=>[{"age"=>["12"]}]}
10
10
  end
11
11
  end
12
12
  end
@@ -0,0 +1,9 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ module Wrest::Components
4
+ describe Translators do
5
+ it "should know how to raise an exception if the mime type doesn't exist" do
6
+ lambda{ Translators.lookup('weird/unknown')}.should raise_error(Wrest::Exceptions::UnsupportedContentTypeException)
7
+ end
8
+ end
9
+ end
@@ -17,6 +17,6 @@ describe Hash, 'conversions' do
17
17
  end
18
18
  end
19
19
 
20
- {'ooga' => 'booga'}.to_mutated_hash(StringToSymbolMutator.new).should == {:ooga => 'booga'}
20
+ {'ooga' => 'booga'}.mutate_using(StringToSymbolMutator.new).should == {:ooga => 'booga'}
21
21
  end
22
22
  end
@@ -38,7 +38,7 @@ module Wrest
38
38
  it "should know how to create an instance using deserialised attributes" do
39
39
  # Json => {"lead_bottle"=>{"name"=>"Wooz", "id"=>1, "universe_id"=>nil}}
40
40
  # Xml => {"lead-bottle"=>[{"name"=>["Wooz"], "universe-id"=>[{"type"=>"integer", "nil"=>"true"}], "id"=>[{"type"=>"integer", "content"=>"1"}]}]}
41
- universe = @BottledUniverse.new "name"=>"Wooz", "id"=>1, "universe_id"=>nil, 'owner_id'=>nil
41
+ universe = @BottledUniverse.new "name"=>"Wooz", "id"=>'1', "universe_id"=>nil, 'owner_id'=>nil
42
42
  universe.name.should == "Wooz"
43
43
  universe.owner_id.should be_nil
44
44
  universe.id.should == 1
@@ -4,8 +4,8 @@ module Wrest
4
4
  describe Response do
5
5
  it "should know how to delegate to a translator" do
6
6
  http_response = mock('response')
7
- Translators::Xml.should_receive(:call).with(http_response)
8
- Response.new(http_response).deserialise_using(Translators::Xml)
7
+ Components::Translators::Xml.should_receive(:deserialise).with(http_response)
8
+ Response.new(http_response).deserialise_using(Components::Translators::Xml)
9
9
  end
10
10
 
11
11
  it "should know how to load a translator based on content type" do
@@ -13,7 +13,7 @@ module Wrest
13
13
  http_response.should_receive(:content_type).and_return('application/xml')
14
14
 
15
15
  response = Response.new(http_response)
16
- response.should_receive(:deserialise_using).with(Translators::Xml)
16
+ response.should_receive(:deserialise_using).with(Components::Translators::Xml)
17
17
 
18
18
  response.deserialise
19
19
  end
@@ -109,9 +109,9 @@ module Wrest
109
109
  http = mock(Net::HTTP)
110
110
  Net::HTTP.should_receive(:new).with('localhost', 3000).and_return(http)
111
111
 
112
- http.should_receive(:delete).with('/glassware', {'page' => '2', 'per_page' => '5'}).and_return(build_ok_response(nil))
112
+ http.should_receive(:delete).with('/glassware?owner=Kai&type=bottle', {'page' => '2', 'per_page' => '5'}).and_return(build_ok_response(nil))
113
113
 
114
- uri.delete(:page => '2', :per_page => '5')
114
+ uri.delete({:owner => 'Kai', :type => 'bottle'}, :page => '2', :per_page => '5')
115
115
  end
116
116
 
117
117
  it "should not mutate state of the uri across requests" do
metadata CHANGED
@@ -1,31 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
- required_ruby_version: !ruby/object:Gem::Requirement
3
- requirements:
4
- - - '>='
5
- - !ruby/object:Gem::Version
6
- version: "0"
7
- version:
8
- email: ckponnappa@gmail.com
9
- cert_chain: []
2
+ extensions: []
10
3
 
11
- summary: REST client library for Ruby.
12
- post_install_message:
13
- extra_rdoc_files:
14
- - README.rdoc
15
4
  homepage: http://github.com/kaiwren/wrest
16
- signing_key:
17
- name: wrest
18
- rdoc_options:
19
- - --charset=UTF-8
20
- autorequire:
21
- rubyforge_project: wrest
22
5
  executables:
23
6
  - wrest
24
- description: Wrest is a REST client library which allows you to quickly build object
25
- oriented wrappers around any web service. It has two main components - Wrest Core
26
- and Wrest::Resource.
27
- specification_version: 2
28
- default_executable: wrest
7
+ version: !ruby/object:Gem::Version
8
+ version: 0.0.6
9
+ post_install_message:
10
+ date: 2009-04-23 18:30:00 +00:00
29
11
  files:
30
12
  - README.rdoc
31
13
  - Rakefile
@@ -38,21 +20,24 @@ files:
38
20
  - lib/wrest/components/attributes_container.rb
39
21
  - lib/wrest/components/mutators.rb
40
22
  - lib/wrest/components/mutators/base.rb
23
+ - lib/wrest/components/mutators/camel_to_snake_case.rb
41
24
  - lib/wrest/components/mutators/xml_simple_type_caster.rb
25
+ - lib/wrest/components/translators.rb
26
+ - lib/wrest/components/translators/content_types.rb
27
+ - lib/wrest/components/translators/json.rb
28
+ - lib/wrest/components/translators/xml.rb
29
+ - lib/wrest/components/typecast_helpers.rb
42
30
  - lib/wrest/core_ext/hash.rb
43
31
  - lib/wrest/core_ext/hash/conversions.rb
44
32
  - lib/wrest/core_ext/string.rb
45
33
  - lib/wrest/core_ext/string/conversions.rb
46
34
  - lib/wrest/exceptions.rb
35
+ - lib/wrest/exceptions/method_not_overridden_exception.rb
47
36
  - lib/wrest/exceptions/unsupported_content_type_exception.rb
48
37
  - lib/wrest/resource.rb
49
38
  - lib/wrest/resource/base.rb
50
39
  - lib/wrest/resource/collection.rb
51
40
  - lib/wrest/response.rb
52
- - lib/wrest/translators.rb
53
- - lib/wrest/translators/content_types.rb
54
- - lib/wrest/translators/json.rb
55
- - lib/wrest/translators/xml.rb
56
41
  - lib/wrest/uri.rb
57
42
  - lib/wrest/uri_template.rb
58
43
  - lib/wrest/version.rb
@@ -62,78 +47,98 @@ files:
62
47
  - spec/spec_helper.rb
63
48
  - spec/wrest/components/attributes_container_spec.rb
64
49
  - spec/wrest/components/mutators/base_spec.rb
50
+ - spec/wrest/components/mutators/camel_to_snake_spec.rb
65
51
  - spec/wrest/components/mutators/xml_simple_type_caster_spec.rb
52
+ - spec/wrest/components/translators/xml_spec.rb
53
+ - spec/wrest/components/translators_spec.rb
66
54
  - spec/wrest/core_ext/hash/conversions_spec.rb
67
55
  - spec/wrest/core_ext/string/conversions_spec.rb
68
56
  - spec/wrest/resource/base_spec.rb
69
57
  - spec/wrest/response_spec.rb
70
- - spec/wrest/translators/xml_spec.rb
71
- - spec/wrest/translators_spec.rb
72
58
  - spec/wrest/uri_spec.rb
73
59
  - spec/wrest/uri_template_spec.rb
60
+ rubygems_version: 1.3.1
61
+ rdoc_options:
62
+ - --charset=UTF-8
63
+ signing_key:
64
+ cert_chain: []
65
+
66
+ name: wrest
67
+ has_rdoc: true
68
+ platform: java
69
+ summary: REST client library for Ruby.
70
+ default_executable: wrest
71
+ bindir: bin
74
72
  required_rubygems_version: !ruby/object:Gem::Requirement
73
+ version:
75
74
  requirements:
76
75
  - - '>='
77
76
  - !ruby/object:Gem::Version
78
77
  version: "0"
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
79
  version:
80
- extensions: []
81
-
82
- rubygems_version: 1.3.1
83
- requirements: []
84
-
85
- authors:
86
- - Sidu Ponnappa
87
- date: 2009-04-20 18:30:00 +00:00
88
- platform: java
80
+ requirements:
81
+ - - '>='
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ require_paths:
85
+ - lib
86
+ specification_version: 2
89
87
  test_files:
90
88
  - spec/spec_helper.rb
91
89
  - spec/custom_matchers/custom_matchers.rb
92
90
  - spec/wrest/response_spec.rb
93
- - spec/wrest/translators_spec.rb
94
91
  - spec/wrest/uri_spec.rb
95
92
  - spec/wrest/uri_template_spec.rb
96
93
  - spec/wrest/components/attributes_container_spec.rb
94
+ - spec/wrest/components/translators_spec.rb
97
95
  - spec/wrest/components/mutators/base_spec.rb
96
+ - spec/wrest/components/mutators/camel_to_snake_spec.rb
98
97
  - spec/wrest/components/mutators/xml_simple_type_caster_spec.rb
98
+ - spec/wrest/components/translators/xml_spec.rb
99
99
  - spec/wrest/core_ext/hash/conversions_spec.rb
100
100
  - spec/wrest/core_ext/string/conversions_spec.rb
101
101
  - spec/wrest/resource/base_spec.rb
102
- - spec/wrest/translators/xml_spec.rb
103
- version: !ruby/object:Gem::Version
104
- version: 0.0.5
105
- require_paths:
106
- - lib
107
102
  dependencies:
108
103
  - !ruby/object:Gem::Dependency
104
+ type: :runtime
105
+ name: activesupport
106
+ version_requirement:
109
107
  version_requirements: !ruby/object:Gem::Requirement
108
+ version:
110
109
  requirements:
111
110
  - - '>='
112
111
  - !ruby/object:Gem::Version
113
112
  version: 2.1.0
114
- version:
113
+ - !ruby/object:Gem::Dependency
115
114
  type: :runtime
115
+ name: xml-simple
116
116
  version_requirement:
117
- name: activesupport
118
- - !ruby/object:Gem::Dependency
119
117
  version_requirements: !ruby/object:Gem::Requirement
118
+ version:
120
119
  requirements:
121
120
  - - '>='
122
121
  - !ruby/object:Gem::Version
123
122
  version: 1.0.11
124
- version:
123
+ - !ruby/object:Gem::Dependency
125
124
  type: :runtime
125
+ name: json-jruby
126
126
  version_requirement:
127
- name: xml-simple
128
- - !ruby/object:Gem::Dependency
129
127
  version_requirements: !ruby/object:Gem::Requirement
128
+ version:
130
129
  requirements:
131
130
  - - '>='
132
131
  - !ruby/object:Gem::Version
133
132
  version: 1.1.3
134
- version:
135
- type: :runtime
136
- version_requirement:
137
- name: json-jruby
138
- bindir: bin
139
- has_rdoc: true
133
+ description: Wrest is a REST client library which allows you to quickly build object
134
+ oriented wrappers around any web service. It has two main components - Wrest Core
135
+ and Wrest::Resource.
136
+ email: ckponnappa@gmail.com
137
+ authors:
138
+ - Sidu Ponnappa
139
+ extra_rdoc_files:
140
+ - README.rdoc
141
+ requirements: []
142
+
143
+ rubyforge_project: wrest
144
+ autorequire:
@@ -1,9 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- module Wrest
4
- describe Translators do
5
- it "should know how to raise an exception if the mime type doesn't exist" do
6
- lambda{ Translators.load('weird/unknown')}.should raise_error(UnsupportedContentTypeException)
7
- end
8
- end
9
- end