hyperresource 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/hyper_resource/link.rb +3 -3
- data/lib/hyper_resource/links.rb +20 -11
- data/lib/hyper_resource/version.rb +2 -2
- data/lib/hyper_resource.rb +1 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92ee4348030a36d83d74cb0b71bb4b70d1ae6ce0
|
4
|
+
data.tar.gz: 53aaa0253140cb08399407294b1e469c34e72bef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6600ac1ca86877604297185f1be5e769540dcae149ad36e8cde685d959adc6ce93de86a684450d08fe694f5aac8cc8c39484fa7c80d71f8d0658f760ec5765d9
|
7
|
+
data.tar.gz: 51289b56ed95a5818a7a6fbe392dc7cec68565451fd94a1838fb83f6647550b11862b03870b394b3767a3dfedaa19c129662d5bf6bb4d4e8a7b94cb0bb68779a
|
data/lib/hyper_resource/link.rb
CHANGED
@@ -10,9 +10,9 @@ class HyperResource::Link
|
|
10
10
|
|
11
11
|
def initialize(resource=nil, link_spec={})
|
12
12
|
self.parent_resource = resource || HyperResource.new
|
13
|
-
self.base_href
|
14
|
-
self.templated
|
15
|
-
self.params
|
13
|
+
self.base_href = link_spec['href']
|
14
|
+
self.templated = !!link_spec['templated']
|
15
|
+
self.params = link_spec['params'] || {}
|
16
16
|
end
|
17
17
|
|
18
18
|
## Returns this link's href, applying any URI template params.
|
data/lib/hyper_resource/links.rb
CHANGED
@@ -1,22 +1,31 @@
|
|
1
1
|
class HyperResource
|
2
|
-
|
3
|
-
|
2
|
+
class Links < Hash
|
3
|
+
attr_accessor :resource
|
4
4
|
|
5
|
-
|
5
|
+
def initialize(resource=nil)
|
6
6
|
self.resource = resource || HyperResource.new
|
7
|
-
|
7
|
+
end
|
8
8
|
|
9
9
|
# Initialize links from a HAL response.
|
10
10
|
def init_from_hal(hal_resp)
|
11
11
|
return unless hal_resp['_links']
|
12
12
|
hal_resp['_links'].each do |rel, link_spec|
|
13
|
-
self[rel] =
|
14
|
-
unless self.respond_to?(rel.to_sym)
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
13
|
+
self[rel] = new_link_from_spec(link_spec)
|
14
|
+
create_methods_for_link_rel(rel) unless self.respond_to?(rel.to_sym)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
protected
|
19
|
+
|
20
|
+
def new_link_from_spec(link_spec) # :nodoc:
|
21
|
+
HyperResource::Link.new(resource, link_spec)
|
22
|
+
end
|
23
|
+
|
24
|
+
def create_methods_for_link_rel(rel) # :nodoc:
|
25
|
+
link = self[rel]
|
26
|
+
define_singleton_method(rel.to_sym) do |*args|
|
27
|
+
return link if args.empty?
|
28
|
+
link.where(*args)
|
20
29
|
end
|
21
30
|
end
|
22
31
|
|
data/lib/hyper_resource.rb
CHANGED
@@ -126,6 +126,7 @@ public
|
|
126
126
|
## if self.class != HyperResource, instance-wide otherwise.
|
127
127
|
def method_missing(method, *args)
|
128
128
|
self.get unless self.loaded
|
129
|
+
|
129
130
|
[:attributes, :objects, :links].each do |field|
|
130
131
|
if self.send(field).respond_to?(method)
|
131
132
|
if self.class == HyperResource
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyperresource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pete Gamache
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-04-
|
11
|
+
date: 2013-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: uri_template
|
@@ -121,8 +121,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
123
|
rubyforge_project:
|
124
|
-
rubygems_version: 2.0.
|
124
|
+
rubygems_version: 2.0.2
|
125
125
|
signing_key:
|
126
126
|
specification_version: 4
|
127
127
|
summary: Extensible hypermedia client for Ruby
|
128
128
|
test_files: []
|
129
|
+
has_rdoc: true
|