nice_hash 1.12.1 → 1.12.3

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: ebd488acd42bb66424fca139b54c4b84c3e4a99d58212e3a6fb902538dcdbd80
4
- data.tar.gz: 9376521974d65b79c906e473873e43a65b6805c4b3a86a100feeeeb223c9ac54
3
+ metadata.gz: 6c8fc89de75ddcea68d453b5a4670592a3d57b7787a51be093ba6bd9719c8ce7
4
+ data.tar.gz: f89bda34d0ec0adcb5c89e678567f2ae54746d29d1f53c95838797488c95fcaf
5
5
  SHA512:
6
- metadata.gz: 3d820527f00a6d3820005035aa49f26c0fa39d6ac5aa01180b14addb9635ccfcbb84bef70f0a7ca5d02949bfdd275a5b7c1f1ffdd2ec30cde31a442fb4187972
7
- data.tar.gz: f9e357422beff603f0065aa6626034f42fd0445309a489027e28a8d76824be1609ca43dd949bae00b94e86fe8d4c892695d760624416a50176421a9c3945d53d
6
+ metadata.gz: 7ee567360a718e195676c30b89e280acbb718e65c6c53a9bbefeba806d77e5fd99d1272a5c1e75c5e1d5f5e854e9ffc0fe71f1fde39c44a7956e3586351d5cb7
7
+ data.tar.gz: 4d1fd17c81f29f349b27fce1d43918e1fe45fa501b610987cf7ff60a8172e7712b4291b048257319024171e92279602bac9e66cd60203ca380264fd92e6e7a28
data/README.md CHANGED
@@ -168,6 +168,18 @@ puts new_hash.get_values(:address, :zip) #> {:zip=>{:default=>"00000", :correct=
168
168
  puts new_hash.get_values(:drawId) #> {:drawId=>["84914", "21158"]}
169
169
  ```
170
170
 
171
+ In case of an array of hashes, you will be able also to access the different keys, for example:
172
+
173
+ ```ruby
174
+ my_array = [{name: 'Peter', city: 'Madrid'}, {name: 'Lola', city: 'NYC'}] :
175
+
176
+ my_array.city
177
+ #> ['Madrid', 'NYC']
178
+
179
+ my_array._name
180
+ #> ['Peter', 'Lola']
181
+ ```
182
+
171
183
  ### Change all values on the keys we specified
172
184
 
173
185
  Supply a hash with all the keys and the values you want to change on the hash, then it will return the hash/array with the values modified at any level.
@@ -280,3 +280,31 @@ class Object
280
280
  self
281
281
  end
282
282
  end
283
+
284
+ class Array
285
+ ###########################################################################
286
+ # For Array of Hashes returns an array of values of the hash key specified in case doesn't exist an Array method with the same name
287
+ # The keys can be accessed also adding underscore to avoid problems with existent methods
288
+ # examples for the array of hashes [{name: 'Peter', city: 'Madrid'}, {name: 'Lola', city: 'NYC'}] :
289
+ # my_array.city
290
+ # my_array._name
291
+ ###########################################################################
292
+ def method_missing(m, *arguments, &block)
293
+ m = m[1..-1].to_sym if m[0] == "_"
294
+ array = []
295
+ no_key = true
296
+ self.map do |hash|
297
+ if hash.is_a?(Hash)
298
+ array << hash[m]
299
+ no_key = false
300
+ else
301
+ array << nil
302
+ end
303
+ end
304
+ if no_key
305
+ super(m, *arguments, &block)
306
+ else
307
+ array
308
+ end
309
+ end
310
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nice_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.1
4
+ version: 1.12.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mario Ruiz