Class: Numeric
- Defined in:
- lib/active_support/core_ext/object/blank.rb,
lib/active_support/core_ext/object/json.rb,
lib/active_support/core_ext/numeric/time.rb,
lib/active_support/core_ext/numeric/bytes.rb,
lib/active_support/core_ext/numeric/inquiry.rb,
lib/active_support/core_ext/object/duplicable.rb,
lib/active_support/core_ext/string/output_safety.rb
Overview
:nodoc:
Direct Known Subclasses
Constant Summary collapse
- KILOBYTE =
1024
- MEGABYTE =
KILOBYTE * 1024
- GIGABYTE =
MEGABYTE * 1024
- TERABYTE =
GIGABYTE * 1024
- PETABYTE =
TERABYTE * 1024
- EXABYTE =
PETABYTE * 1024
Instance Method Summary collapse
-
#as_json(options = nil) ⇒ Object
:nodoc:.
-
#blank? ⇒ false
No number is blank:.
-
#bytes ⇒ Object
(also: #byte)
Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes.
-
#days ⇒ Object
(also: #day)
Returns a Duration instance matching the number of days provided.
-
#exabytes ⇒ Object
(also: #exabyte)
Returns the number of bytes equivalent to the exabytes provided.
-
#fortnights ⇒ Object
(also: #fortnight)
Returns a Duration instance matching the number of fortnights provided.
-
#gigabytes ⇒ Object
(also: #gigabyte)
Returns the number of bytes equivalent to the gigabytes provided.
-
#hours ⇒ Object
(also: #hour)
Returns a Duration instance matching the number of hours provided.
- #html_safe? ⇒ Boolean
-
#in_milliseconds ⇒ Object
Returns the number of milliseconds equivalent to the seconds provided.
-
#kilobytes ⇒ Object
(also: #kilobyte)
Returns the number of bytes equivalent to the kilobytes provided.
-
#megabytes ⇒ Object
(also: #megabyte)
Returns the number of bytes equivalent to the megabytes provided.
-
#minutes ⇒ Object
(also: #minute)
Returns a Duration instance matching the number of minutes provided.
-
#negative? ⇒ Boolean
Returns true if the number is negative.
-
#petabytes ⇒ Object
(also: #petabyte)
Returns the number of bytes equivalent to the petabytes provided.
-
#positive? ⇒ Boolean
Returns true if the number is positive.
-
#seconds ⇒ Object
(also: #second)
Enables the use of time calculations and declarations, like 45.minutes + 2.hours + 4.years.
-
#terabytes ⇒ Object
(also: #terabyte)
Returns the number of bytes equivalent to the terabytes provided.
-
#weeks ⇒ Object
(also: #week)
Returns a Duration instance matching the number of weeks provided.
Instance Method Details
#as_json(options = nil) ⇒ Object
:nodoc:
96 97 98 |
# File 'lib/active_support/core_ext/object/json.rb', line 96 def as_json( = nil) #:nodoc: self end |
#blank? ⇒ false
No number is blank:
1.blank? # => false
0.blank? # => false
131 132 133 |
# File 'lib/active_support/core_ext/object/blank.rb', line 131 def blank? false end |
#bytes ⇒ Object Also known as: byte
Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes
2.bytes # => 2
12 13 14 |
# File 'lib/active_support/core_ext/numeric/bytes.rb', line 12 def bytes self end |
#days ⇒ Object Also known as: day
Returns a Duration instance matching the number of days provided.
2.days # => 2 days
45 46 47 |
# File 'lib/active_support/core_ext/numeric/time.rb', line 45 def days ActiveSupport::Duration.days(self) end |
#exabytes ⇒ Object Also known as: exabyte
Returns the number of bytes equivalent to the exabytes provided.
2.exabytes # => 2_305_843_009_213_693_952
60 61 62 |
# File 'lib/active_support/core_ext/numeric/bytes.rb', line 60 def exabytes self * EXABYTE end |
#fortnights ⇒ Object Also known as: fortnight
Returns a Duration instance matching the number of fortnights provided.
2.fortnights # => 4 weeks
61 62 63 |
# File 'lib/active_support/core_ext/numeric/time.rb', line 61 def fortnights ActiveSupport::Duration.weeks(self * 2) end |
#gigabytes ⇒ Object Also known as: gigabyte
Returns the number of bytes equivalent to the gigabytes provided.
2.gigabytes # => 2_147_483_648
36 37 38 |
# File 'lib/active_support/core_ext/numeric/bytes.rb', line 36 def gigabytes self * GIGABYTE end |
#hours ⇒ Object Also known as: hour
Returns a Duration instance matching the number of hours provided.
2.hours # => 2 hours
37 38 39 |
# File 'lib/active_support/core_ext/numeric/time.rb', line 37 def hours ActiveSupport::Duration.hours(self) end |
#html_safe? ⇒ Boolean
130 131 132 |
# File 'lib/active_support/core_ext/string/output_safety.rb', line 130 def html_safe? true end |
#in_milliseconds ⇒ Object
Returns the number of milliseconds equivalent to the seconds provided. Used with the standard time durations, like 1.hour.in_milliseconds – so we can feed them to JavaScript functions like getTime().
2.in_milliseconds # => 2_000
71 72 73 |
# File 'lib/active_support/core_ext/numeric/time.rb', line 71 def in_milliseconds self * 1000 end |
#kilobytes ⇒ Object Also known as: kilobyte
Returns the number of bytes equivalent to the kilobytes provided.
2.kilobytes # => 2048
20 21 22 |
# File 'lib/active_support/core_ext/numeric/bytes.rb', line 20 def kilobytes self * KILOBYTE end |
#megabytes ⇒ Object Also known as: megabyte
Returns the number of bytes equivalent to the megabytes provided.
2.megabytes # => 2_097_152
28 29 30 |
# File 'lib/active_support/core_ext/numeric/bytes.rb', line 28 def megabytes self * MEGABYTE end |
#minutes ⇒ Object Also known as: minute
Returns a Duration instance matching the number of minutes provided.
2.minutes # => 2 minutes
29 30 31 |
# File 'lib/active_support/core_ext/numeric/time.rb', line 29 def minutes ActiveSupport::Duration.minutes(self) end |
#negative? ⇒ Boolean
Returns true if the number is negative.
-1.negative? # => true
0.negative? # => false
1.negative? # => false
17 18 19 |
# File 'lib/active_support/core_ext/numeric/inquiry.rb', line 17 def negative? self < 0 end |
#petabytes ⇒ Object Also known as: petabyte
Returns the number of bytes equivalent to the petabytes provided.
2.petabytes # => 2_251_799_813_685_248
52 53 54 |
# File 'lib/active_support/core_ext/numeric/bytes.rb', line 52 def petabytes self * PETABYTE end |
#positive? ⇒ Boolean
Returns true if the number is positive.
1.positive? # => true
0.positive? # => false
-1.positive? # => false
8 9 10 |
# File 'lib/active_support/core_ext/numeric/inquiry.rb', line 8 def positive? self > 0 end |
#seconds ⇒ Object Also known as: second
Enables the use of time calculations and declarations, like 45.minutes + 2.hours + 4.years.
These methods use Time#advance for precise date calculations when using from_now, ago, etc. as well as adding or subtracting their results from a Time object. For example:
# equivalent to Time.current.advance(months: 1)
1.month.from_now
# equivalent to Time.current.advance(years: 2)
2.years.from_now
# equivalent to Time.current.advance(months: 4, years: 5)
(4.months + 5.years).from_now
21 22 23 |
# File 'lib/active_support/core_ext/numeric/time.rb', line 21 def seconds ActiveSupport::Duration.seconds(self) end |
#terabytes ⇒ Object Also known as: terabyte
Returns the number of bytes equivalent to the terabytes provided.
2.terabytes # => 2_199_023_255_552
44 45 46 |
# File 'lib/active_support/core_ext/numeric/bytes.rb', line 44 def terabytes self * TERABYTE end |
#weeks ⇒ Object Also known as: week
Returns a Duration instance matching the number of weeks provided.
2.weeks # => 2 weeks
53 54 55 |
# File 'lib/active_support/core_ext/numeric/time.rb', line 53 def weeks ActiveSupport::Duration.weeks(self) end |