active_object 5.2.3 → 5.2.4

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: 575abd94165de31a0c3eb5b0a438abe1f12dcabb758a2f3a09993b4cdb271620
4
- data.tar.gz: b2b23d4028c6dfa606873333cbd2b94df26e9c93f6b871c08cf4bcceef755506
3
+ metadata.gz: '091c7c8b0ab9a30f12eb7ae703ad18c9b880e613d305388cae6e2335732f0715'
4
+ data.tar.gz: f1cf84ad48df350f10164757b35742422b99a07d4ce951702f19616d474d3106
5
5
  SHA512:
6
- metadata.gz: a7c017c516fad25601c3a5208892c8702edf3da7428adfe510e87becf4e1f39cd011431529bbd70f915c10cadb3258a1c41369f84c7845e8baee9ebf9891d243
7
- data.tar.gz: 0ca31f783905cf245f2113fb02c9bfec7b056c14e67864d9f9c24cb774b10c190c3244d3c38b392363e12a87e4739aca056e4c755805f417eb4446399ec60012
6
+ metadata.gz: 8a85b894e9a4da0c0948b4f858a17a72951e50fd6d07d0a73168bf01082b20b7e29022a7b8c14c81b9abdd1ac2cd701d337bf33c1fcd5281136198f4683d58dd
7
+ data.tar.gz: 19eed106559058544905f7b3e059637bc944b398f92d5e53450b646afa9b05e7e1e7d94956730f13864a4154f76615197196e131e95544e7fd3d77b475c9b5db
data/README.md CHANGED
@@ -661,6 +661,14 @@ h1.dig(:a, :b, :c) #=> :d
661
661
  { :foo => 'foo', :baz => 'baz', :bar => 'bar' }.only(:baz, :bar) #=> { :baz => 'baz', :bar => 'bar' }
662
662
  ```
663
663
 
664
+ **Only fill:**
665
+ `only_fill` and `only_fill!` returns only key/value pairs matching certain keys and any missing one.
666
+
667
+ ```ruby
668
+ {}.only(:foo) #=> { foo: nil }
669
+ { :foo => 1, baz: 2 }.only_fill(:foo, :bar, placeholder: 0) #=> { foo: 1, bar: 0 }
670
+ ```
671
+
664
672
  **Pair?:**
665
673
  `pair?` checks if the hash has a key with a matching value.
666
674
 
@@ -131,6 +131,16 @@ module ActiveObject
131
131
  replace(hash)
132
132
  end
133
133
 
134
+ def only_fill(*keys, placeholder: nil)
135
+ dup.only_fill!(*keys, placeholder: placeholder)
136
+ end
137
+
138
+ def only_fill!(*keys, placeholder: nil)
139
+ hash = {}
140
+ keys.flatten.each { |key| hash[key] = key?(key) ? self[key] : placeholder }
141
+ replace(hash)
142
+ end
143
+
134
144
  def pair?(key, value)
135
145
  self[key] == value
136
146
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveObject
4
- VERSION ||= '5.2.3'
4
+ VERSION ||= '5.2.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.3
4
+ version: 5.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-30 00:00:00.000000000 Z
11
+ date: 2018-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler