lite-ruby 1.1.6 → 1.1.11
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 +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
|