lite-ruby 2.0.2 → 2.0.6

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: 3bfcb5d57c451a25bc72a6ff938450c49d1358a0012f35b5babf3975b8c6f8db
4
+ data.tar.gz: 3820932280c726d51defe83da1bf5b359f94233393b6f297bf7ae0a51f1a40df
5
5
  SHA512:
6
- metadata.gz: 0657f33f0ec47ccc0bcff90ad6992d12b66e43b31738ee8dbb4220059ea25784b25cb7e4a442ac39fd01e8b1f75c7adb2178ccd0759c852e4f2534f4711de168
7
- data.tar.gz: 2cfaa631e59ba2643125937b026a872d2bd81f969ec853f2b4ef5fcc7f80512a8a26b53a8586527732ec2f7883a6e1bfc4bf31ae541e7bbff4a641a90719238b
6
+ metadata.gz: 553e4656191685b19c6c2943833f871a727c913e38ee61a617892e238ca32ca8ffb37547a83e2695f06b13ca8e0ad53de87a6332a9c78f00cbe23469eee6cce5
7
+ data.tar.gz: 4eafb5c2e5234393528103f8b2d845ed7f020ed27f99cda57020b6b15ae5f69996aae0377c09fc8acfb0881c0118d46e163872435db8fd210064bf014ad431e3
data/.rubocop.yml CHANGED
@@ -43,6 +43,8 @@ RSpec/DescribeClass:
43
43
  - 'spec/lite/ruby/boolean_spec.rb'
44
44
  RSpec/ExampleLength:
45
45
  Enabled: false
46
+ RSpec/ExcessiveDocstringSpacing:
47
+ Enabled: false
46
48
  RSpec/MultipleExpectations:
47
49
  Enabled: false
48
50
  Style/ArgumentsForwarding:
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.6] - 2021-09-26
10
+ ### Changed
11
+ - Added DateTimeHelper => added missing comma to imperical date
12
+
13
+ ## [2.0.5] - 2021-08-12
14
+ ### Changed
15
+ - Added DateTimeHelper => remove unit fallback to `stamp`
16
+
17
+ ## [2.0.4] - 2021-08-12
18
+ ### Changed
19
+ - Added DateTimeHelper => add unit fallback to `stamp`
20
+
21
+ ## [2.0.3] - 2021-08-05
22
+ ### Changed
23
+ - Added Numeric => `negate`
24
+ - Added Numeric => `many?`
25
+ - Added Numeric => `one?`
26
+ - Added Numeric => `none?` to `zero?` alias
27
+ - Added Numeric => `to_range`
28
+
9
29
  ## [2.0.2] - 2021-07-22
10
30
  ### Changed
11
31
  - Changed `all.rb` => `monkey_patches.rb`
data/Gemfile.lock CHANGED
@@ -1,25 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lite-ruby (2.0.2)
4
+ lite-ruby (2.0.6)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- actionpack (6.1.4)
10
- actionview (= 6.1.4)
11
- activesupport (= 6.1.4)
9
+ actionpack (6.1.4.1)
10
+ actionview (= 6.1.4.1)
11
+ activesupport (= 6.1.4.1)
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.4)
17
- activesupport (= 6.1.4)
16
+ actionview (6.1.4.1)
17
+ activesupport (= 6.1.4.1)
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.4)
22
+ activesupport (6.1.4.1)
23
23
  concurrent-ruby (~> 1.0, >= 1.0.2)
24
24
  i18n (>= 1.6, < 2)
25
25
  minitest (>= 5.1)
@@ -40,16 +40,16 @@ 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.4)
50
+ mini_portile2 (~> 2.6.1)
51
51
  racc (~> 1.4)
52
- parallel (1.20.1)
52
+ parallel (1.21.0)
53
53
  parser (3.0.2.0)
54
54
  ast (~> 2.4.1)
55
55
  racc (1.5.2)
@@ -59,11 +59,11 @@ GEM
59
59
  rails-dom-testing (2.0.3)
60
60
  activesupport (>= 4.2.0)
61
61
  nokogiri (>= 1.6)
62
- rails-html-sanitizer (1.3.0)
62
+ rails-html-sanitizer (1.4.2)
63
63
  loofah (~> 2.3)
64
- railties (6.1.4)
65
- actionpack (= 6.1.4)
66
- activesupport (= 6.1.4)
64
+ railties (6.1.4.1)
65
+ actionpack (= 6.1.4.1)
66
+ activesupport (= 6.1.4.1)
67
67
  method_source
68
68
  rake (>= 0.13)
69
69
  thor (~> 1.0)
@@ -84,33 +84,32 @@ 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.21.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.11.0)
97
97
  parser (>= 3.0.1.1)
98
- rubocop-performance (1.11.4)
98
+ rubocop-performance (1.11.5)
99
99
  rubocop (>= 1.7.0, < 2.0)
100
100
  rubocop-ast (>= 0.4.0)
101
101
  rubocop-rake (0.6.0)
102
102
  rubocop (~> 1.0)
103
- rubocop-rspec (2.4.0)
104
- rubocop (~> 1.0)
105
- rubocop-ast (>= 1.1.0)
103
+ rubocop-rspec (2.5.0)
104
+ rubocop (~> 1.19)
106
105
  ruby-progressbar (1.11.0)
107
- ruby_parser (3.16.0)
106
+ ruby_parser (3.17.0)
108
107
  sexp_processor (~> 4.15, >= 4.15.1)
109
108
  sexp_processor (4.15.3)
110
109
  thor (1.1.0)
111
110
  tzinfo (2.0.4)
112
111
  concurrent-ruby (~> 1.0)
113
- unicode-display_width (2.0.0)
112
+ unicode-display_width (2.1.0)
114
113
  zeitwerk (2.4.2)
115
114
 
116
115
  PLATFORMS
@@ -129,4 +128,4 @@ DEPENDENCIES
129
128
  rubocop-rspec
130
129
 
131
130
  BUNDLED WITH
132
- 2.2.24
131
+ 2.2.26
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/DATE.md CHANGED
@@ -37,7 +37,7 @@ Converts a `date` object to a predefined format.
37
37
 
38
38
  | Directive | Type | Key | `strftime` | Result |
39
39
  | --- | --- | --- | --- | --- |
40
- | Weekday | Zero-padded | `weekday`, `:weekday_padded` | %d | (01..31) |
40
+ | Weekday | Zero-padded | `:weekday`, `:weekday_padded` | %d | (01..31) |
41
41
  | Weekday | Blank-padded | `:weekday_blank` | %_d | ( 1..31) |
42
42
  | Weekday | Unpadded | `:weekday_unpadded` | %-d | (1..31) |
43
43
  | Weekday | Name | `:weekday_name` | %A | Sunday |
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.
@@ -29,6 +29,6 @@ week_year_iso: '%V-%G'
29
29
  year_day: '%Y-%m-%d'
30
30
  year_month: '%Y-%m'
31
31
  year_week: '%G-%V'
32
- date: '%B %-d %Y'
33
- date_abbr: '%b %-d %Y'
32
+ date: '%B %-d, %Y'
33
+ date_abbr: '%b %-d, %Y'
34
34
  date_iso: '%Y-%m-%d'
@@ -28,15 +28,15 @@ daytime_iso: '%m-%d %H:%M'
28
28
  daytime12: '%B %-d %I:%M %P'
29
29
  daytime12_abbr: '%b %-d %I:%M %P'
30
30
  daytime12_iso: '%m-%d %I:%M %P'
31
- datetime: '%B %-d %Y %H:%M'
32
- datetime_abbr: '%b %-d %Y %H:%M'
31
+ datetime: '%B %-d, %Y %H:%M'
32
+ datetime_abbr: '%b %-d, %Y %H:%M'
33
33
  datetime_iso: '%Y-%m-%d %H:%M'
34
- datetime12: '%B %-d %Y %I:%M %P'
35
- datetime12_abbr: '%b %-d %Y %I:%M %P'
34
+ datetime12: '%B %-d, %Y %I:%M %P'
35
+ datetime12_abbr: '%b %-d, %Y %I:%M %P'
36
36
  datetime12_iso: '%Y-%m-%d %I:%M %P'
37
- datetime_tzn: '%B %-d %Y %H:%M %Z'
38
- datetime_abbr_tzn: '%b %-d %Y %H:%M %Z'
37
+ datetime_tzn: '%B %-d, %Y %H:%M %Z'
38
+ datetime_abbr_tzn: '%b %-d, %Y %H:%M %Z'
39
39
  datetime_iso_tzn: '%Y-%m-%d %H:%M %z'
40
- datetime12_tzn: '%B %-d %Y %I:%M %P %Z'
41
- datetime12_abbr_tzn: '%b %-d %Y %I:%M %P %Z'
40
+ datetime12_tzn: '%B %-d, %Y %I:%M %P %Z'
41
+ datetime12_abbr_tzn: '%b %-d, %Y %I:%M %P %Z'
42
42
  datetime12_iso_tzn: '%Y-%m-%d %I:%M %P %z'
@@ -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])
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
@@ -23,7 +23,7 @@ class Numeric
23
23
  if a.zero? || b.zero?
24
24
  (a - b).abs < epsilon
25
25
  else
26
- (a / b - 1).abs < epsilon
26
+ ((a / b) - 1).abs < epsilon
27
27
  end
28
28
  end
29
29
 
@@ -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
 
@@ -225,7 +243,7 @@ class Numeric
225
243
  if alpha.zero? || beta.zero?
226
244
  (alpha - beta).abs < epsilon
227
245
  else
228
- (alpha / beta - 1).abs < epsilon
246
+ ((alpha / beta) - 1).abs < epsilon
229
247
  end
230
248
  end
231
249
 
@@ -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
 
@@ -47,7 +47,7 @@ class Array
47
47
  elsif fill_with == false
48
48
  collection = self
49
49
  else
50
- padding = (number - size % number) % number
50
+ padding = (number - (size % number)) % number
51
51
  collection = dup.concat(Array.new(padding, fill_with))
52
52
  end
53
53
 
@@ -3,7 +3,7 @@
3
3
  module Lite
4
4
  module Ruby
5
5
 
6
- VERSION = '2.0.2'
6
+ VERSION = '2.0.6'
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.6
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-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -227,7 +227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
227
227
  - !ruby/object:Gem::Version
228
228
  version: '0'
229
229
  requirements: []
230
- rubygems_version: 3.2.24
230
+ rubygems_version: 3.2.26
231
231
  signing_key:
232
232
  specification_version: 4
233
233
  summary: Collection of useful Ruby methods for its primitive classes