hal_presenter 0.4.1 → 0.4.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
  SHA256:
3
- metadata.gz: 9f8372f743b3ec9c521a91fcae3b076e895aded53ec5a2c8f1f5aca5dd49cc57
4
- data.tar.gz: 0132bffe7bf54366e0c0029d6ad36ab4835157bb122eeb345711554977eabea5
3
+ metadata.gz: 7b50b572e8dbb37fc9e2c9bd8163777817c4b4b3d6ee4eb674fb6525e0227bb5
4
+ data.tar.gz: 1f6293ded1e6130509b7055e295ae16bff05aa26fbb9b5a4b875c68ef49cd756
5
5
  SHA512:
6
- metadata.gz: fd1ad4fda24796029a64d81339c5271dd55a82079afc0425fab5b5c443af1fe8b12411fe2f13c29ec4fa8cd818b48b991808bceb8d5951846668cc06ebd6180c
7
- data.tar.gz: 64f688d70ac9489f3d867e29514cc9c99a4356ae10dafb6417ed37a24a412ee1800f842689a71afc5e8e9c911c301f2d30877cf90b9d0913e6185918b0aefcc4
6
+ metadata.gz: 68f613bb134a5ec3e457e6a259f402cea5ea2906824dce227c922652c195e410bd97aec89a3aa6acba81d2b2b1e9b69437f7826916e4b8052c67f70b0235efd1
7
+ data.tar.gz: 5bb3b2d3f637f2dff4350193a9022cdd6c4e2cb2f6295223efa6f53f97c675d665a8a8df31fa23a7c48bf5135f588d5871124441fbb369a3790e250e1cdf1ebd
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -17,7 +17,7 @@ module HALPresenter
17
17
  private
18
18
 
19
19
  def init_attributes
20
- return [] unless is_a? Class
20
+ return [] unless Class === self
21
21
  return [] unless superclass.respond_to?(:attributes, true)
22
22
  superclass.attributes.each do |attr|
23
23
  attr.change_scope(self)
@@ -47,7 +47,7 @@ module HALPresenter
47
47
  private
48
48
 
49
49
  def init_collection_params
50
- return unless is_a? Class
50
+ return unless Class === self
51
51
  if superclass.respond_to?(:collection_parameters, true)
52
52
  superclass.collection_parameters
53
53
  end
@@ -20,7 +20,7 @@ module HALPresenter
20
20
  private
21
21
 
22
22
  def init_curies
23
- return [] unless is_a? Class
23
+ return [] unless Class === self
24
24
  return [] unless superclass.respond_to?(:curies, true)
25
25
  superclass.curies.each do |curie|
26
26
  curie.change_scope(self)
@@ -52,15 +52,15 @@ module HALPresenter
52
52
  next unless resource.respond_to? setter_method
53
53
  presenter = embed.presenter_class or next
54
54
 
55
- embedded_hash = hash.dig('_embedded', embed.name.to_s)
56
- next unless embedded_hash&.any?
55
+ _embedded = hash.dig('_embedded', embed.name.to_s)
56
+ next unless _embedded&.any?
57
57
 
58
58
  embedded_resource = resource.public_send(embed.name)
59
59
  embedded_resource =
60
- if embedded_hash.is_a? Array
61
- embedded_hash.map { |h| presenter.from_hash(h, embedded_resource) }
60
+ if Array === _embedded
61
+ _embedded.map { |h| presenter.from_hash(h, embedded_resource) }
62
62
  else
63
- presenter.from_hash(embedded_hash, embedded_resource)
63
+ presenter.from_hash(_embedded, embedded_resource)
64
64
  end
65
65
  resource.public_send(setter_method, embedded_resource)
66
66
  end
@@ -26,7 +26,7 @@ module HALPresenter
26
26
  private
27
27
 
28
28
  def init_embedded
29
- return [] unless is_a? Class
29
+ return [] unless Class === self
30
30
  return [] unless superclass.respond_to?(:embedded, true)
31
31
  superclass.embedded.each do |embed|
32
32
  embed.change_scope(self)
@@ -44,7 +44,7 @@ module HALPresenter
44
44
  private
45
45
 
46
46
  def init_links
47
- return [] unless is_a? Class
47
+ return [] unless Class === self
48
48
  return [] unless superclass.respond_to?(:links, true)
49
49
  superclass.links.each do |link|
50
50
  link.change_scope(self)
@@ -14,7 +14,7 @@ module HALPresenter
14
14
  private
15
15
 
16
16
  def init_policy
17
- return unless is_a? Class
17
+ return unless Class === self
18
18
  return unless superclass.respond_to?(:policy_class, true)
19
19
  superclass.policy_class
20
20
  end
@@ -33,7 +33,8 @@ module HALPresenter
33
33
  end
34
34
 
35
35
  def link_rule_for(rel)
36
- links[rel]
36
+ return links[rel] if links.key? rel
37
+ links[strip_curie(rel)]
37
38
  end
38
39
 
39
40
  def add_link(rel, block)
@@ -48,6 +49,10 @@ module HALPresenter
48
49
  embedded[name] = block
49
50
  end
50
51
 
52
+ def strip_curie(rel)
53
+ rel.to_s.split(':', 2)[1]&.to_sym
54
+ end
55
+
51
56
  end
52
57
 
53
58
  module ClassMethods
@@ -33,7 +33,7 @@ module HALPresenter
33
33
  private
34
34
 
35
35
  def init_post_serialize_hook
36
- return unless is_a? Class
36
+ return unless Class === self
37
37
  return unless superclass.respond_to?(:post_serialize_hook, true)
38
38
  superclass.post_serialize_hook
39
39
  end
@@ -119,7 +119,6 @@ module HALPresenter
119
119
 
120
120
  def _serialize_curies(curies, resource, policy, options)
121
121
  curies.each_with_object([]) do |curie, array|
122
- next if policy && !policy.link?(curie.name)
123
122
  href = curie.value(resource, options) or next
124
123
  array << {
125
124
  name: curie.name,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hal_presenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sammy Henningsson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  CNZdF8Vavp6xMQbPHZwqjaeZz2WRXYS7jyYSvCunjwa3OtvXtfbIEGEWE6IM+t9k
32
32
  H1g6Q+B6qk9O6g==
33
33
  -----END CERTIFICATE-----
34
- date: 2018-02-05 00:00:00.000000000 Z
34
+ date: 2018-02-15 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
metadata.gz.sig CHANGED
Binary file