alba 2.4.2 → 2.4.3

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: e96e153192419f36d10cdd2377720a4d818bd935e8b4d7364e0272f460f74c30
4
- data.tar.gz: 2ca78d61d8e01c1655f294f1836c386bb561db3fca45e964bd3c2b0023912b03
3
+ metadata.gz: 1d24d6ad9ef1b576685afb22e3f3c2033555afa358516204b42a31b11080d52b
4
+ data.tar.gz: 20cc1cb31b6cdfbb73ec87421d828ad274e4863e9156e0d22acb71d99ff0388b
5
5
  SHA512:
6
- metadata.gz: 45c70af557b2fcb5ec1e8e7d2269fa6639e086d506b5b8706361a208c24a436ce61807d5d6466accfc516c4f1e556d23a3535236ed2d9047f3c72491702028bb
7
- data.tar.gz: 148818585445adde1fa4f992df975400863856e227e12fe706f241523a06901e34d099511d13ae5fff4cbd5a9ea29c659551034ffb188bc1cc3d519c72e2a88e
6
+ metadata.gz: fbc694ec856084b9e008a9996b38aa52ae138cfc136c414002cdf375764501fc7ab37a1b72e433f743cddffa394e963e51070014954c273e7b02d8dfa894582a
7
+ data.tar.gz: 4dc0354d7b318a7f087bdcf4c9d32d5a6a2d956c5aea4783cdefbb587ab4e502b3f6d6e1becda772065978f64b9c463b69f7a41a8e1cab2f00e56ad1305f4036
data/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [2.4.3] 2024-10-31
10
+
11
+ ### Fixed
12
+
13
+ - Resource method is those explicitly defined only [27996a04598c57943e184ee34224a2cee9bf2e9d]
14
+
9
15
  ## [2.4.2] 2023-10-11
10
16
 
11
17
  ### Fixed
data/lib/alba/resource.rb CHANGED
@@ -11,7 +11,7 @@ module Alba
11
11
  module Resource
12
12
  # @!parse include InstanceMethods
13
13
  # @!parse extend ClassMethods
14
- DSLS = {_attributes: {}, _key: nil, _key_for_collection: nil, _meta: nil, _transform_type: :none, _transforming_root_key: false, _key_transformation_cascade: true, _on_error: nil, _on_nil: nil, _layout: nil, _collection_key: nil, _helper: nil}.freeze # rubocop:disable Layout/LineLength
14
+ DSLS = {_attributes: {}, _key: nil, _key_for_collection: nil, _meta: nil, _transform_type: :none, _transforming_root_key: false, _key_transformation_cascade: true, _on_error: nil, _on_nil: nil, _layout: nil, _collection_key: nil, _helper: nil, _resource_methods: []}.freeze # rubocop:disable Layout/LineLength
15
15
  private_constant :DSLS
16
16
 
17
17
  WITHIN_DEFAULT = Object.new.freeze
@@ -277,9 +277,15 @@ module Alba
277
277
  end
278
278
 
279
279
  def _fetch_attribute_from_resource_first(obj, attribute)
280
- __send__(attribute, obj)
281
- rescue NoMethodError
282
- obj.__send__(attribute)
280
+ if @_resource_methods.include?(attribute)
281
+ begin
282
+ __send__(attribute, obj)
283
+ rescue NoMethodError
284
+ obj.__send__(attribute)
285
+ end
286
+ else
287
+ obj.__send__(attribute)
288
+ end
283
289
  end
284
290
 
285
291
  def nil_handler
@@ -314,6 +320,12 @@ module Alba
314
320
  module ClassMethods
315
321
  attr_reader(*DSLS.keys)
316
322
 
323
+ # This `method_added` is used for defining "resource methods"
324
+ def method_added(method_name)
325
+ _resource_methods << method_name.to_sym unless method_name.to_sym == :_setup
326
+ super
327
+ end
328
+
317
329
  # @private
318
330
  def inherited(subclass)
319
331
  super
data/lib/alba/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Alba
2
- VERSION = '2.4.2'.freeze
2
+ VERSION = '2.4.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alba
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.2
4
+ version: 2.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - OKURA Masafumi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-11 00:00:00.000000000 Z
11
+ date: 2024-10-31 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Alba is the fastest JSON serializer for Ruby. It focuses on performance,
14
14
  flexibility and usability.
@@ -92,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
94
  requirements: []
95
- rubygems_version: 3.4.14
95
+ rubygems_version: 3.1.6
96
96
  signing_key:
97
97
  specification_version: 4
98
98
  summary: Alba is the fastest JSON serializer for Ruby.