active_object 5.2.3 → 5.2.4

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: 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