hash_kit 0.4.9 → 0.5.0

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
  SHA1:
3
- metadata.gz: be768d46e65c63b33cb450e7aca0341203202473
4
- data.tar.gz: 2daa8e55e1f8ff99c5e508031675ee8f7f8dcebc
3
+ metadata.gz: 1cda8f2f6c623b14143702e178971f8e32384fff
4
+ data.tar.gz: 31d76b84f42340ba5a626c907c53c83b24784ad2
5
5
  SHA512:
6
- metadata.gz: 3d15f3bdf2b9ad189a380ede72c7d151c877816c39adcb5a5c99235db6539b09a0093d4c55d3fefd459db19e9fbb8c3d3014ff886552b27fa6482fec30e8d796
7
- data.tar.gz: fb3ccd0d4d507eaa1bf7d5bfdc474002c8f82f2bfd0f11652f5f1f8c71d7eb107d4a33caf67900c77f264521fb29aa5133d48c65b9e41a8a8e017bec84e48c5e
6
+ metadata.gz: 8aa32033e917eba91320285f75f9dce9d2004e5a7ab1d46caa0f475b2b81856b8ec305e7c1c39c05aa8c076c45a46c540d19ec2afefe41414b4c268290501452
7
+ data.tar.gz: 130846e400f1f182492bf4a52bb2eba6dec664711948be14530427f7658999c78b21a8abcf99e43667fb994efc45f374608752484ef8e708cfa075eb17224102
@@ -1,6 +1,29 @@
1
1
  module HashKit
2
2
  class Helper
3
3
 
4
+ #This method is called to make a hash allow indifferent access (it will accept both strings & symbols for a valid key).
5
+ def indifferent!(hash)
6
+ #set the default proc to allow the key to be either string or symbol if a matching key is found.
7
+ hash.default_proc = proc do |h, k|
8
+ if h.key?(k.to_s)
9
+ h[k.to_s]
10
+ elsif h.key?(k.to_sym)
11
+ h[k.to_sym]
12
+ else
13
+ nil
14
+ end
15
+ end
16
+
17
+ #recursively process any child hashes
18
+ hash.each do |key,value|
19
+ if hash[key] != nil && hash[key].is_a?(Hash)
20
+ indifferent(hash[key])
21
+ end
22
+ end
23
+
24
+ hash
25
+ end
26
+
4
27
  #This method is called to convert all the keys of a hash into symbols to allow consistent usage of hashes within your Ruby application.
5
28
  def symbolize(hash)
6
29
  {}.tap do |h|
data/lib/hash_kit.rb CHANGED
@@ -1,3 +1,4 @@
1
1
  require 'hash_kit/transform_item'
2
2
  require 'hash_kit/helper'
3
+ require 'date'
3
4
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hash_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.9
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sage One
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-30 00:00:00.000000000 Z
11
+ date: 2017-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler