active_object 4.0.9 → 4.0.10

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: f913e9cb5748f85f842d00bd586e9dc60cb41a52
4
- data.tar.gz: 71a75e1617ac6176e49040967eebeb32b8caecd2
3
+ metadata.gz: 17c93141bea5e77c6c2fc5d75470b6a25e0f1267
4
+ data.tar.gz: f1d6592af7b665aeb5fda0f117658b7833f15111
5
5
  SHA512:
6
- metadata.gz: 2ca504cc49a338ff400e78db2fb0571bad7cfd5bc705d2c9983d0c09e761fa2f3be54d0f84c30370d3507ebd2aa0547375bc95911edbeef9aab60a40beef8527
7
- data.tar.gz: d9cfacf2ac5a0b34cf9f75ab4efb618fc65306fc249e72b64433e47d3ccc08964ef793910e965a22cb7499d760fc654764233d258330ac707d3a4551857d6227
6
+ metadata.gz: af6305996f6718c351a9c344f698d4be362f73bd2344a0439f404599d1cca083dc05ddd1932a2a2915b21484c521556b6723970d0815f8ecda3d4be00261158b
7
+ data.tar.gz: 10b24141fe1349d0dc16d28ab60ad6cfbdf110152068fb49d4ac2162a15dc557956bd99409041827f319ec4782ffdeb0080dca2afebf9ccc68335e14178aa2e2
data/README.md CHANGED
@@ -101,6 +101,14 @@ end
101
101
  [1, 2, 3, 4].delete_values(1, 3) #=> [2, 4]
102
102
  ```
103
103
 
104
+ **Denillify:**
105
+ `denillify` and `denillify!` converts nils into a given value.
106
+
107
+ ```ruby
108
+ [nil, 3, 4].denillify #=> [0, 3, 4]
109
+ [nil, 3, 4].denillify!(9) #=> [9, 3, 4]
110
+ ```
111
+
104
112
  **Dig:**
105
113
  `dig` returns the value of a nested array.
106
114
 
@@ -150,6 +158,14 @@ end
150
158
  %w(1 2 3 4 5 6 7 8 9 10).in_groups_of(3, false) #=> [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9'], ['10']]
151
159
  ```
152
160
 
161
+ **Nillify:**
162
+ `nillify` and `nillify!` converts blank vlaues into nils.
163
+
164
+ ```ruby
165
+ [' ', 3, 4].nillify #=> [nil, 3, 4]
166
+ ['', 3, 4].nillify! #=> [nil, 3, 4]
167
+ ```
168
+
153
169
  **Percentile:**
154
170
  `percentile` returns the percentile value for a given percentage.
155
171
 
@@ -494,6 +510,14 @@ h2 = { a: false, b: { x: [3, 4, 5] } }
494
510
  h1.deep_merge(h2) #=> { a: false, b: { c: [1, 2, 3], x: [3, 4, 5] } }
495
511
  ```
496
512
 
513
+ **Denillify:**
514
+ `denillify` and `denillify!` converts nils into a given value.
515
+
516
+ ```ruby
517
+ { abc: nil, xyz: 1 }.denillify #=> { abc: 0, xyz: 1 }
518
+ { abc: nil, xyz: 1 }.denillify!(9) #=> { abc: 9, xyz: 1 }
519
+ ```
520
+
497
521
  **Dig:**
498
522
  `dig` returns the value of a nested hash.
499
523
 
@@ -34,6 +34,14 @@ module ActiveObject::Array
34
34
  result
35
35
  end
36
36
 
37
+ def denillify(value = 0)
38
+ map { |val| val.nil? ? value : val }
39
+ end
40
+
41
+ def denillify!(value = 0)
42
+ replace(denillify(value))
43
+ end
44
+
37
45
  def dig(key, *rest)
38
46
  value = (self[key] rescue nil)
39
47
 
@@ -100,6 +108,14 @@ module ActiveObject::Array
100
108
  end
101
109
  # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
102
110
 
111
+ def nillify
112
+ map { |val| !val.nil? && (val.try(:blank?) || val.try(:to_s).blank?) ? nil : val }
113
+ end
114
+
115
+ def nillify!
116
+ replace(nillify)
117
+ end
118
+
103
119
  def percentile(percentage)
104
120
  total_size = size
105
121
 
@@ -1,6 +1,6 @@
1
1
  module Enumerable
2
2
 
3
- # rubocop:disable Lint/UnusedMethodArgument, Style/YodaCondition
3
+ # rubocop:disable Lint/UnusedMethodArgument
4
4
  def cluster(&block)
5
5
  result = []
6
6
  each do |ele|
@@ -9,7 +9,7 @@ module Enumerable
9
9
  end
10
10
  result
11
11
  end
12
- # rubocop:enable Lint/UnusedMethodArgument, Style/YodaCondition
12
+ # rubocop:enable Lint/UnusedMethodArgument
13
13
 
14
14
  def difference(identity = 0, &block)
15
15
  if block_given?
@@ -64,6 +64,14 @@ module ActiveObject::Hash
64
64
  end
65
65
  # rubocop:enable Metrics/MethodLength
66
66
 
67
+ def denillify(value = 0)
68
+ each { |key, val| self[key] = val.nil? ? value : val }
69
+ end
70
+
71
+ def denillify!(value = 0)
72
+ replace(denillify(value))
73
+ end
74
+
67
75
  def dig(key, *rest)
68
76
  value = (self[key] rescue nil)
69
77
 
@@ -1,3 +1,3 @@
1
1
  module ActiveObject
2
- VERSION = '4.0.9'.freeze
2
+ VERSION = '4.0.10'.freeze
3
3
  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: 4.0.9
4
+ version: 4.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-27 00:00:00.000000000 Z
11
+ date: 2017-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-configurable