omg-attrs 0.1.9 → 0.1.11

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/omg-attrs.rb +5 -3
  3. metadata +3 -7
  4. data/lib/ext/hash.rb +0 -30
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec527b64263c0a759018dd471902ee81df3686c3fda6da3c5769554ea39eeaf3
4
- data.tar.gz: d4750f055ad115c992e3541fc04d71d6e8ef53b9ad1a6c1e77ff36827fe60cfd
3
+ metadata.gz: fd0a0c0f103ba5326c18f217ab6b90a4c4b1fc7120139b8b1f21511ab6ceaa0f
4
+ data.tar.gz: ac4620f8235df9831cbf21465a249e34786e91157e9122a941b052a4692597c3
5
5
  SHA512:
6
- metadata.gz: b6fc0c96b11706b00995549d5b09382b367fccce32f238a2205783688f35d852e7d7288a572877dc6f2feeb60a66f8341f4b2797433025ef9f3aa240f60e5337
7
- data.tar.gz: a7b6a90bb6f9e55894ec84c55d5aa190c74c716c12e1882e5c482b2f1305bbaf2a6f4c8feb76d2ae19807af3d15fa40444a4110d1a091035a2445a96874d4583
6
+ metadata.gz: c66e03d6b6ecabc19db49bfbdd6fc9929576bd543001bd4919f643a569947b396ec162065995402a33ee913da91371852a5e3b2498f5349fd73f53099a389178
7
+ data.tar.gz: c5b6ddc509ef072b7cbc9b8a9c7f51a2d5afef50a18f7cb7b5d71ae468a26ff1278df0a630102d18de4602a779b081db44564a7752990f78ea7ae453991917a6
data/lib/omg-attrs.rb CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  require_relative 'ext/object'
4
4
  require_relative 'ext/array'
5
- require_relative 'ext/hash'
6
5
 
7
6
  module Attrs
8
7
  def self.included(base)
@@ -45,7 +44,7 @@ module Attrs
45
44
  end
46
45
  nested_attrs.reduce(base_attrs, :merge)
47
46
  end
48
- alias_method :oattrs, :attrs
47
+ alias oattrs attrs
49
48
 
50
49
  private
51
50
 
@@ -58,7 +57,10 @@ module Attrs
58
57
  list_attrs = list.empty? ? {} : list.to_h { |key| [key, get(key)] }
59
58
  nested_attrs = nested.empty? ? {} : { items: map { |i| i.attrs(*nested) } }
60
59
 
61
- list_attrs.merge(nested_attrs)
60
+ merged_attrs = list_attrs.merge(nested_attrs)
61
+ merged_attrs = merged_attrs[:items] if merged_attrs.keys == [:items]
62
+
63
+ merged_attrs
62
64
  end
63
65
 
64
66
  ##
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omg-attrs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Greenfield
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-05-06 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies: []
13
12
  description: |
14
13
  - Adds `Object#attrs` method for querying nested attributes
@@ -23,7 +22,6 @@ extensions: []
23
22
  extra_rdoc_files: []
24
23
  files:
25
24
  - lib/ext/array.rb
26
- - lib/ext/hash.rb
27
25
  - lib/ext/object.rb
28
26
  - lib/omg-attrs.rb
29
27
  homepage: https://github.com/omgreenfield/attrs
@@ -32,7 +30,6 @@ licenses:
32
30
  metadata:
33
31
  homepage_uri: https://github.com/omgreenfield/attrs
34
32
  rubygems_mfa_required: 'true'
35
- post_install_message:
36
33
  rdoc_options: []
37
34
  require_paths:
38
35
  - lib
@@ -47,8 +44,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
47
44
  - !ruby/object:Gem::Version
48
45
  version: '0'
49
46
  requirements: []
50
- rubygems_version: 3.4.10
51
- signing_key:
47
+ rubygems_version: 3.6.9
52
48
  specification_version: 4
53
49
  summary: Gives objects methods to query nested attributes
54
50
  test_files: []
data/lib/ext/hash.rb DELETED
@@ -1,30 +0,0 @@
1
- require_relative 'object'
2
-
3
- module Ext
4
- module Hash
5
- def method_missing(method_name, *args, &block)
6
- if key?(method_name.to_s)
7
- self.class.define_method(method_name) do
8
- self[method_name.to_s]
9
- end
10
-
11
- send(method_name)
12
- elsif key?(method_name.to_sym)
13
- self.class.define_method(method_name) do
14
- self[method_name.to_sym]
15
- end
16
-
17
- send(method_name)
18
- else
19
- super
20
- end
21
- end
22
-
23
- def respond_to_missing?(method_name, *args, &block)
24
- key?(method_name.to_s) || key?(method_name.to_sym) || super
25
- end
26
- end
27
- end
28
-
29
- Hash.include Ext::Hash
30
- Hash.include Ext::Object