omg-attrs 0.1.6 → 0.1.8

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: eca39c6ab38d3b1f850b048df3a51319ad9333eae902ad3a75296fc5c3a9bba9
4
- data.tar.gz: 6003e8dcf400beee5ef7a394522278f261bc7ecfdcd63f775afc48d091f02430
3
+ metadata.gz: 2c90ddc4a5b434973f0022023cd4b3a2376001809b3b4f11767d3273850d3fa0
4
+ data.tar.gz: 8628c81c89ba6f5b9039ac9a06e4b1df1d5895f3eb29f13c60e42218c7673273
5
5
  SHA512:
6
- metadata.gz: ac9781c0f4ecaac9cf599970d86a42c5103315789029e8fd293531c84635e7c2e32006d35339745cb3f88c26e24806e6fa476aafdf3ace5c2675e53ca0c0cb91
7
- data.tar.gz: 4ec18fe4f2a54e3de8b327a3b9a6c29ad1b9dd5a5f5bc44b79223d0d886df35419b1b5e6e5fa35add790d608fa1888311557a8e6c7a80eab55f31bd6524af18f
6
+ metadata.gz: 9df6d5c9410005f4e2bb7b30cdcbc2f4fef6ab1c3a35f868edf93d35bbe6c7dd49997d30c36c2c2d065b3e8c9bcdd5a13de63b44d35ea3d27a9700b307f2e7cb
7
+ data.tar.gz: 75f3679a4bde73b52b41ab327808c3e0f544d0189de5a816ed1ece3c24b07d48834b3c8bcc0041d959c5ed047dbf399f7a3a90da29125e9433fb49ff83733d21
data/lib/ext/array.rb CHANGED
@@ -8,13 +8,13 @@ module Ext
8
8
  # @example
9
9
  # [{ a: 1 }, { b: 2 }].find_by(a: 1) => { a: 1 }
10
10
  def find_by(**attrs)
11
- find { |item| item.match?(**attrs) }
11
+ find { |item| item.matches?(**attrs) }
12
12
  end
13
13
 
14
14
  ##
15
15
  # @return [Array<Object>] all items that match all key/value pairs
16
16
  def where(**attrs)
17
- filter { |item| item.match?(**attrs) }
17
+ filter { |item| item.matches?(**attrs) }
18
18
  end
19
19
  end
20
20
  end
data/lib/ext/hash.rb CHANGED
@@ -7,19 +7,19 @@ module Ext
7
7
  self.class.define_method(method_name) do
8
8
  self[method_name.to_s]
9
9
  end
10
-
10
+
11
11
  send(method_name)
12
12
  elsif key?(method_name.to_sym)
13
13
  self.class.define_method(method_name) do
14
14
  self[method_name.to_sym]
15
15
  end
16
-
16
+
17
17
  send(method_name)
18
18
  else
19
19
  super
20
20
  end
21
21
  end
22
-
22
+
23
23
  def respond_to_missing?(method_name, *args, &block)
24
24
  key?(method_name.to_s) || key?(method_name.to_sym) || super
25
25
  end
data/lib/ext/object.rb CHANGED
@@ -2,7 +2,7 @@ module Ext
2
2
  module Object
3
3
  ##
4
4
  # @return [Boolean] whether all key/value pairs match
5
- def match?(**args)
5
+ def matches?(**args)
6
6
  args.all? do |key, value|
7
7
  key_value_match?(key, value)
8
8
  end
data/lib/omg-attrs.rb CHANGED
@@ -12,7 +12,7 @@ module Attrs
12
12
  module InstanceMethods
13
13
  def attrs(*attrs)
14
14
  return list_attrs(attrs) if is_list?
15
-
15
+
16
16
  base_attrs, nested_attrs = attrs.partition { |attr| attr.is_a?(Symbol) }
17
17
  nested_attrs.map! do |attr|
18
18
  if attr.is_a?(Hash)
@@ -25,7 +25,7 @@ module Attrs
25
25
  raise ArgumentError, "Invalid attribute: #{attr}"
26
26
  end
27
27
  end
28
-
28
+
29
29
  base_attrs = base_attrs.to_h do |attr|
30
30
  [attr, get(attr)]
31
31
  end
metadata CHANGED
@@ -1,20 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omg-attrs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Greenfield
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-07 00:00:00.000000000 Z
11
+ date: 2024-11-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  - Adds `Object#attrs` method for querying nested attributes
15
15
  - Adds `Array#where` to return a subset of elements matching a condition
16
16
  - Adds `Array#find_by` to return the first element matching a condition
17
- - Adds `Object#match?` to check if an object matches a condition
17
+ - Adds `Object#matches?` to check if an object matches a condition
18
18
  - Adds `Hash#method_missing` to allow {a: 1}.a instead of {a: 1}[:a]
19
19
  email:
20
20
  - mattgreenfield1@gmail.com
@@ -47,7 +47,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  requirements: []
50
- rubygems_version: 3.5.17
50
+ rubygems_version: 3.5.23
51
51
  signing_key:
52
52
  specification_version: 4
53
53
  summary: Gives objects methods to query nested attributes