json_roa-client 0.0.1 → 1.0.0.pre.beta.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/json_roa/client/collection.rb +16 -9
- data/lib/json_roa/client/relation.rb +16 -5
- data/lib/json_roa/client/resource.rb +0 -4
- data/lib/json_roa/client/version.rb +1 -1
- data/lib/json_roa/client.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cdb807bb844107ea3e10f62f2abb7e779cec235a
|
4
|
+
data.tar.gz: 0c7ca17cf23edd53294942f1d3b4ab159b8c161c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d86b3da965f3688cc2d7d9b44a96b5b98c309266c2d9b34f3ad796d4261e5325ea4ac7d667873f56bc6e6c71daed46e68902fecee7b2ec829a919fe3df7a3c9
|
7
|
+
data.tar.gz: 7bbbe259b42137273fd758374cbe72dfebe8056339b981bcb2a3aec61eea5f6a23c89952cfd63525ae6ecf09ebbe3716ea4325dbc65afdc4b5d745775f1b16ba
|
@@ -10,16 +10,23 @@ module JSON_ROA
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def each &block
|
13
|
-
relations= @resource.response.env \
|
14
|
-
.json_roa_data['collection']['relations'] rescue []
|
15
|
-
relations.each do |key, data|
|
16
|
-
yield Relation.new(@conn,key,data) if block_given?
|
17
|
-
end
|
18
13
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
14
|
+
while true do
|
15
|
+
|
16
|
+
relations= @resource.json_roa_data['collection']['relations'] rescue []
|
17
|
+
|
18
|
+
relations.each do |key, data|
|
19
|
+
yield Relation.new(@conn,key,data) if block_given?
|
20
|
+
end
|
21
|
+
|
22
|
+
next_val= @resource.json_roa_data['collection']['next'] rescue nil
|
23
|
+
|
24
|
+
if relations.empty? or (not next_val)
|
25
|
+
break
|
26
|
+
else
|
27
|
+
@resource= Relation.new(@conn,"next",next_val).get()
|
28
|
+
end
|
29
|
+
|
23
30
|
end
|
24
31
|
|
25
32
|
end
|
@@ -6,6 +6,8 @@ module JSON_ROA
|
|
6
6
|
|
7
7
|
class Relation
|
8
8
|
|
9
|
+
SUPPORTED_METHODS= %w(get put post delete)
|
10
|
+
|
9
11
|
attr_reader :data
|
10
12
|
attr_reader :key
|
11
13
|
|
@@ -15,16 +17,25 @@ module JSON_ROA
|
|
15
17
|
@data= data
|
16
18
|
end
|
17
19
|
|
18
|
-
def
|
20
|
+
def run_request method, query_parameters, body, headers, &block
|
21
|
+
unless available_methods.keys.include? method
|
22
|
+
raise ArgumentError, "method: #{method} is not supported by this relation"
|
23
|
+
end
|
19
24
|
href= @data['href']
|
20
25
|
template= ::Addressable::Template.new(href)
|
21
|
-
|
22
|
-
response=@conn.
|
26
|
+
expanded_url= template.expand(query_parameters)
|
27
|
+
response=@conn.run_request method.to_sym, expanded_url, body, headers, &block
|
23
28
|
::JSON_ROA::Client::Resource.new(@conn,response)
|
24
29
|
end
|
25
30
|
|
26
|
-
|
27
|
-
|
31
|
+
SUPPORTED_METHODS.each do |method_name|
|
32
|
+
define_method method_name do |query_parameters={}, body=nil, headers=nil, &block|
|
33
|
+
run_request method_name, query_parameters, body, headers, &block
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def available_methods
|
38
|
+
@data['methods'] ||= {"get" => {}}
|
28
39
|
end
|
29
40
|
|
30
41
|
end
|
data/lib/json_roa/client.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json_roa-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 1.0.0.pre.beta.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Schank
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -127,9 +127,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
127
127
|
version: '0'
|
128
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- - "
|
130
|
+
- - ">"
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
132
|
+
version: 1.3.1
|
133
133
|
requirements: []
|
134
134
|
rubyforge_project:
|
135
135
|
rubygems_version: 2.2.2
|