lite-ruby 1.1.6 → 1.1.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +30 -0
- data/Gemfile.lock +33 -33
- data/docs/ARRAY.md +44 -1
- data/docs/ENUMERABLE.md +13 -0
- data/docs/OPEN_STRUCT.md +0 -20
- data/docs/STRING.md +3 -3
- data/docs/STRUCT.md +1 -0
- data/lib/lite/ruby/array.rb +18 -2
- data/lib/lite/ruby/enumerable.rb +4 -8
- data/lib/lite/ruby/hash.rb +2 -4
- data/lib/lite/ruby/integer.rb +6 -2
- data/lib/lite/ruby/object.rb +2 -2
- data/lib/lite/ruby/open_struct.rb +10 -13
- data/lib/lite/ruby/range.rb +2 -2
- data/lib/lite/ruby/safe/array.rb +3 -0
- data/lib/lite/ruby/safe/enumerable.rb +12 -1
- data/lib/lite/ruby/string.rb +2 -2
- data/lib/lite/ruby/struct.rb +1 -1
- data/lib/lite/ruby/version.rb +1 -1
- data/lite-ruby.gemspec +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a92f3d32861300bef85bf4b02207793096b41e581066440008b4e57ef656508
|
4
|
+
data.tar.gz: 862d2c9b4859df92bc14e5814a7e770e6ac52eda4f28233ee77d18892b4d00cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f3e0689339147e45fd7841ff7bec40bf0a51b680d41460ea5bd437f171647e18ffe2c7781b94a492f4b35b17ced3258d8eef1652ecbf99d5dcecf3716bb1c75
|
7
|
+
data.tar.gz: f42eec3a17ea8816f1f8c9ad27477419e93f07906f1058f1e3c5cec4805bfa95744f1d84770447536953dc6fe94f1b51cf85faa2a2b324a33799e1def1fab293
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [1.1.11] - 2021-07-04
|
10
|
+
### Added
|
11
|
+
- Added Array => `contains_all?`
|
12
|
+
- Added Array => `contains_any?`
|
13
|
+
- Added Array => `contains_none?`
|
14
|
+
|
15
|
+
## [1.1.10] - 2021-06-21
|
16
|
+
### Changed
|
17
|
+
- Struct `[]` to be accessible via `attributes`
|
18
|
+
### Removed
|
19
|
+
- OpenStruct `[]` and `[]=` existing methods
|
20
|
+
|
21
|
+
## [1.1.9] - 2021-05-26
|
22
|
+
### Added
|
23
|
+
- Added Array => `match`
|
24
|
+
- Added Array => `strip` to `compact_blank` alias
|
25
|
+
- Added Enumerable => `pick`
|
26
|
+
### Changed
|
27
|
+
- Move safe requires to bottom of file
|
28
|
+
|
29
|
+
## [1.1.8] - 2021-07-05
|
30
|
+
### Changed
|
31
|
+
- Linter fixes
|
32
|
+
|
33
|
+
## [1.1.7] - 2021-03-04
|
34
|
+
### Added
|
35
|
+
- Added Integer => `SQL_SMALLINT`
|
36
|
+
- Added Integer => `SQL_INTEGER`
|
37
|
+
- Added Integer => `SQL_BIGINT`
|
38
|
+
|
9
39
|
## [1.1.6] - 2021-02-17
|
10
40
|
### Added
|
11
41
|
- Added Time => `monotonic`
|
data/Gemfile.lock
CHANGED
@@ -1,25 +1,25 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
lite-ruby (1.1.
|
4
|
+
lite-ruby (1.1.11)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
actionpack (6.1.
|
10
|
-
actionview (= 6.1.
|
11
|
-
activesupport (= 6.1.
|
9
|
+
actionpack (6.1.4)
|
10
|
+
actionview (= 6.1.4)
|
11
|
+
activesupport (= 6.1.4)
|
12
12
|
rack (~> 2.0, >= 2.0.9)
|
13
13
|
rack-test (>= 0.6.3)
|
14
14
|
rails-dom-testing (~> 2.0)
|
15
15
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
16
|
-
actionview (6.1.
|
17
|
-
activesupport (= 6.1.
|
16
|
+
actionview (6.1.4)
|
17
|
+
activesupport (= 6.1.4)
|
18
18
|
builder (~> 3.1)
|
19
19
|
erubi (~> 1.4)
|
20
20
|
rails-dom-testing (~> 2.0)
|
21
21
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
22
|
-
activesupport (6.1.
|
22
|
+
activesupport (6.1.4)
|
23
23
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
24
24
|
i18n (>= 1.6, < 2)
|
25
25
|
minitest (>= 5.1)
|
@@ -28,7 +28,7 @@ GEM
|
|
28
28
|
ast (2.4.2)
|
29
29
|
builder (3.2.4)
|
30
30
|
colorize (0.8.1)
|
31
|
-
concurrent-ruby (1.1.
|
31
|
+
concurrent-ruby (1.1.9)
|
32
32
|
crass (1.0.6)
|
33
33
|
diff-lcs (1.4.4)
|
34
34
|
erubi (1.10.0)
|
@@ -38,19 +38,19 @@ GEM
|
|
38
38
|
generator_spec (0.9.4)
|
39
39
|
activesupport (>= 3.0.0)
|
40
40
|
railties (>= 3.0.0)
|
41
|
-
i18n (1.8.
|
41
|
+
i18n (1.8.10)
|
42
42
|
concurrent-ruby (~> 1.0)
|
43
|
-
loofah (2.
|
43
|
+
loofah (2.10.0)
|
44
44
|
crass (~> 1.0.2)
|
45
45
|
nokogiri (>= 1.5.9)
|
46
46
|
method_source (1.0.0)
|
47
|
-
mini_portile2 (2.5.
|
48
|
-
minitest (5.14.
|
49
|
-
nokogiri (1.11.
|
47
|
+
mini_portile2 (2.5.3)
|
48
|
+
minitest (5.14.4)
|
49
|
+
nokogiri (1.11.7)
|
50
50
|
mini_portile2 (~> 2.5.0)
|
51
51
|
racc (~> 1.4)
|
52
52
|
parallel (1.20.1)
|
53
|
-
parser (3.0.
|
53
|
+
parser (3.0.1.1)
|
54
54
|
ast (~> 2.4.1)
|
55
55
|
racc (1.5.2)
|
56
56
|
rack (2.2.3)
|
@@ -61,16 +61,16 @@ GEM
|
|
61
61
|
nokogiri (>= 1.6)
|
62
62
|
rails-html-sanitizer (1.3.0)
|
63
63
|
loofah (~> 2.3)
|
64
|
-
railties (6.1.
|
65
|
-
actionpack (= 6.1.
|
66
|
-
activesupport (= 6.1.
|
64
|
+
railties (6.1.4)
|
65
|
+
actionpack (= 6.1.4)
|
66
|
+
activesupport (= 6.1.4)
|
67
67
|
method_source
|
68
|
-
rake (>= 0.
|
68
|
+
rake (>= 0.13)
|
69
69
|
thor (~> 1.0)
|
70
70
|
rainbow (3.0.0)
|
71
71
|
rake (13.0.3)
|
72
|
-
regexp_parser (2.
|
73
|
-
rexml (3.2.
|
72
|
+
regexp_parser (2.1.1)
|
73
|
+
rexml (3.2.5)
|
74
74
|
rspec (3.10.0)
|
75
75
|
rspec-core (~> 3.10.0)
|
76
76
|
rspec-expectations (~> 3.10.0)
|
@@ -84,29 +84,29 @@ GEM
|
|
84
84
|
diff-lcs (>= 1.2.0, < 2.0)
|
85
85
|
rspec-support (~> 3.10.0)
|
86
86
|
rspec-support (3.10.2)
|
87
|
-
rubocop (1.
|
87
|
+
rubocop (1.18.2)
|
88
88
|
parallel (~> 1.10)
|
89
89
|
parser (>= 3.0.0.0)
|
90
90
|
rainbow (>= 2.2.2, < 4.0)
|
91
91
|
regexp_parser (>= 1.8, < 3.0)
|
92
92
|
rexml
|
93
|
-
rubocop-ast (>= 1.
|
93
|
+
rubocop-ast (>= 1.7.0, < 2.0)
|
94
94
|
ruby-progressbar (~> 1.7)
|
95
95
|
unicode-display_width (>= 1.4.0, < 3.0)
|
96
|
-
rubocop-ast (1.
|
97
|
-
parser (>=
|
98
|
-
rubocop-performance (1.
|
99
|
-
rubocop (>=
|
96
|
+
rubocop-ast (1.7.0)
|
97
|
+
parser (>= 3.0.1.1)
|
98
|
+
rubocop-performance (1.11.3)
|
99
|
+
rubocop (>= 1.7.0, < 2.0)
|
100
100
|
rubocop-ast (>= 0.4.0)
|
101
|
-
rubocop-rake (0.
|
102
|
-
rubocop
|
103
|
-
rubocop-rspec (2.
|
101
|
+
rubocop-rake (0.6.0)
|
102
|
+
rubocop (~> 1.0)
|
103
|
+
rubocop-rspec (2.4.0)
|
104
104
|
rubocop (~> 1.0)
|
105
105
|
rubocop-ast (>= 1.1.0)
|
106
106
|
ruby-progressbar (1.11.0)
|
107
|
-
ruby_parser (3.
|
108
|
-
sexp_processor (~> 4.
|
109
|
-
sexp_processor (4.15.
|
107
|
+
ruby_parser (3.16.0)
|
108
|
+
sexp_processor (~> 4.15, >= 4.15.1)
|
109
|
+
sexp_processor (4.15.3)
|
110
110
|
thor (1.1.0)
|
111
111
|
tzinfo (2.0.4)
|
112
112
|
concurrent-ruby (~> 1.0)
|
@@ -129,4 +129,4 @@ DEPENDENCIES
|
|
129
129
|
rubocop-rspec
|
130
130
|
|
131
131
|
BUNDLED WITH
|
132
|
-
2.2.
|
132
|
+
2.2.19
|
data/docs/ARRAY.md
CHANGED
@@ -104,6 +104,39 @@ Updates a deeply nested value.
|
|
104
104
|
['1', ['2']].bury(1) #=> raises ArgumentError: '2 or more arguments required'
|
105
105
|
```
|
106
106
|
|
107
|
+
`contains_all?`
|
108
|
+
------
|
109
|
+
Returns true/false if an array contains all values from another.
|
110
|
+
|
111
|
+
```ruby
|
112
|
+
[1, 2, 3].contains_all?([1, 2, 3]) #=> true
|
113
|
+
[1, 2, 3].contains_all?([1, 2, 3, 4]) #=> true
|
114
|
+
[1, 2, 3].contains_all?([1, 2]) #=> false
|
115
|
+
[1, 2, 3].contains_all?([4, 5]) #=> false
|
116
|
+
```
|
117
|
+
|
118
|
+
`contains_any?`
|
119
|
+
------
|
120
|
+
Returns true/false if an array contains any values from another.
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
[1, 2, 3].contains_any?([1, 2]) #=> true
|
124
|
+
[1, 2, 3].contains_any?([1, 2, 3]) #=> true
|
125
|
+
[1, 2, 3].contains_any?([1, 2, 3, 4]) #=> true
|
126
|
+
[1, 2, 3].contains_any?([4, 5]) #=> false
|
127
|
+
```
|
128
|
+
|
129
|
+
`contains_none?`
|
130
|
+
------
|
131
|
+
Returns true/false if an array contains none of the values from another.
|
132
|
+
|
133
|
+
```ruby
|
134
|
+
[1, 2, 3].contains_none?([4, 5]) #=> true
|
135
|
+
[1, 2, 3].contains_none?([1, 2]) #=> false
|
136
|
+
[1, 2, 3].contains_none?([1, 2, 3]) #=> false
|
137
|
+
[1, 2, 3].contains_none?([1, 2, 3, 4]) #=> false
|
138
|
+
```
|
139
|
+
|
107
140
|
`delete_first(!)`
|
108
141
|
------
|
109
142
|
Removes the first element from an array. Like `shift`, but returns the array instead of the removed element.
|
@@ -235,6 +268,15 @@ Returns all indexes of the matching value.
|
|
235
268
|
[:a,:b,:a,:c].indexes(:a) #=> [0, 2]
|
236
269
|
```
|
237
270
|
|
271
|
+
`match`
|
272
|
+
------
|
273
|
+
Select a given value from the array.
|
274
|
+
|
275
|
+
```ruby
|
276
|
+
[1, 2, 3, 4].match(1) #=> 1
|
277
|
+
[1, 2, 3, 4].match(9) #=> nil
|
278
|
+
```
|
279
|
+
|
238
280
|
`merge(!)`
|
239
281
|
------
|
240
282
|
Concats multiple arrays.
|
@@ -259,6 +301,7 @@ Selects given values from the array.
|
|
259
301
|
|
260
302
|
```ruby
|
261
303
|
[1, 2, 3, 4].only(1, 3) #=> [1, 3]
|
304
|
+
[1, 2, 3, 4].only!(8, 9) #=> []
|
262
305
|
```
|
263
306
|
|
264
307
|
`probability`
|
@@ -328,7 +371,7 @@ Divides the array into one or more subarrays based on a delimiting value or the
|
|
328
371
|
(1..10).to_a.split { |i| i % 3 == 0 } # => [[1, 2], [4, 5], [7, 8], [10]]
|
329
372
|
```
|
330
373
|
|
331
|
-
`strip(!)`
|
374
|
+
`strip(!)` aka `compact_blank(!)`
|
332
375
|
------
|
333
376
|
Removes blank elements from an array.
|
334
377
|
|
data/docs/ENUMERABLE.md
CHANGED
@@ -158,6 +158,18 @@ a1.occur(2..3) #=> [1,3,5]
|
|
158
158
|
a1.occur { |n| n > 1 } #=> [1,3,5]
|
159
159
|
```
|
160
160
|
|
161
|
+
`pick`
|
162
|
+
------
|
163
|
+
Returns a value from a set of given keys.
|
164
|
+
|
165
|
+
```ruby
|
166
|
+
a1 = [{ id: 1, name: 'a' }, { id: 2, name: 'b' }]
|
167
|
+
|
168
|
+
a1.pick(:id) #=> 1
|
169
|
+
a1.pick(:id, :name) #=> [1,'a']
|
170
|
+
a1.pick(:fake) #=> nil
|
171
|
+
```
|
172
|
+
|
161
173
|
`pluck`
|
162
174
|
------
|
163
175
|
Returns an array of values from a set of given keys.
|
@@ -167,6 +179,7 @@ a1 = [{ id: 1, name: 'a' }, { id: 2, name: 'b' }]
|
|
167
179
|
|
168
180
|
a1.pluck(:id) #=> [1,2]
|
169
181
|
a1.pluck(:id, :name) #=> [[1,'a'], [2,'b']]
|
182
|
+
a1.pluck(:fake) #=> [nil,nil]
|
170
183
|
```
|
171
184
|
|
172
185
|
`produce`
|
data/docs/OPEN_STRUCT.md
CHANGED
@@ -9,26 +9,6 @@ OpenStruct.new(name: 'bob', age: 60) do |o|
|
|
9
9
|
end
|
10
10
|
```
|
11
11
|
|
12
|
-
`[]`
|
13
|
-
------
|
14
|
-
Access a value in the OpenStruct by key, like a Hash.
|
15
|
-
|
16
|
-
```ruby
|
17
|
-
person = OpenStruct.new(name: 'bob', age: 60)
|
18
|
-
|
19
|
-
person['name'] #=> 'bob'
|
20
|
-
```
|
21
|
-
|
22
|
-
`[]=`
|
23
|
-
------
|
24
|
-
Store a value in the OpenStruct by key, like a Hash.
|
25
|
-
|
26
|
-
```ruby
|
27
|
-
person = OpenStruct.new(name: 'bob', age: 60)
|
28
|
-
|
29
|
-
person['name'] = 'tim'
|
30
|
-
```
|
31
|
-
|
32
12
|
`attributes`
|
33
13
|
------
|
34
14
|
Returns the key values as a hash of the assigned struct.
|
data/docs/STRING.md
CHANGED
@@ -240,9 +240,9 @@ of the string until it reaches the limit value (counting backwards). If the give
|
|
240
240
|
than or equal to the string length, Returns a copy of self.
|
241
241
|
|
242
242
|
```ruby
|
243
|
-
'example'.last
|
244
|
-
'example'.last(0)
|
245
|
-
'example'.
|
243
|
+
'example'.last #=> 'e'
|
244
|
+
'example'.last(0) #=> ''
|
245
|
+
'example'.last(3) #=> 'ple'
|
246
246
|
```
|
247
247
|
|
248
248
|
`lchomp(!)`
|
data/docs/STRUCT.md
CHANGED
data/lib/lite/ruby/array.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
if Lite::Ruby.configuration.monkey_patches.include?('array')
|
4
|
-
require 'lite/ruby/safe/array' unless defined?(ActiveSupport)
|
5
|
-
|
6
4
|
class Array
|
7
5
|
|
8
6
|
def assert_min_values!(*valid_values)
|
@@ -111,6 +109,18 @@ if Lite::Ruby.configuration.monkey_patches.include?('array')
|
|
111
109
|
# rubocop:enable Metrics/PerceivedComplexity, Style/GuardClause, Style/IfInsideElse
|
112
110
|
# rubocop:enable Metrics/AbcSize, Metrics/BlockNesting, Metrics/MethodLength
|
113
111
|
|
112
|
+
def contains_all?(other)
|
113
|
+
(other & self) == self
|
114
|
+
end
|
115
|
+
|
116
|
+
def contains_any?(other)
|
117
|
+
!contains_none?(other)
|
118
|
+
end
|
119
|
+
|
120
|
+
def contains_none?(other)
|
121
|
+
(other & self).empty?
|
122
|
+
end
|
123
|
+
|
114
124
|
def delete_first
|
115
125
|
self[1..-1]
|
116
126
|
end
|
@@ -188,6 +198,10 @@ if Lite::Ruby.configuration.monkey_patches.include?('array')
|
|
188
198
|
array
|
189
199
|
end
|
190
200
|
|
201
|
+
def match(value)
|
202
|
+
find { |val| value == val }
|
203
|
+
end
|
204
|
+
|
191
205
|
def merge(*values)
|
192
206
|
dup.merge!(*values)
|
193
207
|
end
|
@@ -282,4 +296,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('array')
|
|
282
296
|
alias select_values! only!
|
283
297
|
|
284
298
|
end
|
299
|
+
|
300
|
+
require 'lite/ruby/safe/array' unless defined?(ActiveSupport)
|
285
301
|
end
|
data/lib/lite/ruby/enumerable.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
if Lite::Ruby.configuration.monkey_patches.include?('enumerable')
|
4
|
-
require 'lite/ruby/safe/enumerable' unless defined?(ActiveSupport)
|
5
|
-
|
6
4
|
module Enumerable
|
7
5
|
|
8
6
|
def cluster
|
@@ -57,11 +55,9 @@ if Lite::Ruby.configuration.monkey_patches.include?('enumerable')
|
|
57
55
|
found_count > num ? false : num == found_count
|
58
56
|
end
|
59
57
|
|
60
|
-
# rubocop:disable Style/CaseEquality
|
61
58
|
def excase?(object)
|
62
|
-
none?
|
59
|
+
none?(object)
|
63
60
|
end
|
64
|
-
# rubocop:enable Style/CaseEquality
|
65
61
|
|
66
62
|
def expand
|
67
63
|
map { |val| val.is_a?(Enumerable) ? val.expand : val }
|
@@ -79,11 +75,9 @@ if Lite::Ruby.configuration.monkey_patches.include?('enumerable')
|
|
79
75
|
each_with_object(Hash.new(0)) { |val, hash| hash[val] += 1 }
|
80
76
|
end
|
81
77
|
|
82
|
-
# rubocop:disable Style/CaseEquality
|
83
78
|
def incase?(object)
|
84
|
-
any?
|
79
|
+
any?(object)
|
85
80
|
end
|
86
|
-
# rubocop:enable Style/CaseEquality
|
87
81
|
|
88
82
|
# rubocop:disable Metrics/MethodLength
|
89
83
|
def interpose(sep, &block)
|
@@ -213,4 +207,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('enumerable')
|
|
213
207
|
alias occurrences frequency
|
214
208
|
|
215
209
|
end
|
210
|
+
|
211
|
+
require 'lite/ruby/safe/enumerable' unless defined?(ActiveSupport)
|
216
212
|
end
|
data/lib/lite/ruby/hash.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
if Lite::Ruby.configuration.monkey_patches.include?('hash')
|
4
|
-
require 'lite/ruby/safe/hash' unless defined?(ActiveSupport)
|
5
|
-
|
6
4
|
class Hash
|
7
5
|
|
8
6
|
class << self
|
@@ -274,12 +272,10 @@ if Lite::Ruby.configuration.monkey_patches.include?('hash')
|
|
274
272
|
dup.rename_keys!(*keys)
|
275
273
|
end
|
276
274
|
|
277
|
-
# rubocop:disable Style/HashConversion
|
278
275
|
def rename_keys!(*keys)
|
279
276
|
keys = Hash[*keys]
|
280
277
|
keys.each_with_object(self) { |(key, val), hash| hash[val] = delete(key) if hash[key] }
|
281
278
|
end
|
282
|
-
# rubocop:enable Style/HashConversion
|
283
279
|
|
284
280
|
def sample
|
285
281
|
key = sample_key
|
@@ -407,4 +403,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('hash')
|
|
407
403
|
alias to_o to_object
|
408
404
|
|
409
405
|
end
|
406
|
+
|
407
|
+
require 'lite/ruby/safe/hash' unless defined?(ActiveSupport)
|
410
408
|
end
|
data/lib/lite/ruby/integer.rb
CHANGED
@@ -4,10 +4,14 @@ if Lite::Ruby.configuration.monkey_patches.include?('integer')
|
|
4
4
|
class Integer
|
5
5
|
|
6
6
|
ROMAN_NUMERALS = {
|
7
|
-
M: 1000, CM: 900, D: 500, CD: 400, C: 100, XC: 90, L: 50,
|
8
|
-
I: 1
|
7
|
+
M: 1000, CM: 900, D: 500, CD: 400, C: 100, XC: 90, L: 50,
|
8
|
+
XL: 40, X: 10, IX: 9, V: 5, IV: 4, I: 1
|
9
9
|
}.freeze
|
10
10
|
|
11
|
+
SQL_SMALLINT = 32_767
|
12
|
+
SQL_INTEGER = 2_147_483_647
|
13
|
+
SQL_BIGINT = 9_223_372_036_854_775_807
|
14
|
+
|
11
15
|
def bit(bit)
|
12
16
|
if bit.negative?
|
13
17
|
mask = (1 << ~bit)
|
data/lib/lite/ruby/object.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
if Lite::Ruby.configuration.monkey_patches.include?('object')
|
4
|
-
require 'lite/ruby/safe/object' unless defined?(ActiveSupport)
|
5
|
-
|
6
4
|
class Object
|
7
5
|
|
8
6
|
FALSE_VALUES = %w[
|
@@ -168,4 +166,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('object')
|
|
168
166
|
alias to_b to_bool
|
169
167
|
|
170
168
|
end
|
169
|
+
|
170
|
+
require 'lite/ruby/safe/object' unless defined?(ActiveSupport)
|
171
171
|
end
|
@@ -20,24 +20,12 @@ if Lite::Ruby.configuration.monkey_patches.include?('open_struct')
|
|
20
20
|
yield self if block && block.arity == 1
|
21
21
|
end
|
22
22
|
|
23
|
-
def [](key)
|
24
|
-
key = key.to_sym unless key.is_a?(Symbol)
|
25
|
-
@table[key]
|
26
|
-
end
|
27
|
-
|
28
|
-
def []=(key, val)
|
29
|
-
raise TypeError, "can't modify frozen #{self.class}", caller(1) if frozen?
|
30
|
-
|
31
|
-
key = key.to_sym unless key.is_a?(Symbol)
|
32
|
-
@table[key] = val
|
33
|
-
end
|
34
|
-
|
35
23
|
def attributes
|
36
24
|
@table
|
37
25
|
end
|
38
26
|
|
39
27
|
def replace(args)
|
40
|
-
args.
|
28
|
+
args.each { |key, val| send("#{key}=", val) }
|
41
29
|
end
|
42
30
|
|
43
31
|
def to_hash(table: true)
|
@@ -53,5 +41,14 @@ if Lite::Ruby.configuration.monkey_patches.include?('open_struct')
|
|
53
41
|
alias as_json to_json
|
54
42
|
alias to_h to_hash
|
55
43
|
|
44
|
+
private
|
45
|
+
|
46
|
+
def new_ostruct_member!(name)
|
47
|
+
return if is_method_protected!(name)
|
48
|
+
|
49
|
+
define_singleton_method!(name) { @table[name] }
|
50
|
+
define_singleton_method!("#{name}=") { |x| @table[name] = x }
|
51
|
+
end
|
52
|
+
|
56
53
|
end
|
57
54
|
end
|
data/lib/lite/ruby/range.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
if Lite::Ruby.configuration.monkey_patches.include?('range')
|
4
|
-
require 'lite/ruby/safe/range' unless defined?(ActiveSupport)
|
5
|
-
|
6
4
|
class Range
|
7
5
|
|
8
6
|
def combine(other)
|
@@ -29,4 +27,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('range')
|
|
29
27
|
end
|
30
28
|
|
31
29
|
end
|
30
|
+
|
31
|
+
require 'lite/ruby/safe/range' unless defined?(ActiveSupport)
|
32
32
|
end
|
data/lib/lite/ruby/safe/array.rb
CHANGED
@@ -28,11 +28,22 @@ module Enumerable
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
+
def pick(*keys)
|
32
|
+
return if none?
|
33
|
+
|
34
|
+
if keys.many?
|
35
|
+
keys.map { |key| first[key] }
|
36
|
+
else
|
37
|
+
first[keys.first]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
31
41
|
def pluck(*keys)
|
32
42
|
if keys.many?
|
33
43
|
map { |element| keys.map { |key| element[key] } }
|
34
44
|
else
|
35
|
-
|
45
|
+
key = keys.first
|
46
|
+
map { |element| element[key] }
|
36
47
|
end
|
37
48
|
end
|
38
49
|
|
data/lib/lite/ruby/string.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
2
|
|
3
3
|
if Lite::Ruby.configuration.monkey_patches.include?('string')
|
4
|
-
require 'lite/ruby/safe/string' unless defined?(ActiveSupport)
|
5
|
-
|
6
4
|
class String
|
7
5
|
|
8
6
|
TRANSLITERATIONS = {
|
@@ -482,4 +480,6 @@ if Lite::Ruby.configuration.monkey_patches.include?('string')
|
|
482
480
|
alias titlecase! titleize!
|
483
481
|
|
484
482
|
end
|
483
|
+
|
484
|
+
require 'lite/ruby/safe/string' unless defined?(ActiveSupport)
|
485
485
|
end
|
data/lib/lite/ruby/struct.rb
CHANGED
data/lib/lite/ruby/version.rb
CHANGED
data/lite-ruby.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lite-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Gomez
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -222,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: '0'
|
224
224
|
requirements: []
|
225
|
-
rubygems_version: 3.2.
|
225
|
+
rubygems_version: 3.2.19
|
226
226
|
signing_key:
|
227
227
|
specification_version: 4
|
228
228
|
summary: Collection of useful Ruby methods for its primitive classes
|