lite-ruby 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.fasterer.yml +19 -0
- data/.gitignore +11 -0
- data/.rspec +4 -0
- data/.rubocop.yml +32 -0
- data/.travis.yml +24 -0
- data/CHANGELOG.md +11 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +119 -0
- data/LICENSE.txt +21 -0
- data/README.md +96 -0
- data/Rakefile +8 -0
- data/_config.yml +1 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/docs/ARRAY.md +284 -0
- data/docs/DATE.md +78 -0
- data/docs/ENUMERABLE.md +174 -0
- data/docs/HASH.md +282 -0
- data/docs/INTEGER.md +43 -0
- data/docs/KERNEL.md +31 -0
- data/docs/NUMERIC.md +302 -0
- data/docs/OBJECT.md +322 -0
- data/docs/RANGE.md +55 -0
- data/docs/STRING.md +463 -0
- data/docs/TIME.md +86 -0
- data/lib/generators/lite/ruby/install_generator.rb +17 -0
- data/lib/generators/lite/ruby/templates/install.rb +15 -0
- data/lib/lite/ruby.rb +16 -0
- data/lib/lite/ruby/array.rb +290 -0
- data/lib/lite/ruby/configuration.rb +42 -0
- data/lib/lite/ruby/date.rb +27 -0
- data/lib/lite/ruby/enumerable.rb +167 -0
- data/lib/lite/ruby/hash.rb +284 -0
- data/lib/lite/ruby/helpers/date_helper.rb +105 -0
- data/lib/lite/ruby/helpers/time_helper.rb +84 -0
- data/lib/lite/ruby/integer.rb +45 -0
- data/lib/lite/ruby/kernel.rb +29 -0
- data/lib/lite/ruby/numeric.rb +210 -0
- data/lib/lite/ruby/object.rb +182 -0
- data/lib/lite/ruby/range.rb +32 -0
- data/lib/lite/ruby/string.rb +412 -0
- data/lib/lite/ruby/time.rb +26 -0
- data/lib/lite/ruby/version.rb +9 -0
- data/lite-ruby.gemspec +48 -0
- metadata +200 -0
data/docs/HASH.md
ADDED
@@ -0,0 +1,282 @@
|
|
1
|
+
# Hash
|
2
|
+
|
3
|
+
`assert_valid_keys!`
|
4
|
+
------
|
5
|
+
Raises an error if key is not included in a list of keys.
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
{}.assert_valid_keys(:foo) #=> {}
|
9
|
+
{ foo: 'bar' }.assert_valid_keys(:foo) #=> { foo: 'bar' }
|
10
|
+
{ baz: 'boz' }.assert_valid_keys(:foo, :boo) #=> raises ArgumentError: 'Invalid key: ":baz". Allowed keys are: ":foo", ":boo"'
|
11
|
+
```
|
12
|
+
|
13
|
+
`assert_all_valid_keys!`
|
14
|
+
------
|
15
|
+
Raises like an error like `assert_valid_values!` but also on empty.
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
{}.assert_all_valid_keys!(:foo) #=> raises ArgumentError: 'An empty hash is not allowed'
|
19
|
+
```
|
20
|
+
|
21
|
+
`assert_valid_values!`
|
22
|
+
------
|
23
|
+
Raises an error if value is not included in a list of values.
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
{}.assert_valid_values(:foo) #=> {}
|
27
|
+
{ foo: 'bar' }.assert_valid_values('bar') #=> { foo: 'bar' }
|
28
|
+
{ baz: 'boz' }.assert_valid_values(:foo, :boo) #=> raises ArgumentError: 'Invalid value: "boz". Allowed values are: ":foo", ":boo"'
|
29
|
+
```
|
30
|
+
|
31
|
+
`assert_all_valid_values!`
|
32
|
+
------
|
33
|
+
Raises like an error like `assert_valid_values!` but also on empty.
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
{}.assert_all_valid_values!(:foo) #=> raises ArgumentError: 'An empty hash is not allowed'
|
37
|
+
```
|
38
|
+
|
39
|
+
`bury`
|
40
|
+
------
|
41
|
+
Updates a deeply nested value.
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
{ foo: { baz: 'boo' } }.bury(:foo, :moo) #=> { foo: :moo }
|
45
|
+
{ foo: { baz: 'boo' } }.bury(:foo, :baz, :moo) #=> { foo: { baz: :moo } }
|
46
|
+
{ foo: { baz: 'boo' } }.bury(:foo) #=> raises ArgumentError: '2 or more arguments required'
|
47
|
+
```
|
48
|
+
|
49
|
+
`collect_keys`
|
50
|
+
------
|
51
|
+
Returns an array with all keys converted using the block operation.
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
{ foo: 'bar', 'baz' => :boo }.collect_keys #=> [:foo, 'baz']
|
55
|
+
{ foo: 'bar', 'baz' => :boo }.collect_keys { |k| k.to_s.upcase } #=> ['FOO', BAZ']
|
56
|
+
```
|
57
|
+
|
58
|
+
`collect_values`
|
59
|
+
------
|
60
|
+
Returns an array with all values converted using the block operation.
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
{ foo: 'bar', baz: :boo }.collect_values #=> ['bar', :boo]
|
64
|
+
{ foo: 'bar', baz: :boo }.collect_values { |k| k.to_s.upcase } #=> ['BAR', BOO']
|
65
|
+
```
|
66
|
+
|
67
|
+
`deep_merge(!)`
|
68
|
+
------
|
69
|
+
Returns a new hash with self and other_hash merged recursively.
|
70
|
+
|
71
|
+
```ruby
|
72
|
+
h1 = { a: true, b: { c: [1, 2, 3] } }
|
73
|
+
h2 = { a: false, b: { x: [3, 4, 5] } }
|
74
|
+
|
75
|
+
h1.deep_merge(h2) #=> { a: false, b: { c: [1, 2, 3], x: [3, 4, 5] } }
|
76
|
+
```
|
77
|
+
|
78
|
+
`demote(!)`
|
79
|
+
------
|
80
|
+
Moves a key value pair to the tail of the hash.
|
81
|
+
|
82
|
+
```ruby
|
83
|
+
{ a: 0, b: 1, c: 2 }.demote(:b) #=> { a: 0, c: 2, b: 1 }
|
84
|
+
{ a: 0, b: 1, c: 2 }.demote!(:d) #=> { a: 0, b: 1, c: 2 }
|
85
|
+
```
|
86
|
+
|
87
|
+
`denillify(!)`
|
88
|
+
------
|
89
|
+
Converts `nil` into a given value.
|
90
|
+
|
91
|
+
```ruby
|
92
|
+
{ abc: nil, xyz: 1 }.denillify #=> { abc: 0, xyz: 1 }
|
93
|
+
{ abc: nil, xyz: 1 }.denillify!(9) #=> { abc: 9, xyz: 1 }
|
94
|
+
```
|
95
|
+
|
96
|
+
`except(!)`
|
97
|
+
------
|
98
|
+
Returns a hash that includes everything but the given keys.
|
99
|
+
|
100
|
+
```ruby
|
101
|
+
{}.except(:foo) #=> {}
|
102
|
+
{ foo: 'foo', baz: 'baz', bar: 'bar' }.except(:foo) #=> { baz: 'baz', bar: 'bar' }
|
103
|
+
{ :foo => 'foo', :baz => 'baz', :bar => 'bar' }.except(:baz, :bar) #=> { :foo => 'foo' }
|
104
|
+
```
|
105
|
+
|
106
|
+
`extract!`
|
107
|
+
------
|
108
|
+
Removes and returns the key value pairs matching the given keys.
|
109
|
+
|
110
|
+
```ruby
|
111
|
+
{}.extract!(:foo) #=> {}
|
112
|
+
{ foo: 'foo', baz: 'baz', bar: 'bar' }.extract!(:foo) #=> { foo: 'foo' }
|
113
|
+
|
114
|
+
```
|
115
|
+
|
116
|
+
`hmap(!)`
|
117
|
+
------
|
118
|
+
Returns a hash that is transformed in place.
|
119
|
+
|
120
|
+
```ruby
|
121
|
+
{ a: 1, b: 2, c: 3 }.hmap { |k, v| { k => v + 3 } } #=> { a: 4, b: 5, c: 6 }
|
122
|
+
```
|
123
|
+
|
124
|
+
`nillify(!)`
|
125
|
+
------
|
126
|
+
Transforms all blank values to `nil`.
|
127
|
+
|
128
|
+
```ruby
|
129
|
+
{ a: 1, b: 'test', c: nil, d: false, e: '', f: ' ' }.nillify #=> {a: 1, b: 'test', c: nil, d: nil, e: nil, f: nil}
|
130
|
+
```
|
131
|
+
|
132
|
+
`only_fill(!)`
|
133
|
+
------
|
134
|
+
Returns only key value pairs matching certain keys and any missing one.
|
135
|
+
|
136
|
+
```ruby
|
137
|
+
{}.only_fill(:foo) #=> { foo: nil }
|
138
|
+
{ :foo => 1, baz: 2 }.only_fill(:foo, :bar, placeholder: 0) #=> { foo: 1, bar: 0 }
|
139
|
+
```
|
140
|
+
|
141
|
+
`pair?`
|
142
|
+
------
|
143
|
+
Returns if the hash has a key with a matching value.
|
144
|
+
|
145
|
+
```ruby
|
146
|
+
{ a: 0 }.pair?(:a, 0) #=> true
|
147
|
+
{ a: 0 }.pair?(:a, 2) #=> false
|
148
|
+
```
|
149
|
+
|
150
|
+
`promote(!)`
|
151
|
+
------
|
152
|
+
Moves a key value pair to the head of the hash.
|
153
|
+
|
154
|
+
```ruby
|
155
|
+
{ a: 0, b: 1, c: 2 }.promote(:b) #=> { b: 1, a: 0, c: 2 }
|
156
|
+
{ a: 0, b: 1, c: 2 }.promote!(:d) #=> { a: 0, b: 1, c: 2 }
|
157
|
+
```
|
158
|
+
|
159
|
+
`rename_keys(!)`
|
160
|
+
------
|
161
|
+
Rename the keys of a hash.
|
162
|
+
|
163
|
+
```ruby
|
164
|
+
{ foo: 'foo', baz: 'baz' }.rename_keys(foo: :bar) #=> { bar: 'foo', baz: 'baz' }
|
165
|
+
{ foo: 'foo', 'baz' => 'baz' }.rename_keys(foo: :bar, 'baz' => 'tick') #=> { bar: 'foo', tick: 'baz' }
|
166
|
+
```
|
167
|
+
|
168
|
+
`reverse_merge(!)`
|
169
|
+
------
|
170
|
+
Merges one hash into other hash (merge but in reverse).
|
171
|
+
|
172
|
+
```ruby
|
173
|
+
{}.reverse_merge!(foo: 'bar') #=> { foo: 'bar' }
|
174
|
+
{ foo: 'bar' }.reverse_merge!(baz: 'boo', boo: 'bam') #=> { foo: 'bar', baz: 'boo', boo: 'bam' }
|
175
|
+
```
|
176
|
+
|
177
|
+
`sample(!)`
|
178
|
+
------
|
179
|
+
Returns a random key-value pair.
|
180
|
+
|
181
|
+
```ruby
|
182
|
+
h = { a: 1, b: 2, c: 3, d: 4 }
|
183
|
+
|
184
|
+
h.sample #=> [:c, 3]
|
185
|
+
h.sample! #=> [:a, 1]
|
186
|
+
```
|
187
|
+
|
188
|
+
`sample_key(!)`
|
189
|
+
------
|
190
|
+
Returns a random key.
|
191
|
+
|
192
|
+
```ruby
|
193
|
+
h = { a: 1, b: 2, c: 3, d: 4 }
|
194
|
+
|
195
|
+
h.sample_key #=> :b
|
196
|
+
h.sample_key! #=> :d
|
197
|
+
```
|
198
|
+
|
199
|
+
`sample_value(!)`
|
200
|
+
------
|
201
|
+
Returns a random value.
|
202
|
+
|
203
|
+
```ruby
|
204
|
+
h = { a: 1, b: 2, c: 3, d: 4 }
|
205
|
+
|
206
|
+
h.sample_value #=> 1
|
207
|
+
h.sample_value! #=> 3
|
208
|
+
```
|
209
|
+
|
210
|
+
`shuffle(!)`
|
211
|
+
------
|
212
|
+
Returns a hash with values arranged in new random order.
|
213
|
+
|
214
|
+
```ruby
|
215
|
+
h = { a: 1, b: 2, c: 3, d: 4 }
|
216
|
+
|
217
|
+
h.shuffle #=> { b: 2, c: 3, a: 1, d: 4 }
|
218
|
+
h.shuffle! #=> { d: 4, b: 2, c: 3, a: 1 }
|
219
|
+
```
|
220
|
+
|
221
|
+
`slice(!)` aka `only(!)`
|
222
|
+
------
|
223
|
+
Returns a hash that includes only the given keys.
|
224
|
+
|
225
|
+
```ruby
|
226
|
+
h = { a: 1, b: 2, c: 3, d: 4 }
|
227
|
+
|
228
|
+
h.slice(:a, :b) #=> { a: 1, b: 2 }
|
229
|
+
h.slice!(:a, :b) #=> { a: 1, b: 2 }
|
230
|
+
```
|
231
|
+
|
232
|
+
`stringify_keys(!)`
|
233
|
+
------
|
234
|
+
Converts the hash keys to strings.
|
235
|
+
|
236
|
+
```ruby
|
237
|
+
{ foo: 'foo', 'bar' => 'bar' }.stringify_keys #=> { 'foo' => 'foo', 'baz' => 'baz' }
|
238
|
+
```
|
239
|
+
|
240
|
+
`strip(!)`
|
241
|
+
------
|
242
|
+
Returns a hash with non `nil`, `false`, or blank values.
|
243
|
+
|
244
|
+
```ruby
|
245
|
+
{}.strip #=> {}
|
246
|
+
{ foo: nil, baz: false, boo: '', faz: ' ' }.strip #=> {}
|
247
|
+
{ foo: 'bar', baz: false, boo: nil, boz: '', faz: ' ' }.strip #=> { foo: 'bar' }
|
248
|
+
```
|
249
|
+
|
250
|
+
`symbolize_keys(!)`
|
251
|
+
------
|
252
|
+
Converts the hash keys to symbols.
|
253
|
+
|
254
|
+
```ruby
|
255
|
+
{ foo: 'foo', 'bar' => 'bar' }.symbolize_keys #=> { foo: 'foo', baz: 'baz' }
|
256
|
+
```
|
257
|
+
|
258
|
+
`symbolize_and_underscore_keys(!)`
|
259
|
+
------
|
260
|
+
Symbolize and underscore hash keys.
|
261
|
+
|
262
|
+
```ruby
|
263
|
+
{ 'firstName' => 'foo', 'last Name' => 'test' }.symbolize_and_underscore_keys #=> { first_name: 'foo', last_name: 'test' }
|
264
|
+
```
|
265
|
+
|
266
|
+
`to_object` aka `to_o`
|
267
|
+
------
|
268
|
+
Converts an object to have an object like API.
|
269
|
+
|
270
|
+
```ruby
|
271
|
+
{ foo: { bar: true } }.to_object.foo.bar #=> true
|
272
|
+
```
|
273
|
+
|
274
|
+
`vacant?`
|
275
|
+
------
|
276
|
+
Returns if the value of a key is blank?.
|
277
|
+
|
278
|
+
```ruby
|
279
|
+
{}.vacant?(:foo) #=> true
|
280
|
+
{ foo: ' ' }.vacant?(:foo) #=> true
|
281
|
+
{ foo: 'bar' }.vacant?(:foo) #=> false
|
282
|
+
```
|
data/docs/INTEGER.md
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# Integer
|
2
|
+
|
3
|
+
`factorial`
|
4
|
+
------
|
5
|
+
Calculates the factorial of an integer.
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
4.factorial #=> 24
|
9
|
+
```
|
10
|
+
|
11
|
+
`factors`
|
12
|
+
------
|
13
|
+
Calculates all the factors of an integer.
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
24.factors #=> [1, 24, 2, 12, 3, 8, 4, 6]
|
17
|
+
```
|
18
|
+
|
19
|
+
`of`
|
20
|
+
------
|
21
|
+
Like `times` but returns a collection of the yield results.
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
3.of { |i| i + 1 } #=> ['1', '2', '3']
|
25
|
+
```
|
26
|
+
|
27
|
+
`roman_numeral`
|
28
|
+
------
|
29
|
+
Converts an integer to a roman_numeral numeral.
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
0.roman_numeral #=> ''
|
33
|
+
49.roman_numeral #=> 'XLIX'
|
34
|
+
-49.roman_numeral #=> '-XLIX'
|
35
|
+
```
|
36
|
+
|
37
|
+
`to_time` aka `to_t`
|
38
|
+
------
|
39
|
+
Returns a Time object for the given Integer.
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
3.to_time #=> '1969-12-31 19:00:03.000000000 -0500'
|
43
|
+
```
|
data/docs/KERNEL.md
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# Kernel
|
2
|
+
|
3
|
+
`caller_name`
|
4
|
+
------
|
5
|
+
Returns the name of the method calling it.
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
def sample_key
|
9
|
+
caller_name(0)
|
10
|
+
end
|
11
|
+
|
12
|
+
sample_key #=> 'sample_key'
|
13
|
+
```
|
14
|
+
|
15
|
+
`safe_eval`
|
16
|
+
------
|
17
|
+
Try's to evaluate or returns self.
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
'[1,2,3]'.safe_eval #=> [1,2,3]
|
21
|
+
'[#1,2,3]'.safe_eval #=> '[#1,2,3]'
|
22
|
+
```
|
23
|
+
|
24
|
+
`try_eval`
|
25
|
+
------
|
26
|
+
Try's to evaluate or returns nil.
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
'[1,2,3]'.try_eval #=> [1,2,3]
|
30
|
+
'[#1,2,3]'.try_eval #=> nil
|
31
|
+
```
|
data/docs/NUMERIC.md
ADDED
@@ -0,0 +1,302 @@
|
|
1
|
+
# Numeric
|
2
|
+
|
3
|
+
`add`
|
4
|
+
------
|
5
|
+
Returns the sum of two numbers.
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
4.add(2) #=> 6
|
9
|
+
```
|
10
|
+
|
11
|
+
`clamp`
|
12
|
+
------
|
13
|
+
Returns the closest number outside of the lower and upper bound.
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
1.clamp(3, 6) # => 3
|
17
|
+
5.clamp(3..6) # => 5
|
18
|
+
8.clamp(3, 6) # => 6
|
19
|
+
```
|
20
|
+
|
21
|
+
`decrement`
|
22
|
+
------
|
23
|
+
Returns the n decremented number.
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
1.decrement #=> 0
|
27
|
+
1.decrement(0.5) #=> 0.5
|
28
|
+
```
|
29
|
+
|
30
|
+
`distance`
|
31
|
+
------
|
32
|
+
Returns the absolute difference between numbers.
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
5.distance(3) #=> 2
|
36
|
+
3.distance(5) #=> 2
|
37
|
+
```
|
38
|
+
|
39
|
+
`divide`
|
40
|
+
------
|
41
|
+
Returns the division of two numbers.
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
4.divide(2) #=> 2
|
45
|
+
0.divide(2) #=> 0
|
46
|
+
4.divide(0) #=> 0
|
47
|
+
```
|
48
|
+
|
49
|
+
`equal_to?` aka `eq?`
|
50
|
+
------
|
51
|
+
Returns if matching equality using `==`.
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
3.equal_to?(2) #=> false
|
55
|
+
3.equal_to?(3) #=> true
|
56
|
+
```
|
57
|
+
|
58
|
+
`fraction`
|
59
|
+
------
|
60
|
+
Returns the numbers after '.' of a float.
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
1.0.fraction #=> 0.0
|
64
|
+
12.2456.fraction #=> 0.2456
|
65
|
+
-12.2456.fraction #=> 0.2456
|
66
|
+
```
|
67
|
+
|
68
|
+
`fraction?`
|
69
|
+
------
|
70
|
+
Returns if its a fraction.
|
71
|
+
|
72
|
+
```ruby
|
73
|
+
1.0.fraction? #=> false
|
74
|
+
12.2456.fraction? #=> true
|
75
|
+
```
|
76
|
+
|
77
|
+
`greater_than?` aka `gt?`
|
78
|
+
------
|
79
|
+
Returns if self is greater than n.
|
80
|
+
|
81
|
+
```ruby
|
82
|
+
3.greater_than?(2) #=> true
|
83
|
+
3.greater_than?(3) #=> false
|
84
|
+
3.greater_than?(4) #=> false
|
85
|
+
```
|
86
|
+
|
87
|
+
`greater_than_or_equal_to?` aka `gteq?`
|
88
|
+
------
|
89
|
+
Returns if self is greater than or equal to n.
|
90
|
+
|
91
|
+
```ruby
|
92
|
+
3.greater_than_or_equal_to?(2) #=> true
|
93
|
+
3.greater_than_or_equal_to?(3) #=> true
|
94
|
+
3.greater_than_or_equal_to?(4) #=> false
|
95
|
+
```
|
96
|
+
|
97
|
+
`increment`
|
98
|
+
------
|
99
|
+
Returns the n incremented number.
|
100
|
+
|
101
|
+
```ruby
|
102
|
+
1.increment #=> 2
|
103
|
+
1.increment(0.5) #=> 1.5
|
104
|
+
```
|
105
|
+
|
106
|
+
`inside?`
|
107
|
+
------
|
108
|
+
Returns if n is greater than start and less than finish.
|
109
|
+
Similar to between but does not return true if equal to self.
|
110
|
+
|
111
|
+
```ruby
|
112
|
+
3.inside?(1, 5) #=> true
|
113
|
+
3.inside?(3, 5) #=> false
|
114
|
+
```
|
115
|
+
|
116
|
+
`less_than?` aka `lt?`
|
117
|
+
------
|
118
|
+
Returns if self is less than n.
|
119
|
+
|
120
|
+
```ruby
|
121
|
+
3.less_than?(2) #=> false
|
122
|
+
3.less_than?(3) #=> false
|
123
|
+
3.less_than?(4) #=> true
|
124
|
+
```
|
125
|
+
|
126
|
+
`less_than_or_equal_to?` aka `lteq?`
|
127
|
+
------
|
128
|
+
Returns if self is less than or equal to n.
|
129
|
+
|
130
|
+
```ruby
|
131
|
+
3.less_than_or_equal_to?(2) #=> false
|
132
|
+
3.less_than_or_equal_to?(3) #=> true
|
133
|
+
3.less_than_or_equal_to?(4) #=> true
|
134
|
+
```
|
135
|
+
|
136
|
+
`multiply`
|
137
|
+
------
|
138
|
+
Returns the multiplication of two numbers.
|
139
|
+
|
140
|
+
```ruby
|
141
|
+
4.multiply(2) #=> 8
|
142
|
+
```
|
143
|
+
|
144
|
+
`multiple_of?`
|
145
|
+
------
|
146
|
+
Returns if a number can be evenly divided by n.
|
147
|
+
|
148
|
+
```ruby
|
149
|
+
9.multiple_of?(3) #=> true
|
150
|
+
7.multiple_of?(3) #=> false
|
151
|
+
```
|
152
|
+
|
153
|
+
`not_equal_to?` aka `not_eq?` aka `inequal_to?` aka `ineq?`
|
154
|
+
------
|
155
|
+
Returns if not matching equality using `!=`.
|
156
|
+
|
157
|
+
```ruby
|
158
|
+
3.not_equal_to?(2) #=> true
|
159
|
+
3.not_equal_to?(3) #=> false
|
160
|
+
```
|
161
|
+
|
162
|
+
`ordinal`
|
163
|
+
------
|
164
|
+
Returns the suffix that should be added to a number to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
|
165
|
+
|
166
|
+
```ruby
|
167
|
+
'1'.ordinal #=> 'th'
|
168
|
+
'2'.ordinal #=> 'nd'
|
169
|
+
'3'.ordinal #=> 'rd'
|
170
|
+
'11'.ordinal #=> 'th'
|
171
|
+
```
|
172
|
+
|
173
|
+
`ordinalize`
|
174
|
+
------
|
175
|
+
transforms a number into an ordinal string used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
|
176
|
+
|
177
|
+
```ruby
|
178
|
+
'1'.ordinalize #=> '1th'
|
179
|
+
'2'.ordinalize #=> '2nd'
|
180
|
+
'3'.ordinalize #=> '3rd'
|
181
|
+
'11'.ordinalize #=> '4th'
|
182
|
+
```
|
183
|
+
|
184
|
+
`outside?`
|
185
|
+
------
|
186
|
+
Returns if n is less than start or greater than finish.
|
187
|
+
|
188
|
+
```ruby
|
189
|
+
3.outside?(4, 5) #=> true
|
190
|
+
3.outside?(3, 5) #=> false
|
191
|
+
```
|
192
|
+
|
193
|
+
`pad`
|
194
|
+
------
|
195
|
+
Returns a string representation of the number padded with pad_num to a specified length.
|
196
|
+
|
197
|
+
```ruby
|
198
|
+
3.pad #=> '003'
|
199
|
+
3.pad(pad_number: 1) #=> '113'
|
200
|
+
3.pad(precision: 4) #=> '0003'
|
201
|
+
```
|
202
|
+
|
203
|
+
`pad_precision`
|
204
|
+
------
|
205
|
+
Returns a string of padded after the '.' to n amount.
|
206
|
+
|
207
|
+
Option | Type | Default
|
208
|
+
--- | --- | ---
|
209
|
+
pad_number | integer | 0
|
210
|
+
precision | integer | 2
|
211
|
+
separator | string | '...'
|
212
|
+
|
213
|
+
```ruby
|
214
|
+
3.pad_precision #=> '3.00'
|
215
|
+
3.5.pad_precision #=> '3.50'
|
216
|
+
3.pad_precision(pad_number: 1) #=> '3.11'
|
217
|
+
```
|
218
|
+
|
219
|
+
`percentage_of`
|
220
|
+
------
|
221
|
+
Returns the percentage of a number in relation to another number.
|
222
|
+
|
223
|
+
```ruby
|
224
|
+
0.percentage_of(4) #=> 0
|
225
|
+
2.percentage_of(0) #=> 0
|
226
|
+
2.percentage_of(4) #=> 50.0
|
227
|
+
```
|
228
|
+
|
229
|
+
`power`
|
230
|
+
------
|
231
|
+
Returns the nth power of a number.
|
232
|
+
|
233
|
+
```ruby
|
234
|
+
4.power(2) #=> 16
|
235
|
+
```
|
236
|
+
|
237
|
+
`root`
|
238
|
+
------
|
239
|
+
Returns the nth root of a number.
|
240
|
+
|
241
|
+
```ruby
|
242
|
+
4.root(2) #=> 2
|
243
|
+
```
|
244
|
+
|
245
|
+
`subtract`
|
246
|
+
------
|
247
|
+
Returns the difference of two numbers.
|
248
|
+
|
249
|
+
```ruby
|
250
|
+
4.subtract(2) #=> 2
|
251
|
+
```
|
252
|
+
|
253
|
+
`to_currency`
|
254
|
+
------
|
255
|
+
Converts a number to currency string.
|
256
|
+
|
257
|
+
Option | Type | Default
|
258
|
+
--- | --- | ---
|
259
|
+
precision | integer | 2
|
260
|
+
unit | string | '$'
|
261
|
+
|
262
|
+
```ruby
|
263
|
+
3.to_currency #=> '$3.00'
|
264
|
+
3.1.to_currency #=> '$3.10'
|
265
|
+
3.11.to_currency #=> '$3.11'
|
266
|
+
3.11111.to_currency #=> '$3.11'
|
267
|
+
3.to_currency(unit: '@') #=> '@3.00'
|
268
|
+
```
|
269
|
+
|
270
|
+
`to_nearest value`
|
271
|
+
------
|
272
|
+
return the value in values that is nearest to the number.
|
273
|
+
|
274
|
+
```ruby
|
275
|
+
5.to_nearest_value([1, 3, 6, 9]) #=> 6
|
276
|
+
3.5.to_nearest_value([3.0, 3.3, 3.6, 3.9]) #=> 3.6
|
277
|
+
```
|
278
|
+
|
279
|
+
`to_percentage`
|
280
|
+
------
|
281
|
+
Converts a number to percentage string.
|
282
|
+
|
283
|
+
Option | Type | Default
|
284
|
+
--- | --- | ---
|
285
|
+
precision | integer | 2
|
286
|
+
unit | string | '%'
|
287
|
+
|
288
|
+
```ruby
|
289
|
+
3.to_percentage #=> '3.00%'
|
290
|
+
3.1.to_percentage #=> '3.10%'
|
291
|
+
3.11.to_percentage #=> '3.11%'
|
292
|
+
3.11111.to_percentage #=> '3.11%'
|
293
|
+
3.to_percentage(unit: '@') #=> '3.00@'
|
294
|
+
```
|
295
|
+
|
296
|
+
`within?`
|
297
|
+
------
|
298
|
+
Returns if another number is approximately equal within a given epsilon
|
299
|
+
|
300
|
+
```ruby
|
301
|
+
10.006.within?(10, 0.1) #=> true
|
302
|
+
```
|