restfully 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -141,5 +141,8 @@ See the `examples` directory for examples.
141
141
 
142
142
  ## Copyright
143
143
 
144
- Copyright (c) 2009-2011 [Cyril Rohr](http://crohr.me), INRIA Rennes - Bretagne Atlantique.
145
- See LICENSE for details.
144
+ Copyright (c) 2009-2012 [Cyril Rohr](http://crohr.me), INRIA Rennes - Bretagne Atlantique.
145
+
146
+ See LICENSE for details ([CeCILL-B] [cecillb], a BSD style license).
147
+
148
+ [cecillb]: http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
@@ -121,7 +121,7 @@ module Restfully
121
121
  else
122
122
  h[key] = [h[key], value]
123
123
  end
124
- elsif ["disk", "nic", "link", "computes", "networks", "storages"].include?(key)
124
+ elsif ["disk", "nic", "link", "computes", "networks", "storages", "endpoint", "site_link", "interface", "network_link"].include?(key)
125
125
  h[key] = [value]
126
126
  else
127
127
  h[key] = value
@@ -1,3 +1,3 @@
1
1
  module Restfully
2
- VERSION = "1.0.5"
2
+ VERSION = "1.0.6"
3
3
  end
@@ -48,9 +48,8 @@ describe Restfully::HTTP::Request do
48
48
 
49
49
  it "should correctly update the request with the given parameters" do
50
50
  @options[:query] = {:k1 => 'v1', :k2 => [1,2,3]}
51
- @options[:head]['Accept'] = 'text/plain'
52
51
  request = Restfully::HTTP::Request.new(@session, :get, "/path", @options)
53
- request.update!(:headers => {'whatever' => 'value'}, :query => {'k1' => 'xx'}).should_not be_nil
52
+ request.update!(:headers => {'whatever' => 'value', 'Accept' => 'text/plain'}, :query => {'k1' => 'xx'}).should_not be_nil
54
53
  request.uri.to_s.should == 'https://api.grid5000.fr/path?k1=xx'
55
54
  request.head.should include("Whatever"=>"value", 'Accept' => 'text/plain')
56
55
  end
@@ -74,7 +73,7 @@ describe Restfully::HTTP::Request do
74
73
  request.head['Content-Type'].
75
74
  should == 'application/x-www-form-urlencoded'
76
75
  request.method.should == :post
77
- request.body.should == "k1=value1&k2[]=a&k2[]=b&k2[]=c"
76
+ request.body.should == Restfully::MediaType::ApplicationXWwwFormUrlencoded.serialize(@options[:body])
78
77
  end
79
78
 
80
79
  it "should correctly build the request [body as hash, content-type=json]" do
@@ -16,32 +16,32 @@ describe Restfully::MediaType::ApplicationVndBonfireXml do
16
16
  media.io.should == @fixture
17
17
  media.unserialized.should be_a(Hash)
18
18
  end
19
-
19
+
20
20
  it "should build the Hash from the XML doc [resource]" do
21
21
  media = Restfully::MediaType::ApplicationVndBonfireXml.new(@fixture, @session)
22
22
  media.property.should == @expected_compute_hash
23
23
  end
24
-
24
+
25
25
  it "should build the Hash from the XML doc [resource] 2" do
26
26
  media = Restfully::MediaType::ApplicationVndBonfireXml.new(
27
27
  fixture("bonfire-network-existing.xml"), @session
28
28
  )
29
29
  media.property.should == {"name"=>"Private LAN", "public"=>"YES", "id"=>"29", "__type__"=>"network", "link"=>[{"href"=>"/locations/de-hlrs/networks/29", "rel"=>"self"}]}
30
30
  end
31
-
31
+
32
32
  it "should build the Hash from the XML doc [resource] 3" do
33
33
  media = Restfully::MediaType::ApplicationVndBonfireXml.new(
34
34
  fixture("bonfire-experiment.xml"), @session
35
35
  )
36
36
  media.property.should == {"name"=>"expe1", "walltime"=>"2011-04-28T16:16:34Z", "id"=>"12", "__type__"=>"experiment", "user_id"=>"crohr", "storages"=>[{"name"=>"data", "href"=>"/locations/uk-epcc/storages/44"}], "description"=>"description expe1", "computes"=>[{"name"=>"compute expe1", "href"=>"/locations/fr-inria/computes/76"}, {"name"=>"compute2 expe1", "href"=>"/locations/uk-epcc/computes/47"}, {"name"=>"compute2 expe1", "href"=>"/locations/uk-epcc/computes/48"}], "link"=>[{"href"=>"/", "rel"=>"parent"}, {"href"=>"/experiments/12/storages", "rel"=>"storages"}, {"href"=>"/experiments/12/networks", "rel"=>"networks"}, {"href"=>"/experiments/12/computes", "rel"=>"computes"}, {"href"=>"/experiments/12", "rel"=>"self"}], "status"=>"running"}
37
37
  end
38
-
38
+
39
39
  it "should build the Hash from the XML doc [collection]" do
40
40
  media = Restfully::MediaType::ApplicationVndBonfireXml.new(@collection, @session)
41
41
  media.should be_collection
42
42
  media.property.should == {"items"=>[{"address"=>"10.0.0.1", "name"=>"Network1", "size"=>"C", "__type__"=>"network", "description"=>"Network1 description", "link"=>[{"href"=>"/locations/fr-inria", "rel"=>"location"}, {"href"=>"/locations/fr-inria/networks/1", "rel"=>"self"}], "visibility"=>"public"}, {"address"=>"10.0.0.1", "name"=>"Network2", "size"=>"C", "__type__"=>"network", "description"=>"Network2 description", "link"=>[{"href"=>"/locations/fr-inria", "rel"=>"location"}, {"href"=>"/locations/fr-inria/networks/2", "rel"=>"self"}], "visibility"=>"private"}], "total"=>2, "offset"=>0, "__type__"=>"network_collection", "link"=>[{"href"=>"/locations/fr-inria/networks?limit=20", "rel"=>"top", "type"=>"application/vnd.bonfire+xml"}, {"href"=>"/locations/fr-inria", "rel"=>"parent", "type"=>"application/vnd.bonfire+xml"}, {"href"=>"/locations/fr-inria/networks", "rel"=>"self"}]}
43
43
  end
44
-
44
+
45
45
  it "should build the Hash from the XML doc [empty collection]" do
46
46
  media = Restfully::MediaType::ApplicationVndBonfireXml.new(
47
47
  fixture("bonfire-empty-collection.xml"), @session
@@ -51,15 +51,15 @@ describe Restfully::MediaType::ApplicationVndBonfireXml do
51
51
  media.each{|i| items << i}
52
52
  items.should be_empty
53
53
  end
54
-
54
+
55
55
  it "should be able to iterate over a collection" do
56
56
  media = Restfully::MediaType::ApplicationVndBonfireXml.new(fixture("bonfire-experiment-collection.xml"), @session)
57
57
  items = []
58
58
  media.each{|i| items<<i}
59
59
  items.length.should == 3
60
60
  end
61
-
62
-
61
+
62
+
63
63
  end
64
64
 
65
65
  describe "restfully resource" do
@@ -67,35 +67,35 @@ describe Restfully::MediaType::ApplicationVndBonfireXml do
67
67
  req = Restfully::HTTP::Request.new(@session, :get, "http://localhost:8000/locations/de-hlrs/networks/29", :head => {
68
68
  'Accept' => 'application/vnd.bonfire+xml'
69
69
  })
70
-
70
+
71
71
  res = Restfully::HTTP::Response.new(@session, 200, {
72
72
  'Content-Type' => 'application/vnd.bonfire+xml'
73
73
  }, fixture("bonfire-network-existing.xml"))
74
-
74
+
75
75
  res.media_type.should be_a(
76
76
  Restfully::MediaType::ApplicationVndBonfireXml
77
77
  )
78
-
78
+
79
79
  resource = Restfully::Resource.new(@session, res, req).load
80
-
80
+
81
81
  resource.uri.to_s.should == "http://localhost:8000/locations/de-hlrs/networks/29"
82
82
  resource.collection?.should be_false
83
83
  resource.properties.should == {"name"=>"Private LAN", "public"=>"YES", "id"=>"29"}
84
84
  end
85
-
85
+
86
86
  it "should correctly load and iterate over a collection" do
87
87
  req = Restfully::HTTP::Request.new(@session, :get, "http://localhost:8000/experiments", :head => {
88
88
  'Accept' => 'application/vnd.bonfire+xml'
89
89
  })
90
-
90
+
91
91
  res = Restfully::HTTP::Response.new(@session, 200, {
92
92
  'Content-Type' => 'application/vnd.bonfire+xml'
93
93
  }, fixture("bonfire-experiment-collection.xml"))
94
-
94
+
95
95
  res.media_type.should be_a(Restfully::MediaType::ApplicationVndBonfireXml)
96
-
96
+
97
97
  collection = Restfully::Resource.new(@session, res, req).load
98
-
98
+
99
99
  collection.uri.to_s.should == "http://localhost:8000/experiments"
100
100
  collection.collection?.should be_true
101
101
  collection.length.should == 3
@@ -108,18 +108,18 @@ describe Restfully::MediaType::ApplicationVndBonfireXml do
108
108
  collection[-1].should == collection.last
109
109
  collection[10].should be_nil
110
110
  end
111
-
111
+
112
112
  it "should correctly load an empty collection" do
113
113
  req = Restfully::HTTP::Request.new(@session, :get, "http://localhost:8000/locations/uk-epcc/computes", :head => {
114
114
  'Accept' => 'application/vnd.bonfire+xml'
115
115
  })
116
-
116
+
117
117
  res = Restfully::HTTP::Response.new(@session, 200, {
118
118
  'Content-Type' => 'application/vnd.bonfire+xml'
119
119
  }, fixture("bonfire-empty-collection.xml"))
120
-
120
+
121
121
  res.media_type.should be_a(Restfully::MediaType::ApplicationVndBonfireXml)
122
-
122
+
123
123
  collection = Restfully::Resource.new(@session, res, req).load
124
124
  collection.collection?.should be_true
125
125
  collection.length.should == 0
@@ -150,13 +150,32 @@ describe Restfully::MediaType::ApplicationVndBonfireXml do
150
150
 
151
151
  describe "serializing to xml" do
152
152
  it "should correctly serialize a resource" do
153
+ ns = "occi:http://api.bonfire-project.eu/doc/schemas/occi"
153
154
  serialized = Restfully::MediaType::ApplicationVndBonfireXml.serialize(
154
155
  @expected_compute_hash,
155
156
  :serialization => {"__type__" => "compute"}
156
157
  )
157
- serialized.split("\n").sort.should == "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<compute xmlns=\"http://api.bonfire-project.eu/doc/schemas/occi\">\n <name>Compute name</name>\n <startup href=\"file:///path/to/startup-script/sh\"/>\n <instance_type>small</instance_type>\n <description>Compute description</description>\n <nic id=\"0\">\n <device>eth0</device>\n <mac>AA:AA:AA:AA</mac>\n <network href=\"/locations/fr-inria/networks/1\"/>\n <ip>123.123.123.123</ip>\n </nic>\n <nic id=\"1\">\n <device>eth1</device>\n <mac>BB:BB:BB:BB</mac>\n <network href=\"/locations/fr-inria/networks/2\"/>\n <ip>123.123.124.2</ip>\n </nic>\n <context>\n <bonfire_credentials>crohr:p4ssw0rd</bonfire_credentials>\n <monitoring_ip>123.123.123.2</monitoring_ip>\n </context>\n <link id=\"0\" href=\"/locations/fr-inria\" rel=\"location\" type=\"application/vnd.bonfire+xml\"/>\n <link id=\"1\" href=\"/locations/uk-epcc/computes/1\" rel=\"self\"/>\n <disk id=\"0\">\n <type>OS</type>\n <storage href=\"/locations/fr-inria/storages/1\"/>\n <target>sda</target>\n </disk>\n <disk id=\"1\">\n <type>CDROM</type>\n <storage href=\"/locations/fr-inria/storages/2\"/>\n <target>sdc</target>\n </disk>\n <state>ACTIVE</state>\n</compute>\n".split("\n").sort
158
+
159
+ xml = XML::Document.string(serialized)
160
+ xml.root.find_first("occi:name", ns).content.should == "Compute name"
161
+ xml.root.find_first("occi:instance_type", ns).content.should == "small"
162
+ nics = xml.root.find("occi:nic", ns)
163
+ nics.length.should == 2
164
+ nics[0]['id'].should == "0"
165
+ nics[1]['id'].should == "1"
166
+ nics[0].find_first("occi:mac", ns).content.should == "AA:AA:AA:AA"
167
+ disks = xml.root.find("occi:disk", ns)
168
+ disks.length.should == 2
169
+ disks[1].find_first("occi:storage", ns)['href'].should == "/locations/fr-inria/storages/2"
170
+ links = xml.root.find("occi:link", ns)
171
+ links.length.should == 2
172
+ links[0]['href'].should == "/locations/fr-inria"
173
+ links[0]['type'].should == "application/vnd.bonfire+xml"
174
+ xml.root.
175
+ find_first('occi:context', ns).
176
+ find_first('occi:bonfire_credentials', ns).content.should == "crohr:p4ssw0rd"
158
177
  end
159
-
178
+
160
179
  it "should correctly deal with XML::Node elements" do
161
180
  serialized = Restfully::MediaType::ApplicationVndBonfireXml.serialize({
162
181
  :context => {
@@ -165,11 +184,11 @@ describe Restfully::MediaType::ApplicationVndBonfireXml do
165
184
  }, :serialization => {"__type__" => "compute"})
166
185
  serialized.split("\n").sort.should == "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<compute xmlns=\"http://api.bonfire-project.eu/doc/schemas/occi\">\n <context>\n <metrics><![CDATA[<metric>hello,world</metric>]]></metrics>\n </context>\n</compute>\n".split("\n").sort
167
186
  end
168
-
187
+
169
188
  it "should correctly deal with SAVE_AS elements" do
170
189
  serialized = Restfully::MediaType::ApplicationVndBonfireXml.serialize(
171
190
  {
172
- :name => "whatever",
191
+ :name => "whatever",
173
192
  :disk => [{
174
193
  :save_as => {:name => "name of storage"},
175
194
  :storage => {"href" => "/somewhere"}
@@ -120,7 +120,7 @@ describe Restfully::MediaType do
120
120
  end
121
121
  it "should correctly encode a hash" do
122
122
  Restfully::MediaType::ApplicationXWwwFormUrlencoded.
123
- serialize(@unserialized).should == @serialized
123
+ serialize(@unserialized).split("&").sort.should == ["k1=value", "k2[]=a", "k2[]=b", "k2[]=c"]
124
124
  end
125
125
  it "should correctly decode a string" do
126
126
  Restfully::MediaType::ApplicationXWwwFormUrlencoded.
metadata CHANGED
@@ -1,279 +1,298 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: restfully
3
- version: !ruby/object:Gem::Version
4
- hash: 29
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.6
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 5
10
- version: 1.0.5
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Cyril Rohr
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-03-19 00:00:00 +01:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-09-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: json
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
18
+ requirements:
27
19
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 5
30
- segments:
31
- - 1
32
- - 5
33
- version: "1.5"
20
+ - !ruby/object:Gem::Version
21
+ version: '1.5'
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: rest-client
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.5'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rest-client
32
+ requirement: !ruby/object:Gem::Requirement
40
33
  none: false
41
- requirements:
34
+ requirements:
42
35
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 1
47
- - 6
48
- version: "1.6"
36
+ - !ruby/object:Gem::Version
37
+ version: '1.6'
49
38
  type: :runtime
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: rest-client-components
53
39
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '1.6'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rest-client-components
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
63
54
  type: :runtime
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: rack-cache
67
55
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rack-cache
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
77
70
  type: :runtime
78
- version_requirements: *id004
79
- - !ruby/object:Gem::Dependency
80
- name: backports
81
71
  prerelease: false
82
- requirement: &id005 !ruby/object:Gem::Requirement
83
- none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
89
- - 0
90
- version: "0"
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: backports
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
91
86
  type: :runtime
92
- version_requirements: *id005
93
- - !ruby/object:Gem::Dependency
94
- name: addressable
95
87
  prerelease: false
96
- requirement: &id006 !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- hash: 3
102
- segments:
103
- - 0
104
- version: "0"
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: addressable
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
105
102
  type: :runtime
106
- version_requirements: *id006
107
- - !ruby/object:Gem::Dependency
108
- name: ripl
109
103
  prerelease: false
110
- requirement: &id007 !ruby/object:Gem::Requirement
111
- none: false
112
- requirements:
113
- - - "="
114
- - !ruby/object:Gem::Version
115
- hash: 5
116
- segments:
117
- - 0
118
- - 6
119
- - 1
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: ripl
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
120
117
  version: 0.6.1
121
118
  type: :runtime
122
- version_requirements: *id007
123
- - !ruby/object:Gem::Dependency
124
- name: ripl-multi_line
125
119
  prerelease: false
126
- requirement: &id008 !ruby/object:Gem::Requirement
127
- none: false
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- hash: 3
132
- segments:
133
- - 0
134
- version: "0"
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - '='
124
+ - !ruby/object:Gem::Version
125
+ version: 0.6.1
126
+ - !ruby/object:Gem::Dependency
127
+ name: ripl-multi_line
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
135
134
  type: :runtime
136
- version_requirements: *id008
137
- - !ruby/object:Gem::Dependency
138
- name: ripl-color_streams
139
135
  prerelease: false
140
- requirement: &id009 !ruby/object:Gem::Requirement
141
- none: false
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- hash: 3
146
- segments:
147
- - 0
148
- version: "0"
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: ripl-color_streams
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
149
150
  type: :runtime
150
- version_requirements: *id009
151
- - !ruby/object:Gem::Dependency
152
- name: ripl-short_errors
153
151
  prerelease: false
154
- requirement: &id010 !ruby/object:Gem::Requirement
155
- none: false
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- hash: 3
160
- segments:
161
- - 0
162
- version: "0"
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: ripl-short_errors
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
163
166
  type: :runtime
164
- version_requirements: *id010
165
- - !ruby/object:Gem::Dependency
166
- name: ripl-play
167
167
  prerelease: false
168
- requirement: &id011 !ruby/object:Gem::Requirement
168
+ version_requirements: !ruby/object:Gem::Requirement
169
169
  none: false
170
- requirements:
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: ripl-play
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
171
179
  - - ~>
172
- - !ruby/object:Gem::Version
173
- hash: 21
174
- segments:
175
- - 0
176
- - 2
177
- - 1
180
+ - !ruby/object:Gem::Version
178
181
  version: 0.2.1
179
182
  type: :runtime
180
- version_requirements: *id011
181
- - !ruby/object:Gem::Dependency
182
- name: rb-readline
183
183
  prerelease: false
184
- requirement: &id012 !ruby/object:Gem::Requirement
185
- none: false
186
- requirements:
187
- - - ">="
188
- - !ruby/object:Gem::Version
189
- hash: 3
190
- segments:
191
- - 0
192
- version: "0"
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ~>
188
+ - !ruby/object:Gem::Version
189
+ version: 0.2.1
190
+ - !ruby/object:Gem::Dependency
191
+ name: rb-readline
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
193
198
  type: :runtime
194
- version_requirements: *id012
195
- - !ruby/object:Gem::Dependency
196
- name: rake
197
199
  prerelease: false
198
- requirement: &id013 !ruby/object:Gem::Requirement
200
+ version_requirements: !ruby/object:Gem::Requirement
199
201
  none: false
200
- requirements:
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ - !ruby/object:Gem::Dependency
207
+ name: rake
208
+ requirement: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
201
211
  - - ~>
202
- - !ruby/object:Gem::Version
203
- hash: 27
204
- segments:
205
- - 0
206
- - 8
207
- version: "0.8"
212
+ - !ruby/object:Gem::Version
213
+ version: '0.8'
208
214
  type: :development
209
- version_requirements: *id013
210
- - !ruby/object:Gem::Dependency
211
- name: rspec
212
215
  prerelease: false
213
- requirement: &id014 !ruby/object:Gem::Requirement
216
+ version_requirements: !ruby/object:Gem::Requirement
214
217
  none: false
215
- requirements:
218
+ requirements:
216
219
  - - ~>
217
- - !ruby/object:Gem::Version
218
- hash: 7
219
- segments:
220
- - 2
221
- version: "2"
220
+ - !ruby/object:Gem::Version
221
+ version: '0.8'
222
+ - !ruby/object:Gem::Dependency
223
+ name: rspec
224
+ requirement: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ~>
228
+ - !ruby/object:Gem::Version
229
+ version: '2'
222
230
  type: :development
223
- version_requirements: *id014
224
- - !ruby/object:Gem::Dependency
225
- name: webmock
226
231
  prerelease: false
227
- requirement: &id015 !ruby/object:Gem::Requirement
228
- none: false
229
- requirements:
230
- - - ">="
231
- - !ruby/object:Gem::Version
232
- hash: 3
233
- segments:
234
- - 0
235
- version: "0"
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ~>
236
+ - !ruby/object:Gem::Version
237
+ version: '2'
238
+ - !ruby/object:Gem::Dependency
239
+ name: webmock
240
+ requirement: !ruby/object:Gem::Requirement
241
+ none: false
242
+ requirements:
243
+ - - ! '>='
244
+ - !ruby/object:Gem::Version
245
+ version: '0'
236
246
  type: :development
237
- version_requirements: *id015
238
- - !ruby/object:Gem::Dependency
239
- name: autotest
240
247
  prerelease: false
241
- requirement: &id016 !ruby/object:Gem::Requirement
242
- none: false
243
- requirements:
244
- - - ">="
245
- - !ruby/object:Gem::Version
246
- hash: 3
247
- segments:
248
- - 0
249
- version: "0"
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ none: false
250
+ requirements:
251
+ - - ! '>='
252
+ - !ruby/object:Gem::Version
253
+ version: '0'
254
+ - !ruby/object:Gem::Dependency
255
+ name: autotest
256
+ requirement: !ruby/object:Gem::Requirement
257
+ none: false
258
+ requirements:
259
+ - - ! '>='
260
+ - !ruby/object:Gem::Version
261
+ version: '0'
250
262
  type: :development
251
- version_requirements: *id016
252
- - !ruby/object:Gem::Dependency
253
- name: autotest-growl
254
263
  prerelease: false
255
- requirement: &id017 !ruby/object:Gem::Requirement
256
- none: false
257
- requirements:
258
- - - ">="
259
- - !ruby/object:Gem::Version
260
- hash: 3
261
- segments:
262
- - 0
263
- version: "0"
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ none: false
266
+ requirements:
267
+ - - ! '>='
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
270
+ - !ruby/object:Gem::Dependency
271
+ name: autotest-growl
272
+ requirement: !ruby/object:Gem::Requirement
273
+ none: false
274
+ requirements:
275
+ - - ! '>='
276
+ - !ruby/object:Gem::Version
277
+ version: '0'
264
278
  type: :development
265
- version_requirements: *id017
279
+ prerelease: false
280
+ version_requirements: !ruby/object:Gem::Requirement
281
+ none: false
282
+ requirements:
283
+ - - ! '>='
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
266
286
  description: Consume RESTful APIs effortlessly
267
- email:
287
+ email:
268
288
  - cyril.rohr@gmail.com
269
- executables:
289
+ executables:
270
290
  - restfully
271
291
  extensions: []
272
-
273
- extra_rdoc_files:
292
+ extra_rdoc_files:
274
293
  - LICENSE
275
294
  - README.md
276
- files:
295
+ files:
277
296
  - bin/restfully
278
297
  - lib/restfully/collection.rb
279
298
  - lib/restfully/configuration.rb
@@ -325,43 +344,32 @@ files:
325
344
  - Rakefile
326
345
  - LICENSE
327
346
  - README.md
328
- has_rdoc: true
329
347
  homepage: http://github.com/crohr/restfully
330
348
  licenses: []
331
-
332
349
  post_install_message:
333
- rdoc_options:
350
+ rdoc_options:
334
351
  - --charset=UTF-8
335
- require_paths:
352
+ require_paths:
336
353
  - lib
337
- required_ruby_version: !ruby/object:Gem::Requirement
354
+ required_ruby_version: !ruby/object:Gem::Requirement
338
355
  none: false
339
- requirements:
340
- - - ">="
341
- - !ruby/object:Gem::Version
342
- hash: 31
343
- segments:
344
- - 1
345
- - 8
346
- version: "1.8"
347
- required_rubygems_version: !ruby/object:Gem::Requirement
356
+ requirements:
357
+ - - ! '>='
358
+ - !ruby/object:Gem::Version
359
+ version: '1.8'
360
+ required_rubygems_version: !ruby/object:Gem::Requirement
348
361
  none: false
349
- requirements:
350
- - - ">="
351
- - !ruby/object:Gem::Version
352
- hash: 9
353
- segments:
354
- - 1
355
- - 3
356
- version: "1.3"
362
+ requirements:
363
+ - - ! '>='
364
+ - !ruby/object:Gem::Version
365
+ version: '1.3'
357
366
  requirements: []
358
-
359
367
  rubyforge_project:
360
- rubygems_version: 1.6.2
368
+ rubygems_version: 1.8.21
361
369
  signing_key:
362
370
  specification_version: 3
363
371
  summary: Consume RESTful APIs effortlessly
364
- test_files:
372
+ test_files:
365
373
  - spec/fixtures/bonfire-collection-with-fragments.xml
366
374
  - spec/fixtures/bonfire-compute-existing.xml
367
375
  - spec/fixtures/bonfire-empty-collection.xml
@@ -386,3 +394,4 @@ test_files:
386
394
  - spec/restfully/resource_spec.rb
387
395
  - spec/restfully/session_spec.rb
388
396
  - spec/spec_helper.rb
397
+ has_rdoc: