better_dig 0.6.0 → 0.7.0
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 +5 -5
- data/.gitignore +2 -0
- data/README.md +5 -3
- data/lib/better_dig/version.rb +1 -1
- data/lib/better_dig.rb +9 -2
- metadata +3 -4
- data/Gemfile.lock +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e24cd1db4400522310ec43dbfa379c1fff02eee2
|
4
|
+
data.tar.gz: ef9826d4bdca37b4a370a02658fe16971dfc8bf2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a93d0aa1922dc1ed263c5458d174abd9eddc15a90e7e0239282f494f49cf008ccbd6ef5b5d1ba299c2551e1cf1f4aacd88430f8569ed3927027958e9ed31c6c
|
7
|
+
data.tar.gz: ce07c8ddc687bb282586b05e596d09174694052fe1395547303b9ceea7e5b2f79839d1684ef5502abedc1deaf460f3ec4f2a3429745c1e9d854443dac98c8ed5
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
[](https://badge.fury.io/rb/better_dig)
|
2
|
-
[](https://rubygems.org/gems/better_dig)
|
3
2
|
[](https://codeclimate.com/github/berniechiu/better_dig/maintainability)
|
4
3
|
[](https://codeclimate.com/github/berniechiu/better_dig/test_coverage)
|
5
4
|
[](https://travis-ci.org/berniechiu/better_dig)
|
@@ -8,6 +7,8 @@
|
|
8
7
|
|
9
8
|
Another kind of hash/array lookup you'll like
|
10
9
|
|
10
|
+
Supports dig-like method for Ruby below `2,3`
|
11
|
+
|
11
12
|
## Table of Context
|
12
13
|
|
13
14
|
* [Installation](#installation)
|
@@ -36,7 +37,7 @@ Or install it yourself as:
|
|
36
37
|
Basic Examples
|
37
38
|
|
38
39
|
```ruby
|
39
|
-
hash = { hello: 'world', nested: { hello: 'world' }, nested_array: ['hello', 'world'] }
|
40
|
+
hash = { hello: 'world', nested: { hello: 'world' }, nested_array: ['hello', 'world'], is_cool: true }
|
40
41
|
|
41
42
|
# Fetch by digg
|
42
43
|
hash.digg(:hello) #=> 'world'
|
@@ -50,7 +51,8 @@ hash.digg(:hello, 0, :not_found) #=> nil
|
|
50
51
|
hash.fetch_path('nested/hello') #=> 'world'
|
51
52
|
hash.fetch_path('nested_array/0') #=> 'hello'
|
52
53
|
hash.fetch_path('nested.hello', delimeter: '.') #=> 'hello'
|
53
|
-
hash.fetch_path('nested/hello/none', default: 'zh-tw.not_found')
|
54
|
+
hash.fetch_path('nested/hello/none', default: 'zh-tw.not_found') #=> 'zh-tw.not_found'
|
55
|
+
hash.fetch_path('is_cool') #=> true
|
54
56
|
|
55
57
|
# Since `nil` will be returned for not found value instead of TypeError if we are digging too far
|
56
58
|
# we can use conditional block without breaking the application
|
data/lib/better_dig/version.rb
CHANGED
data/lib/better_dig.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
require "better_dig/version"
|
2
3
|
|
3
4
|
module BetterDig
|
@@ -13,7 +14,10 @@ module BetterDig
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def fetch_path(path, default: nil, delimeter: '/')
|
16
|
-
digg(*path.split(delimeter))
|
17
|
+
digg(*path.split(delimeter)).tap do |value|
|
18
|
+
return default if value.nil?
|
19
|
+
return value
|
20
|
+
end
|
17
21
|
end
|
18
22
|
|
19
23
|
private
|
@@ -27,7 +31,10 @@ module BetterDig
|
|
27
31
|
end
|
28
32
|
|
29
33
|
def find_indifferent_value_by(key)
|
30
|
-
self[key]
|
34
|
+
self[key.freeze].tap do |value|
|
35
|
+
return value unless value.nil?
|
36
|
+
return self[key.send(INDIFFERENT_FIND[key.class])]
|
37
|
+
end
|
31
38
|
end
|
32
39
|
end
|
33
40
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: better_dig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bernie Chiu
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -62,7 +62,6 @@ files:
|
|
62
62
|
- ".gitignore"
|
63
63
|
- ".travis.yml"
|
64
64
|
- Gemfile
|
65
|
-
- Gemfile.lock
|
66
65
|
- LICENSE.txt
|
67
66
|
- README.md
|
68
67
|
- Rakefile
|
@@ -92,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
91
|
version: '0'
|
93
92
|
requirements: []
|
94
93
|
rubyforge_project:
|
95
|
-
rubygems_version: 2.
|
94
|
+
rubygems_version: 2.6.14.1
|
96
95
|
signing_key:
|
97
96
|
specification_version: 4
|
98
97
|
summary: Dig-like method for indifferent access of nested data lookup.
|
data/Gemfile.lock
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
better_dig (0.6.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
docile (1.1.5)
|
10
|
-
json (2.1.0)
|
11
|
-
minitest (5.11.3)
|
12
|
-
rake (10.5.0)
|
13
|
-
simplecov (0.15.1)
|
14
|
-
docile (~> 1.1.0)
|
15
|
-
json (>= 1.8, < 3)
|
16
|
-
simplecov-html (~> 0.10.0)
|
17
|
-
simplecov-html (0.10.2)
|
18
|
-
|
19
|
-
PLATFORMS
|
20
|
-
ruby
|
21
|
-
|
22
|
-
DEPENDENCIES
|
23
|
-
better_dig!
|
24
|
-
bundler (~> 1.16)
|
25
|
-
minitest (~> 5.0)
|
26
|
-
rake (~> 10.0)
|
27
|
-
simplecov (~> 0.15.1)
|
28
|
-
|
29
|
-
BUNDLED WITH
|
30
|
-
1.16.1
|