lite-ruby 2.0.0 → 2.0.4

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
  SHA256:
3
- metadata.gz: 82f5308d3cb93a5fbb19f679165de1a28ea6bd44feb5de03922e9738422e3c87
4
- data.tar.gz: 5b0f162bc3bfb1a9c399a81dea94e4d863f9418e7bdd46fddb9bdc173b88e45a
3
+ metadata.gz: ecd2c3a61307be32e0e81fc96bd6ea7c6dd66b944c42f1a9bac69789c897ef58
4
+ data.tar.gz: a17ee24dc3b3fbd69f30304b179a13aa91e106f5531254a82613580f9988bfd3
5
5
  SHA512:
6
- metadata.gz: 0b41e76819eac622ca3e3f7cea273130875acb90c3c67d4288d0de74235ce01eba2fda951a54c419dfe148757f0c3c752ff2bd9d7d123db90db6793368f3eb8a
7
- data.tar.gz: '09032bb0ce82ee5bf9a253bf3646991cf68fc782838d205fdd9dd90565ed6b56e7c24bd5475ec00b3eb040a1afd2ad229717a0ae63b73529b25da0c5e14692b7'
6
+ metadata.gz: a9b44c14b3c8b5532449b45acf3d919d4680f693896167fbdb50a2681f0370604bc07250f38c1b42cfbb17687a931c666a3dc1f2ee2577afd78e33a70dae4ea4
7
+ data.tar.gz: b2e38bed720eb8756adaac18c3a405464c364b42c922fa752d50ef3e261fbba6080911916bfe7f071fb1659da3fcaaeba97590e0fa0d235212328675bd09f703
data/CHANGELOG.md CHANGED
@@ -6,6 +6,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [2.0.4] - 2021-08-12
10
+ ### Changed
11
+ - Added DateTimeHelper => add unit fallback to `stamp`
12
+
13
+ ## [2.0.3] - 2021-08-05
14
+ ### Changed
15
+ - Added Numeric => `negate`
16
+ - Added Numeric => `many?`
17
+ - Added Numeric => `one?`
18
+ - Added Numeric => `none?` to `zero?` alias
19
+ - Added Numeric => `to_range`
20
+
21
+ ## [2.0.2] - 2021-07-22
22
+ ### Changed
23
+ - Changed `all.rb` => `monkey_patches.rb`
24
+
25
+ ## [2.0.1] - 2021-07-22
26
+ ### Added
27
+ - Added `all.rb` for monkey patching everything with one command.
28
+
9
29
  ## [2.0.0] - 2021-07-22
10
30
  ### Added
11
31
  - Added Hash => `deep_key?`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-ruby (2.0.0)
4
+ lite-ruby (2.0.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -40,14 +40,14 @@ GEM
40
40
  railties (>= 3.0.0)
41
41
  i18n (1.8.10)
42
42
  concurrent-ruby (~> 1.0)
43
- loofah (2.10.0)
43
+ loofah (2.12.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.3)
47
+ mini_portile2 (2.6.1)
48
48
  minitest (5.14.4)
49
- nokogiri (1.11.7)
50
- mini_portile2 (~> 2.5.0)
49
+ nokogiri (1.12.3)
50
+ mini_portile2 (~> 2.6.1)
51
51
  racc (~> 1.4)
52
52
  parallel (1.20.1)
53
53
  parser (3.0.2.0)
@@ -84,16 +84,16 @@ 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.18.3)
87
+ rubocop (1.19.0)
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.7.0, < 2.0)
93
+ rubocop-ast (>= 1.9.1, < 2.0)
94
94
  ruby-progressbar (~> 1.7)
95
95
  unicode-display_width (>= 1.4.0, < 3.0)
96
- rubocop-ast (1.8.0)
96
+ rubocop-ast (1.10.0)
97
97
  parser (>= 3.0.1.1)
98
98
  rubocop-performance (1.11.4)
99
99
  rubocop (>= 1.7.0, < 2.0)
@@ -104,7 +104,7 @@ GEM
104
104
  rubocop (~> 1.0)
105
105
  rubocop-ast (>= 1.1.0)
106
106
  ruby-progressbar (1.11.0)
107
- ruby_parser (3.16.0)
107
+ ruby_parser (3.17.0)
108
108
  sexp_processor (~> 4.15, >= 4.15.1)
109
109
  sexp_processor (4.15.3)
110
110
  thor (1.1.0)
@@ -129,4 +129,4 @@ DEPENDENCIES
129
129
  rubocop-rspec
130
130
 
131
131
  BUNDLED WITH
132
- 2.2.24
132
+ 2.2.25
data/README.md CHANGED
@@ -35,7 +35,7 @@ Or install it yourself as:
35
35
 
36
36
  Any and all monkey patches must be explicitly included anywhere you want to use it.
37
37
 
38
- To globally use the money patches, just create an initializer requiring them.
38
+ To globally use the monkey patches, just create an initializer requiring them.
39
39
 
40
40
  `rails g lite:ruby:install` will generate the following file:
41
41
  `../config/initalizers/lite_ruby.rb`
@@ -45,20 +45,24 @@ They can be disabled by commenting any of them out.
45
45
  ```ruby
46
46
  # frozen_string_literal: true
47
47
 
48
- require 'lite/ruby/array'
49
- require 'lite/ruby/boolean'
50
- require 'lite/ruby/date'
51
- require 'lite/ruby/enumerable'
52
- require 'lite/ruby/hash'
53
- require 'lite/ruby/integer'
54
- require 'lite/ruby/kernel'
55
- require 'lite/ruby/numeric'
56
- require 'lite/ruby/object'
57
- require 'lite/ruby/open_struct'
58
- require 'lite/ruby/range'
59
- require 'lite/ruby/string'
60
- require 'lite/ruby/struct'
61
- require 'lite/ruby/time'
48
+ require 'lite/ruby/monkey_patches'
49
+
50
+ # - or -
51
+
52
+ # require 'lite/ruby/array'
53
+ # require 'lite/ruby/boolean'
54
+ # require 'lite/ruby/date'
55
+ # require 'lite/ruby/enumerable'
56
+ # require 'lite/ruby/hash'
57
+ # require 'lite/ruby/integer'
58
+ # require 'lite/ruby/kernel'
59
+ # require 'lite/ruby/numeric'
60
+ # require 'lite/ruby/object'
61
+ # require 'lite/ruby/open_struct'
62
+ # require 'lite/ruby/range'
63
+ # require 'lite/ruby/string'
64
+ # require 'lite/ruby/struct'
65
+ # require 'lite/ruby/time'
62
66
  ```
63
67
 
64
68
  ## Extensions
data/docs/NUMERIC.md CHANGED
@@ -149,6 +149,15 @@ Returns if self is less than or equal to n.
149
149
  3.less_than_or_equal_to?(4) #=> true
150
150
  ```
151
151
 
152
+ `many?`
153
+ ------
154
+ Returns if a number is greater than one.
155
+
156
+ ```ruby
157
+ 4.many? #=> true
158
+ 1.many? #=> false
159
+ ```
160
+
152
161
  `markdown_percentage`
153
162
  ------
154
163
  Returns the difference of a number and a percentage of it.
@@ -182,6 +191,24 @@ Returns if a number can be evenly divided by n.
182
191
  7.multiple_of?(3) #=> false
183
192
  ```
184
193
 
194
+ `negate`
195
+ ------
196
+ Returns the negation of a number.
197
+
198
+ ```ruby
199
+ 4.negate #=> -4
200
+ -2.negate #=> 2
201
+ ```
202
+
203
+ `none?` aka `zero?`
204
+ ------
205
+ Returns if a number is to zero.
206
+
207
+ ```ruby
208
+ 0.none? #=> true
209
+ 1.none? #=> false
210
+ ```
211
+
185
212
  `not_equal_to?` aka `not_eq?` aka `inequal_to?` aka `ineq?`
186
213
  ------
187
214
  Returns if not matching equality using `!=`.
@@ -191,6 +218,16 @@ Returns if not matching equality using `!=`.
191
218
  3.not_equal_to?(3) #=> false
192
219
  ```
193
220
 
221
+ `one?`
222
+ ------
223
+ Returns if a number is equal to one.
224
+
225
+ ```ruby
226
+ 1.one? #=> true
227
+ 1.0.one? #=> true
228
+ 4.one? #=> false
229
+ ```
230
+
194
231
  `ordinal`
195
232
  ------
196
233
  Returns the suffix that should be added to a number to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
@@ -317,15 +354,24 @@ unit | string | '$'
317
354
  3.to_currency(unit: '@') #=> '@3.00'
318
355
  ```
319
356
 
320
- `to_nearest value`
357
+ `to_nearest_value`
321
358
  ------
322
- return the value in values that is nearest to the number.
359
+ Returns the value in values that is nearest to the number.
323
360
 
324
361
  ```ruby
325
362
  5.to_nearest_value([1, 3, 6, 9]) #=> 6
326
363
  3.5.to_nearest_value([3.0, 3.3, 3.6, 3.9]) #=> 3.6
327
364
  ```
328
365
 
366
+ `to_range`
367
+ ------
368
+ Returns a range of a number from negative to positive.
369
+
370
+ ```ruby
371
+ 5.to_range #=> -5..5
372
+ -5.to_range #=> -5..5
373
+ ```
374
+
329
375
  `to_percentage`
330
376
  ------
331
377
  Converts a number to percentage string.
@@ -1,16 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'lite/ruby/array'
4
- require 'lite/ruby/boolean'
5
- require 'lite/ruby/date'
6
- require 'lite/ruby/enumerable'
7
- require 'lite/ruby/hash'
8
- require 'lite/ruby/integer'
9
- require 'lite/ruby/kernel'
10
- require 'lite/ruby/numeric'
11
- require 'lite/ruby/object'
12
- require 'lite/ruby/open_struct'
13
- require 'lite/ruby/range'
14
- require 'lite/ruby/string'
15
- require 'lite/ruby/struct'
16
- require 'lite/ruby/time'
3
+ require 'lite/ruby/monkey_patches'
4
+
5
+ # - or -
6
+
7
+ # require 'lite/ruby/array'
8
+ # require 'lite/ruby/boolean'
9
+ # require 'lite/ruby/date'
10
+ # require 'lite/ruby/enumerable'
11
+ # require 'lite/ruby/hash'
12
+ # require 'lite/ruby/integer'
13
+ # require 'lite/ruby/kernel'
14
+ # require 'lite/ruby/numeric'
15
+ # require 'lite/ruby/object'
16
+ # require 'lite/ruby/open_struct'
17
+ # require 'lite/ruby/range'
18
+ # require 'lite/ruby/string'
19
+ # require 'lite/ruby/struct'
20
+ # require 'lite/ruby/time'
@@ -13,8 +13,8 @@ module Lite
13
13
  end
14
14
 
15
15
  def stamp(key = nil)
16
- key = key.nil? ? self.class::DEFAULT_STAMP : key.to_s
17
- strftime(self.class::STAMPS[key])
16
+ key ||= self.class::DEFAULT_STAMP
17
+ strftime(self.class::STAMPS[key.to_s] || self.class::UNITS[key.to_s])
18
18
  end
19
19
 
20
20
  alias to_format stamp
@@ -48,9 +48,11 @@ class Integer
48
48
  (0...num).inject(1) { |acc, i| (acc * (self - i)) / (i + 1) }
49
49
  end
50
50
 
51
+ # rubocop:disable Lint/AmbiguousRange
51
52
  def factorial
52
53
  (1..self).inject { |acc, i| acc * i } || 0
53
54
  end
55
+ # rubocop:enable Lint/AmbiguousRange
54
56
 
55
57
  def factors
56
58
  limit = Math.sqrt(self).floor
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'lite/ruby/array'
4
+ require 'lite/ruby/boolean'
5
+ require 'lite/ruby/date'
6
+ require 'lite/ruby/enumerable'
7
+ require 'lite/ruby/hash'
8
+ require 'lite/ruby/integer'
9
+ require 'lite/ruby/kernel'
10
+ require 'lite/ruby/numeric'
11
+ require 'lite/ruby/object'
12
+ require 'lite/ruby/open_struct'
13
+ require 'lite/ruby/range'
14
+ require 'lite/ruby/string'
15
+ require 'lite/ruby/struct'
16
+ require 'lite/ruby/time'
@@ -93,6 +93,10 @@ class Numeric
93
93
  num >= self
94
94
  end
95
95
 
96
+ def many?
97
+ to_f > 1.0
98
+ end
99
+
96
100
  def markdown_percentage(percent)
97
101
  to_f * ((100.0 - percent.to_f) / 100.0)
98
102
  end
@@ -111,10 +115,18 @@ class Numeric
111
115
  modulo(number).zero?
112
116
  end
113
117
 
118
+ def negate
119
+ -self
120
+ end
121
+
114
122
  def not_equal_to?(num)
115
123
  self != num
116
124
  end
117
125
 
126
+ def one?
127
+ to_d == 1.0.to_d
128
+ end
129
+
118
130
  def ordinal
119
131
  return 'th' if (11..13).cover?(abs % 100)
120
132
 
@@ -216,6 +228,12 @@ class Numeric
216
228
  "#{pad_precision(options.only(:precision))}#{unit}"
217
229
  end
218
230
 
231
+ # rubocop:disable Lint/AmbiguousRange
232
+ def to_range
233
+ negative? ? (self..-self) : (-self..self)
234
+ end
235
+ # rubocop:enable Lint/AmbiguousRange
236
+
219
237
  def within?(number, epsilon = 0.01)
220
238
  return number == self if epsilon.zero?
221
239
 
@@ -236,6 +254,7 @@ class Numeric
236
254
  alias ineq? not_equal_to?
237
255
  alias lt? less_than?
238
256
  alias lteq? less_than_or_equal_to?
257
+ alias none? zero?
239
258
  alias not_eq? not_equal_to?
240
259
  alias plus_minus range
241
260
 
@@ -3,7 +3,7 @@
3
3
  module Lite
4
4
  module Ruby
5
5
 
6
- VERSION = '2.0.0'
6
+ VERSION = '2.0.4'
7
7
 
8
8
  end
9
9
  end
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: 2.0.0
4
+ version: 2.0.4
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-07-22 00:00:00.000000000 Z
11
+ date: 2021-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -192,6 +192,7 @@ files:
192
192
  - lib/lite/ruby/helpers/date_time_helper.rb
193
193
  - lib/lite/ruby/integer.rb
194
194
  - lib/lite/ruby/kernel.rb
195
+ - lib/lite/ruby/monkey_patches.rb
195
196
  - lib/lite/ruby/numeric.rb
196
197
  - lib/lite/ruby/object.rb
197
198
  - lib/lite/ruby/open_struct.rb
@@ -226,7 +227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
227
  - !ruby/object:Gem::Version
227
228
  version: '0'
228
229
  requirements: []
229
- rubygems_version: 3.2.24
230
+ rubygems_version: 3.2.25
230
231
  signing_key:
231
232
  specification_version: 4
232
233
  summary: Collection of useful Ruby methods for its primitive classes