hal_presenter 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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