hal_presenter 0.4.3 → 0.5.0

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: 87410b9fd22646e39f88be76f6643df56f195aaa1b5301a7e68a65b750bcf90f
4
- data.tar.gz: 06f256252ca7d7db3529b5d065717fe2d382345f91c83bd68fc650bf6ed2c179
3
+ metadata.gz: 3c2260ced3e580fbed871cd6926b0d4429b8e3db3f79584bdbc5740561ef402f
4
+ data.tar.gz: f65027a7452a434c21bc266ecd862a2fce7a147a2fd7b73938fc6a577c425946
5
5
  SHA512:
6
- metadata.gz: 4314d9b1e1428bfbbd5b969cc8501f28401eef04a3ab4857dccc4a03f7fb4835efe72530f15f1c529bf0b847b9aa6894cc84ded10712e7258c6a76d2731dc2ef
7
- data.tar.gz: 295a1112d0e103bf536357d2f221191311c592fdc614bfd26b2bfbb350fa0cd7e25ff9ac3804d89ff2e22cd1b0b788e2a60d63577e8ce324b107a51fe72d125e
6
+ metadata.gz: 7fec5bb05a99d8db7439c8d84adf6803c4253d288dd7777235912a8f08b0de88639bb17e8d7fe53e3d1d78568e102422b5813c2e70e99f4a891ac4a86a296f3e
7
+ data.tar.gz: e4ce6d2d6ce31a4059b22ac7329dfb38e3324ba7b68c9e84183b5f03d8f5f779bc62114117056b96586f9c8d67c77c30928753c09d219ced9af9125a3987d529
checksums.yaml.gz.sig CHANGED
@@ -1,4 +1,2 @@
1
- i'�{
2
- }֤.�Q�ovv��:M϶��h-b,;���Kg^T5<���>�!�����lrnWEU���XPqTAu��f>��%�>��d���e6��J=�B��gj�����X��|
3
- ����)A)�r�<]���kk1p#���0��H2(4���8��Z0%�� ;����C���F
4
- ��n�\���^�3���ք�:b�J~F7�D�p���w�Vŏ���N����+Q��FbJ
1
+ (r��8��Q?YT3H����v8JG��ޭ"�zU�íӖ=��k�t٪�cI�����XyS5�6m(��V�z&ZޭE#�2���� JS�(X����b��{F=w�x��lz_s���`
2
+ ]D�|�U=�xF)L�1�2��8�g�),Qܳ#!˼ W��<������m�є
@@ -2,10 +2,10 @@ require 'hal_presenter/property'
2
2
 
3
3
  module HALPresenter
4
4
  module Attributes
5
- def attribute(*args, &block)
5
+ def attribute(*args, **kw_args, &block)
6
6
  @_attributes ||= init_attributes
7
7
  @_attributes = @_attributes.reject { |attr| attr.name == args.first }
8
- @_attributes << Property.new(*args, &block)
8
+ @_attributes << Property.new(*args, **kw_args, &block)
9
9
  end
10
10
 
11
11
  protected
@@ -3,7 +3,7 @@ require 'hal_presenter/property'
3
3
  module HALPresenter
4
4
  module Collection
5
5
 
6
- class CollectionParameters
6
+ class Properties
7
7
  include Attributes
8
8
  include Links
9
9
  include Curies
@@ -31,25 +31,25 @@ module HALPresenter
31
31
  end
32
32
 
33
33
  def collection(of:, &block)
34
- @_parameters = CollectionParameters.new(of, self, &block)
34
+ @_collection_properties = Properties.new(of, self, &block)
35
35
  end
36
36
 
37
37
  protected
38
38
 
39
- def collection_parameters
40
- @_parameters ||= init_collection_params
39
+ def collection_properties
40
+ @_collection_properties ||= init_collection_params
41
41
  end
42
42
 
43
43
  def can_serialize_collection?
44
- !collection_parameters.nil?
44
+ !collection_properties.nil?
45
45
  end
46
46
 
47
47
  private
48
48
 
49
49
  def init_collection_params
50
50
  return unless Class === self
51
- if superclass.respond_to?(:collection_parameters, true)
52
- superclass.collection_parameters
51
+ if superclass.respond_to?(:collection_properties, true)
52
+ superclass.collection_properties
53
53
  end
54
54
  end
55
55
  end
@@ -2,13 +2,13 @@ require 'hal_presenter/property'
2
2
 
3
3
  module HALPresenter
4
4
  module Curies
5
- def curie(rel, value = nil, &block)
5
+ def curie(rel, value = nil, **kw_args, &block)
6
6
  if value.nil? && !block_given?
7
7
  raise 'curie must be called with non nil value or be given a block'
8
8
  end
9
9
  @_curies ||= init_curies
10
10
  @_curies = @_curies.reject { |curie| curie.name == rel }
11
- @_curies << Property.new(rel, value, &block)
11
+ @_curies << Property.new(rel, value, **kw_args, &block)
12
12
  end
13
13
 
14
14
  protected
@@ -67,7 +67,7 @@ module HALPresenter
67
67
  end
68
68
 
69
69
  def deserialize_collection(hash, resource)
70
- hash['_embedded'][collection_parameters.name].each do |resource_hash|
70
+ hash['_embedded'][collection_properties.name].each do |resource_hash|
71
71
  resource << from_hash(resource_hash, nil)
72
72
  end
73
73
  end
@@ -75,7 +75,7 @@ module HALPresenter
75
75
  private
76
76
 
77
77
  def deserialize_as_collection?(hash)
78
- name = collection_parameters&.name
78
+ name = collection_properties&.name
79
79
  # return true/false (Hash#key? returns nil if not found..)
80
80
  name && hash['_embedded']&.key?(name) || false
81
81
  end
@@ -5,16 +5,16 @@ module HALPresenter
5
5
  class Embed < HALPresenter::Property
6
6
  attr_reader :presenter_class
7
7
 
8
- def initialize(name, value = nil, presenter_class: nil, decorator_class: nil, &block)
9
- super(name, value, &block)
10
- @presenter_class = presenter_class || decorator_class
8
+ def initialize(name, value = nil, **kw_args, &block)
9
+ @presenter_class = kw_args.delete(:presenter_class)
10
+ super(name, value, **kw_args, &block)
11
11
  end
12
12
  end
13
13
 
14
- def embed(*args, &block)
14
+ def embed(*args, **kw_args, &block)
15
15
  @_embedded ||= init_embedded
16
16
  @_embedded = @_embedded.reject { |embed| embed.name == args.first }
17
- @_embedded << Embed.new(*args, &block)
17
+ @_embedded << Embed.new(*args, **kw_args, &block)
18
18
  end
19
19
 
20
20
  protected
@@ -16,12 +16,12 @@ module HALPresenter
16
16
 
17
17
  class Link < HALPresenter::Property
18
18
  attr_reader :http_method
19
- def initialize(rel, value = nil, http_method: nil, &block)
19
+ def initialize(rel, value = nil, **kw_args, &block)
20
20
  if value.nil? && !block_given?
21
21
  raise 'link must be called with non nil value or be given a block'
22
22
  end
23
- @http_method = http_method
24
- super(rel, value, &block)
23
+ @http_method = kw_args.delete(:method) || kw_args.delete(:methods)
24
+ super(rel, value, **kw_args, &block)
25
25
  end
26
26
 
27
27
  def rel
@@ -29,10 +29,10 @@ module HALPresenter
29
29
  end
30
30
  end
31
31
 
32
- def link(rel, value = nil, method: nil, methods: nil, &block)
32
+ def link(rel, value = nil, **kw_args, &block)
33
33
  @_links ||= init_links
34
34
  @_links = @_links.reject { |link| link.rel == rel }
35
- @_links << Link.new(rel, value, http_method: method || methods, &block)
35
+ @_links << Link.new(rel, value, **kw_args, &block)
36
36
  end
37
37
 
38
38
  protected
@@ -1,12 +1,13 @@
1
1
  module HALPresenter
2
2
  class Property
3
- attr_reader :name, :resource, :options
3
+ attr_reader :name, :resource, :embed_depth, :options
4
4
 
5
5
  alias :resources :resource
6
6
 
7
- def initialize(name, value = nil, &block)
7
+ def initialize(name, value = nil, embed_depth: nil, &block)
8
8
  @name = name
9
9
  @value = value
10
+ @embed_depth = embed_depth
10
11
  @scope = nil
11
12
  return unless block_given?
12
13
  @scope = eval 'self', block.binding
@@ -24,6 +24,7 @@ module HALPresenter
24
24
  class Error < StandardError; end
25
25
 
26
26
  def to_hal(resource = nil, options = {})
27
+ options[:_depth] ||= 0
27
28
  hash = to_hash(resource, options)
28
29
  JSON.generate(hash)
29
30
  end
@@ -35,6 +36,7 @@ module HALPresenter
35
36
  "Add a 'collection' spec to the serializer or use another serializer"
36
37
  end
37
38
  options[:paginate] = HALPresenter.paginate unless options.key? :paginate
39
+ options[:_depth] ||= 0
38
40
  hash = to_collection_hash(resources, options)
39
41
  JSON.generate(hash)
40
42
  end
@@ -42,8 +44,7 @@ module HALPresenter
42
44
  protected
43
45
 
44
46
  def to_hash(resource, options)
45
- policy = policy_class&.new(options[:current_user], resource, options)
46
-
47
+ policy = policy_for(resource, options)
47
48
  {}.tap do |serialized|
48
49
  serialized.merge! serialize_attributes(resource, policy, options)
49
50
  serialized.merge! serialize_links(resource, policy, options)
@@ -54,22 +55,24 @@ module HALPresenter
54
55
  end
55
56
 
56
57
  def to_collection_hash(resources, options)
57
- policy = policy_class&.new(options[:current_user], nil, options)
58
- parameters = collection_parameters
59
- links = parameters.links
60
- curies = parameters.curies
58
+ policy = policy_for(nil, options)
59
+ properties = collection_properties
60
+ attributes = properties.attributes
61
+ links = properties.links
62
+ curies = properties.curies
63
+ embedded = properties.embedded
61
64
  {}.tap do |serialized|
62
- serialized.merge! _serialize_attributes(parameters.attributes, resources, policy, options)
65
+ serialized.merge! _serialize_attributes(attributes, resources, policy, options)
63
66
  serialized.merge! _serialize_links(links, curies, resources, policy, options)
64
67
  Pagination.paginate!(serialized, resources) if options[:paginate]
65
68
 
66
69
  # Embedded from collection block
67
- embedded = _serialize_embedded(parameters.embedded, resources, policy, options)
70
+ embedded = _serialize_embedded(embedded, resources, policy, options)
68
71
  serialized[:_embedded] = embedded[:_embedded] || {}
69
72
 
70
73
  # Embedded resources
71
74
  serialized_resources = resources.map { |resource| to_hash(resource, options) }
72
- serialized[:_embedded].merge!({parameters.name => serialized_resources })
75
+ serialized[:_embedded].merge!({properties.name => serialized_resources })
73
76
  end
74
77
  end
75
78
 
@@ -98,6 +101,7 @@ module HALPresenter
98
101
 
99
102
  def _serialize_attributes(attributes, resource, policy, options)
100
103
  attributes.each_with_object({}) do |attribute, hash|
104
+ next unless nested_depth_ok?(attribute, options[:_depth])
101
105
  next if policy && !policy.attribute?(attribute.name)
102
106
  hash[attribute.name] = attribute.value(resource, options)
103
107
  end
@@ -105,6 +109,7 @@ module HALPresenter
105
109
 
106
110
  def _serialize_links(links, curies, resource, policy, options)
107
111
  serialized = links.each_with_object({}) do |link, hash|
112
+ next unless nested_depth_ok?(link, options[:_depth])
108
113
  next if policy && !policy.link?(link.rel)
109
114
  href = link.value(resource, options) or next
110
115
  hash[link.rel] = { href: HALPresenter.href(href) }.tap do |s|
@@ -119,6 +124,7 @@ module HALPresenter
119
124
 
120
125
  def _serialize_curies(curies, resource, policy, options)
121
126
  curies.each_with_object([]) do |curie, array|
127
+ next unless nested_depth_ok?(curie, options[:_depth])
122
128
  href = curie.value(resource, options) or next
123
129
  array << {
124
130
  name: curie.name,
@@ -130,11 +136,13 @@ module HALPresenter
130
136
 
131
137
  def _serialize_embedded(embedded, object, policy, options)
132
138
  serialized = embedded.each_with_object({}) do |embed, hash|
139
+ next unless nested_depth_ok?(embed, options[:_depth])
133
140
  next if policy && !policy.embed?(embed.name)
134
141
  resource = embed.value(object, options) or next
135
142
  presenter = embed.presenter_class
143
+ options[:_depth] += 1
136
144
  hash[embed.name] =
137
- if resource.respond_to? :each
145
+ if resource.is_a? Array
138
146
  _serialize_embedded_collection(resource, presenter, options)
139
147
  else
140
148
  presenter ||= HALPresenter.lookup_presenter(resource).first
@@ -152,8 +160,7 @@ module HALPresenter
152
160
  raise Serializer::Error,
153
161
  "No presenter specified to handle serializing embedded #{clazz}"
154
162
  end
155
- if presenter.respond_to?(:can_serialize_collection?, true) &&
156
- presenter.can_serialize_collection?
163
+ if presenter.can_serialize_collection?
157
164
  presenter.to_collection_hash(resources, options)
158
165
  else
159
166
  resources.map do |resrc|
@@ -161,6 +168,15 @@ module HALPresenter
161
168
  end
162
169
  end
163
170
  end
171
+
172
+ def policy_for(resource, options)
173
+ policy = policy_class&.new(options[:current_user], resource, options)
174
+ end
175
+
176
+ def nested_depth_ok?(property, level)
177
+ return true unless embed_depth = property.embed_depth
178
+ level <= embed_depth
179
+ end
164
180
  end
165
181
  end
166
182
 
data/lib/hal_presenter.rb CHANGED
@@ -22,12 +22,3 @@ module HALPresenter
22
22
  include HALPresenter::Deserializer
23
23
  include HALPresenter::Policy
24
24
  end
25
-
26
- # Keeping this module for backward compatibility!
27
- module HALDecorator
28
- include HALPresenter
29
-
30
- def self.method_missing(m, *args, &block)
31
- HALPresenter.send(m, *args, &block)
32
- end
33
- end
data.tar.gz.sig CHANGED
Binary file
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.3
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sammy Henningsson
@@ -10,107 +10,106 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRowGAYDVQQDDBFzYW1t
14
- eS5oZW5uaW5nc3NvbjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
15
- LGQBGRYDY29tMB4XDTE3MDcwODE0MDUxOVoXDTE4MDcwODE0MDUxOVowSDEaMBgG
16
- A1UEAwwRc2FtbXkuaGVubmluZ3Nzb24xFTATBgoJkiaJk/IsZAEZFgVnbWFpbDET
17
- MBEGCgmSJomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAK+SDC1mfyhucJ6Va21rIHUGscEtQrdvyBqxFG1s2TgPMAv4RbqwdJVPa7kj
19
- tbCzslADlUE1oru2C+rcJsMtVGX02ukMIPHT1OjTyy0/EMqLqSy3WeRI8APyDSxC
20
- Vbe+h5BMf3zZnYfddR6AeG7ln09T1P/tX+9lTMc+I+DW1fUlQgY48CNUayvtJR61
21
- svXvXMrhLhi29SQig1qmH6Zoe22/JgH+m2JksPndY5Ep3gqfDc6Imwu2vGvmGErJ
22
- D63FB0XQ/wb4WVH4l7sHQSTfKDp8SImCt1xqNgIyjw578ZG2geGLoncuxgDrbQ/U
23
- FIJ11lDZd4vLevMhnIxTSJpPr2cCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUukjj1Cd2ea6IOHDLZe0ymzs2jWkwJgYDVR0RBB8w
25
- HYEbc2FtbXkuaGVubmluZ3Nzb25AZ21haWwuY29tMCYGA1UdEgQfMB2BG3NhbW15
26
- Lmhlbm5pbmdzc29uQGdtYWlsLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAGBReofO0
27
- CDGI8uQNn/btde+zQBiCX0mONJMQ6An760MzOHMlWFi6VaVeeKmYj5xCpI2nWaJN
28
- 49ALW/v7GZ+JIW5YmbzWIuD8YfwHJYCFPoH0llzg3GCFCMxbYqI3nDtHX3dMxpOc
29
- 01A72okERe0ne/O5Z4Ym/fOECkyXr0fYondhDQcSuqxU22jsXs1ZjISN8IuHmVkA
30
- GtGteOIqmA05lP+eCXGvyARGLg1GwZDTjnlH5OfpiT1Oy7Dghewi58Gn4/AlZ4bY
31
- CNZdF8Vavp6xMQbPHZwqjaeZz2WRXYS7jyYSvCunjwa3OtvXtfbIEGEWE6IM+t9k
32
- H1g6Q+B6qk9O6g==
13
+ MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFzYW1t
14
+ eS5oZW5uaW5nc3Nvbi9EQz1nbWFpbC9EQz1jb20wHhcNMTgwNzE2MTYzNTMzWhcN
15
+ MjAwNzE2MTYzNTMzWjAsMSowKAYDVQQDDCFzYW1teS5oZW5uaW5nc3Nvbi9EQz1n
16
+ bWFpbC9EQz1jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvkgwt
17
+ Zn8obnCelWttayB1BrHBLUK3b8gasRRtbNk4DzAL+EW6sHSVT2u5I7Wws7JQA5VB
18
+ NaK7tgvq3CbDLVRl9NrpDCDx09To08stPxDKi6kst1nkSPAD8g0sQlW3voeQTH98
19
+ 2Z2H3XUegHhu5Z9PU9T/7V/vZUzHPiPg1tX1JUIGOPAjVGsr7SUetbL171zK4S4Y
20
+ tvUkIoNaph+maHttvyYB/ptiZLD53WORKd4Knw3OiJsLtrxr5hhKyQ+txQdF0P8G
21
+ +FlR+Je7B0Ek3yg6fEiJgrdcajYCMo8Oe/GRtoHhi6J3LsYA620P1BSCddZQ2XeL
22
+ y3rzIZyMU0iaT69nAgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
+ HQYDVR0OBBYEFLpI49QndnmuiDhwy2XtMps7No1pMCYGA1UdEQQfMB2BG3NhbW15
24
+ Lmhlbm5pbmdzc29uQGdtYWlsLmNvbTAmBgNVHRIEHzAdgRtzYW1teS5oZW5uaW5n
25
+ c3NvbkBnbWFpbC5jb20wDQYJKoZIhvcNAQELBQADggEBAFJZqH6sgeiTLvMLpxaK
26
+ K1GaYSCyZbMutf5C3tIAgkmU5UD6B8R0bw6gTM1deM5NJ60LjzqY7rlK3YKDIbTn
27
+ iXMCe9vd4yE/jb5Zi8Wk//9n8CMG68dQpBvmcQ58/M4gTtgsx+lIgXuI5dPQMmRi
28
+ bhWQqqWqxT9X6njjfXFk4xn3z6mfFQNPAYqRVeTHUpXBQZPt+bYXRwHPFZGWkx4l
29
+ BnuuhYKt3CR7YIgvnsQWlTAcU1Ipdayj6UfYqUtlc6cF3CL96NOx7mgZXV8URFiX
30
+ ZMhjYR7sRczGJx+GxGU2EaR0bjRsPVlC4ywtFxoOfRG3WaJcpWGEoAoMJX6Z0bRv
31
+ M40=
33
32
  -----END CERTIFICATE-----
34
- date: 2018-02-16 00:00:00.000000000 Z
33
+ date: 2019-01-03 00:00:00.000000000 Z
35
34
  dependencies:
36
35
  - !ruby/object:Gem::Dependency
37
36
  name: rake
38
37
  requirement: !ruby/object:Gem::Requirement
39
38
  requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '12.0'
43
39
  - - ">="
44
40
  - !ruby/object:Gem::Version
45
41
  version: '10.0'
42
+ - - "~>"
43
+ - !ruby/object:Gem::Version
44
+ version: '12.0'
46
45
  type: :development
47
46
  prerelease: false
48
47
  version_requirements: !ruby/object:Gem::Requirement
49
48
  requirements:
50
- - - "~>"
51
- - !ruby/object:Gem::Version
52
- version: '12.0'
53
49
  - - ">="
54
50
  - !ruby/object:Gem::Version
55
51
  version: '10.0'
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '12.0'
56
55
  - !ruby/object:Gem::Dependency
57
56
  name: activesupport
58
57
  requirement: !ruby/object:Gem::Requirement
59
58
  requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '5.0'
63
59
  - - ">="
64
60
  - !ruby/object:Gem::Version
65
61
  version: '4.0'
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: '5.0'
66
65
  type: :development
67
66
  prerelease: false
68
67
  version_requirements: !ruby/object:Gem::Requirement
69
68
  requirements:
70
- - - "~>"
71
- - !ruby/object:Gem::Version
72
- version: '5.0'
73
69
  - - ">="
74
70
  - !ruby/object:Gem::Version
75
71
  version: '4.0'
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '5.0'
76
75
  - !ruby/object:Gem::Dependency
77
76
  name: minitest
78
77
  requirement: !ruby/object:Gem::Requirement
79
78
  requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '5.10'
83
79
  - - ">="
84
80
  - !ruby/object:Gem::Version
85
81
  version: '5.0'
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '5.10'
86
85
  type: :development
87
86
  prerelease: false
88
87
  version_requirements: !ruby/object:Gem::Requirement
89
88
  requirements:
90
- - - "~>"
91
- - !ruby/object:Gem::Version
92
- version: '5.10'
93
89
  - - ">="
94
90
  - !ruby/object:Gem::Version
95
91
  version: '5.0'
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '5.10'
96
95
  - !ruby/object:Gem::Dependency
97
96
  name: byebug
98
97
  requirement: !ruby/object:Gem::Requirement
99
98
  requirements:
100
- - - "~>"
99
+ - - ">="
101
100
  - !ruby/object:Gem::Version
102
101
  version: '9.0'
103
- - - ">="
102
+ - - "~>"
104
103
  - !ruby/object:Gem::Version
105
104
  version: '9.0'
106
105
  type: :development
107
106
  prerelease: false
108
107
  version_requirements: !ruby/object:Gem::Requirement
109
108
  requirements:
110
- - - "~>"
109
+ - - ">="
111
110
  - !ruby/object:Gem::Version
112
111
  version: '9.0'
113
- - - ">="
112
+ - - "~>"
114
113
  - !ruby/object:Gem::Version
115
114
  version: '9.0'
116
115
  - !ruby/object:Gem::Dependency
@@ -194,8 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
194
193
  - !ruby/object:Gem::Version
195
194
  version: '0'
196
195
  requirements: []
197
- rubyforge_project:
198
- rubygems_version: 2.7.3
196
+ rubygems_version: 3.0.1
199
197
  signing_key:
200
198
  specification_version: 4
201
199
  summary: JSON HAL serializer
metadata.gz.sig CHANGED
Binary file