lite-ruby 2.0.2 → 2.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22d988f2dbe25b5c04f273b924da8cc9f959e6bbf0c54405abfc7153e6639d13
4
- data.tar.gz: 2e01d2a910067c3495299e2fa1a93e640f9a9051316389507ba2369d8704ba04
3
+ metadata.gz: 29e7241b666924e764cb6109751dde2dd55b5964a1a5ee1656e20d44373ab516
4
+ data.tar.gz: 875f644d9a7e9bc392b093c0e9d030321e1a1d3230dbd9214f3225df4cdff613
5
5
  SHA512:
6
- metadata.gz: 0657f33f0ec47ccc0bcff90ad6992d12b66e43b31738ee8dbb4220059ea25784b25cb7e4a442ac39fd01e8b1f75c7adb2178ccd0759c852e4f2534f4711de168
7
- data.tar.gz: 2cfaa631e59ba2643125937b026a872d2bd81f969ec853f2b4ef5fcc7f80512a8a26b53a8586527732ec2f7883a6e1bfc4bf31ae541e7bbff4a641a90719238b
6
+ metadata.gz: 3dc8caff79b7ec516abf91f4eaad29b5377ee092d214bed010b1a56cb176abb8c040b1c79e44bf0947cdb6ab20935586378a7d9f82ea85f51ff1e4dbd561342a
7
+ data.tar.gz: d117f070aaefd4a835efce753781a28f330e009863a5843406430e9bc786750efa8f071f66ce189a1c79153e2a658979302844b37d15e4bd01e844b4e6d3fd4c
data/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [2.0.3] - 2021-08-05
10
+ ### Changed
11
+ - Added Numeric => `negate`
12
+ - Added Numeric => `many?`
13
+ - Added Numeric => `one?`
14
+ - Added Numeric => `none?` to `zero?` alias
15
+ - Added Numeric => `to_range`
16
+
9
17
  ## [2.0.2] - 2021-07-22
10
18
  ### Changed
11
19
  - Changed `all.rb` => `monkey_patches.rb`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-ruby (2.0.2)
4
+ lite-ruby (2.0.3)
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.11.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.2)
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,13 +84,13 @@ 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.18.4)
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.8.0, < 2.0)
94
94
  ruby-progressbar (~> 1.7)
95
95
  unicode-display_width (>= 1.4.0, < 3.0)
96
96
  rubocop-ast (1.8.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)
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`
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.
@@ -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,10 @@ class Numeric
216
228
  "#{pad_precision(options.only(:precision))}#{unit}"
217
229
  end
218
230
 
231
+ def to_range
232
+ negative? ? self..-self : -self..self
233
+ end
234
+
219
235
  def within?(number, epsilon = 0.01)
220
236
  return number == self if epsilon.zero?
221
237
 
@@ -236,6 +252,7 @@ class Numeric
236
252
  alias ineq? not_equal_to?
237
253
  alias lt? less_than?
238
254
  alias lteq? less_than_or_equal_to?
255
+ alias none? zero?
239
256
  alias not_eq? not_equal_to?
240
257
  alias plus_minus range
241
258
 
@@ -3,7 +3,7 @@
3
3
  module Lite
4
4
  module Ruby
5
5
 
6
- VERSION = '2.0.2'
6
+ VERSION = '2.0.3'
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.2
4
+ version: 2.0.3
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-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler