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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e9844c60b0fe8e4e88935179b8adac2484267087
4
- data.tar.gz: ba30d1358140c121509ff9ccbdca0c7b1f09fe72
3
+ metadata.gz: 92ee4348030a36d83d74cb0b71bb4b70d1ae6ce0
4
+ data.tar.gz: 53aaa0253140cb08399407294b1e469c34e72bef
5
5
  SHA512:
6
- metadata.gz: 5b81b62a0f28580101f4e3bce8b5db8bde5081d31874ca549ea06e2158a29ab60bfccc20aabd44c39da1672d83aed82793dfd171b83e206865fdf08c69df88f0
7
- data.tar.gz: bc318b9f9231913ac6cf40401a590755fc76f91baa9cafbfa46960d2f8baf4e66905664a52e2f2aaacbfb584716d426cede5035a32241b6e0f5e02c9efa033d8
6
+ metadata.gz: 6600ac1ca86877604297185f1be5e769540dcae149ad36e8cde685d959adc6ce93de86a684450d08fe694f5aac8cc8c39484fa7c80d71f8d0658f760ec5765d9
7
+ data.tar.gz: 51289b56ed95a5818a7a6fbe392dc7cec68565451fd94a1838fb83f6647550b11862b03870b394b3767a3dfedaa19c129662d5bf6bb4d4e8a7b94cb0bb68779a
@@ -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 = link_spec['href']
14
- self.templated = !!link_spec['templated']
15
- self.params = link_spec['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.
@@ -1,22 +1,31 @@
1
1
  class HyperResource
2
- class Links < Hash
3
- attr_accessor :resource
2
+ class Links < Hash
3
+ attr_accessor :resource
4
4
 
5
- def initialize(resource=nil)
5
+ def initialize(resource=nil)
6
6
  self.resource = resource || HyperResource.new
7
- end
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] = HyperResource::Link.new(resource, link_spec)
14
- unless self.respond_to?(rel.to_sym)
15
- define_singleton_method(rel.to_sym) { self[rel] }
16
- end
17
- unless self.resource.respond_to?(rel.to_sym)
18
- self.resource.define_singleton_method(rel.to_sym) {self.links[rel]}
19
- end
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
 
@@ -1,4 +1,4 @@
1
1
  class HyperResource
2
- VERSION = '0.1.1'
3
- VERSION_DATE = '2013-04-08'
2
+ VERSION = '0.1.2'
3
+ VERSION_DATE = '2013-04-12'
4
4
  end
@@ -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.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-08 00:00:00.000000000 Z
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.3
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