Class: Numeric
- Includes:
- Multipliers, Random::NumericExtensions
- Defined in:
- lib/core/facets/boolean.rb,
lib/core/facets/object/dup.rb,
lib/standard/facets/random.rb,
lib/core/facets/kernel/blank.rb,
lib/core/facets/numeric/round.rb,
lib/core/facets/numeric/approx.rb,
lib/core/facets/numeric/length.rb,
lib/core/facets/numeric/spacing.rb,
lib/core/facets/numeric/distance.rb,
lib/supplemental/facets/multipliers.rb
Defined Under Namespace
Modules: Multipliers
Instance Method Summary collapse
-
#approx?(x, n = 0.01) ⇒ Boolean
Determines if another number is approximately equal within a given _n_th degree.
- #blank? ⇒ Boolean
- #clone? ⇒ Boolean
-
#distance(other) ⇒ Object
Returns the distance between self an another value.
-
#dup! ⇒ Object
Since Numeric is immutable it cannot be duplicated.
- #dup? ⇒ Boolean
-
#length ⇒ Object
Returns
self, useful for polymorphic cases. -
#round_at(*args) ⇒ Object
Conceptually, rounding is expected to apply to floating point numbers.
-
#round_to(*args) ⇒ Object
See Float#round_to.
-
#spacing ⇒ Object
Returns the size of the string representation of a numerical value.
-
#to_b ⇒ Object
Provides a boolean interpretation of self.
Methods included from Multipliers
#atto, #centi, #deci, #deka, #exa, #exbi, #femto, #gibi, #giga, #hecto, #kibi, #kilo, #mebi, #mega, #micro, #milli, #nano, #pebi, #peta, #pico, #tebi, #tera
Methods included from Random::NumericExtensions
Instance Method Details
#approx?(x, n = 0.01) ⇒ Boolean
Determines if another number is approximately equal within a given _n_th degree. Defaults to 100ths if the degree is not specified.
CREDIT: Trans
9 10 11 12 |
# File 'lib/core/facets/numeric/approx.rb', line 9 def approx?(x, n=0.01) return(self == x) if n == 0 (self - x).abs <= n end |
#blank? ⇒ Boolean
80 81 82 |
# File 'lib/core/facets/kernel/blank.rb', line 80 def blank? false end |
#clone? ⇒ Boolean
78 |
# File 'lib/core/facets/object/dup.rb', line 78 def clone? ; false ; end |
#distance(other) ⇒ Object
Returns the distance between self an another value. This is the same as #- but it provides an alternative for common naming between variant classes.
4.distance(3) #=> 1
9 10 11 |
# File 'lib/core/facets/numeric/distance.rb', line 9 def distance(other) self - other end |
#dup! ⇒ Object
Since Numeric is immutable it cannot be duplicated. For this reason #try_dup returns self.
1.dup! #=> 1
76 |
# File 'lib/core/facets/object/dup.rb', line 76 def dup! ; self ; end |
#dup? ⇒ Boolean
77 |
# File 'lib/core/facets/object/dup.rb', line 77 def dup? ; false ; end |
#length ⇒ Object
Returns self, useful for polymorphic cases.
5 6 7 |
# File 'lib/core/facets/numeric/length.rb', line 5 def length self end |
#round_at(*args) ⇒ Object
Conceptually, rounding is expected to apply to floating point numbers. However it can actually be applied to pretty much any Numeric object. For example, one could round an Integer to the nearest kilo.
See Float#round_at.
9 10 11 |
# File 'lib/core/facets/numeric/round.rb', line 9 def round_at(*args) to_f.round_at(*args) end |
#round_to(*args) ⇒ Object
See Float#round_to.
15 16 17 |
# File 'lib/core/facets/numeric/round.rb', line 15 def round_to(*args) to_f.round_to(*args) end |
#spacing ⇒ Object
Returns the size of the string representation of a numerical value.
1.spacing #=> 1
10.spacing #=> 2
100.spacing #=> 3
-100.spacing #=> 4
1.2.spacing #=> 3
CREDIT: Victor H. Goff III
14 15 16 |
# File 'lib/core/facets/numeric/spacing.rb', line 14 def spacing to_s.length end |
#to_b ⇒ Object
Provides a boolean interpretation of self. If self == 0 then false else true.
0.to_b #=> false
1.to_b #=> true
2.3.to_b #=> true
64 65 66 |
# File 'lib/core/facets/boolean.rb', line 64 def to_b self == 0 ? false : true end |