polyfill-data 1.0.1 → 1.0.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: 80e9e19a876c3cbc13a20fb597baa45c3a5a17938c20b6cee2853facfbba5381
4
- data.tar.gz: 9e64aea3b7c8a184a5887645ed4755268344a417a05676b96d51a6f9e16314ca
3
+ metadata.gz: 156f764bced601a2ebf8cc7a6ee095d63a4d3f813ee3e9fe7c3b273ce68f007f
4
+ data.tar.gz: d7425307509c331ac61c33541da58effcbbb1f5b6ce675ede734b27c2acf0ed3
5
5
  SHA512:
6
- metadata.gz: 25002a3731483f15d8a2ddb33ec15a3b023fe92188b29587b4c1155a364c759dd499cd60af701169440c1666852e72959c9403ef69505febb445db71c83feab9
7
- data.tar.gz: 869b512afad6f1e9b8c0d45300ebf69a0bee3ac95cd9fa5763c171866cbde0a0f89664da53fc2a5b840beb9f15950bb686ac85d905a2b4562164c70537fbdaf5
6
+ metadata.gz: 76a56991f1759077af526ef30236fcde606cd7fdc4dd9b5264e6d3012ad02e5a27feafa2dcf6900a54cd47e25525ee221702e07f41b6178f5cbb3cb7c4c2abfc
7
+ data.tar.gz: 995d6359685044724e2fda6a31e8dab8c73cbdee97dc49034ef7c45ee39a04a3a05ab7ec3046f78705e931316e2957a0992cbe3b3a36c1fd7d43794e89ee22ca
checksums.yaml.gz.sig CHANGED
@@ -1 +1,3 @@
1
- ��ec�2�.�_��p�Vy�����3�:~���|�Ϳ�z(,;�*4}���Z�-d2Mnb5]�V���L� 2I�D�H�~]�OH�v��k]�
1
+ l7uT��3���!�(E摡 XnH��CZçBH�����谟NΗެ���dő�i��>����+�GΝC02?�N��Hn��0��l�)N`Ͽ��SX�Vd��g�?0i�-}��H^)�ɼ�S64!J����d���[8j�`�A���Pg����U�o#�ϣ��Y]0hJO��<
2
+ ���dz;��.9����kl�j��$c���L�� $Ru���,�E�;+֏¾[M��kD��Z�1���Œ��'i�.Y@�]b�� aDG�I2@�6)�3Yc
3
+ ��8'/����{�}I�,b� x���~�����?�2�2l�~ψ?I�Ib�CU�xr�&�dƕ�V�Z��� ����v$�҈9�D-a/.�fK�KoN�"�
data/CHANGELOG.md CHANGED
@@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## 1.0.2
9
+
10
+ ### Fixed
11
+
12
+ - freeze after initializing
13
+ - `to_a` removed
14
+ - `deconstruct` fixed to return array in order of members as defined
15
+
8
16
  ## 1.0.1
9
17
 
10
18
  ### Added
data/lib/data.rb CHANGED
@@ -23,18 +23,16 @@ else
23
23
  klass.define_singleton_method(:members) { args.map{ _1.intern } }
24
24
 
25
25
  klass.define_singleton_method(:new) do |*new_args, **new_kwargs, &block|
26
- arg_comparison = new_kwargs.any? ? new_kwargs.keys : new_args
27
- if arg_comparison.size != args.size
28
- raise ArgumentError
26
+
27
+ init_kwargs = if new_args.any?
28
+ Hash[members.take(new_args.size).zip(new_args)]
29
+ else
30
+ new_kwargs
29
31
  end
32
+
30
33
  self.allocate.tap do |instance|
31
- args_to_hash = if !new_kwargs.any?
32
- Hash[members.take(new_args.size).zip(new_args)]
33
- else
34
- new_kwargs
35
- end
36
- instance.send(:initialize, **args_to_hash, &block)
37
- end
34
+ instance.send(:initialize, **init_kwargs, &block)
35
+ end.freeze
38
36
  end
39
37
  class << klass
40
38
  alias_method :[], :new
@@ -57,11 +55,11 @@ else
57
55
  end
58
56
 
59
57
  def initialize(**kwargs)
60
- @attributes = kwargs
58
+ @attributes = Hash[members.map {|m| [m,kwargs[m]] }]
61
59
  end
62
60
 
63
61
  def deconstruct
64
- to_a
62
+ @attributes.values
65
63
  end
66
64
 
67
65
  def deconstruct_keys(array)
@@ -71,10 +69,6 @@ else
71
69
  @attributes.slice(*array)
72
70
  end
73
71
 
74
- def to_a
75
- @attributes.values
76
- end
77
-
78
72
  def to_h(&block)
79
73
  @attributes.to_h(&block)
80
74
  end
@@ -102,7 +96,7 @@ else
102
96
  alias_method :to_s, :inspect
103
97
 
104
98
  def with(**kwargs)
105
- self.class.new(*@attributes.merge(kwargs).values)
99
+ self.class.new(**@attributes.merge(kwargs))
106
100
  end
107
101
  end
108
102
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Polyfill
4
4
  module Data
5
- VERSION = "1.0.1"
5
+ VERSION = "1.0.2"
6
6
  end
7
7
  end
data/test/test_data.rb CHANGED
@@ -118,8 +118,10 @@ class TestData < Minitest::Test
118
118
  assert_equal({foo: 1}, test.deconstruct_keys(%i[foo baz]))
119
119
  assert_raises(TypeError) { test.deconstruct_keys(0) }
120
120
 
121
+ test = klass.new(bar: 2, foo: 1)
121
122
  assert_equal([1, 2], test.deconstruct)
122
- assert_equal([1, 2], test.to_a)
123
+
124
+ assert_predicate(test, :frozen?)
123
125
 
124
126
  assert_kind_of(Integer, test.hash)
125
127
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polyfill-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Gay
@@ -34,7 +34,7 @@ cert_chain:
34
34
  dxkiKqcX+yzo9RJLD9l/E1AWX125r1Fhiif4l6ehdl7Vllc3NQUOm1abdmHtCYjw
35
35
  dG3yPWBWzzN4ovoBRqsuTJbF1wjkCjl5ex5KhfYbeDc=
36
36
  -----END CERTIFICATE-----
37
- date: 2023-01-20 00:00:00.000000000 Z
37
+ date: 2023-01-21 00:00:00.000000000 Z
38
38
  dependencies: []
39
39
  description: Add the ruby 3.2 Data class to older rubies
40
40
  email:
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  requirements: []
79
- rubygems_version: 3.2.27
79
+ rubygems_version: 3.1.6
80
80
  signing_key:
81
81
  specification_version: 4
82
82
  summary: Add the ruby 3.2 Data class to older rubies
metadata.gz.sig CHANGED
Binary file