Class: Numeric
Constant Summary
- 
    EXABYTE =
    
 # File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 7PETABYTE * 1024 
- 
    GIGABYTE =
    
 # File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 4MEGABYTE * 1024 
- 
    KILOBYTE =
    
 # File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 21024
- 
    MEGABYTE =
    
 # File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 3KILOBYTE * 1024 
- 
    PETABYTE =
    
 # File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 6TERABYTE * 1024 
- 
    TERABYTE =
    
 # File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 5GIGABYTE * 1024 
Instance Attribute Summary
- #html_safe? ⇒ Boolean readonly
Instance Method Summary
- 
    
      #byte  
    
    Alias for #bytes. 
- 
    
      #bytes  
      (also: #byte)
    
    Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes. 
- 
    
      #day  
    
    Alias for #days. 
- #days (also: #day)
- 
    
      #exabyte  
    
    Alias for #exabytes. 
- #exabytes (also: #exabyte)
- 
    
      #fortnight  
    
    Alias for #fortnights. 
- #fortnights (also: #fortnight)
- 
    
      #gigabyte  
    
    Alias for #gigabytes. 
- #gigabytes (also: #gigabyte)
- 
    
      #hour  
    
    Alias for #hours. 
- #hours (also: #hour)
- 
    
      #in_milliseconds  
    
    Used with the standard time durations, like 1.hour.in_milliseconds – so we can feed them to JavaScript functions like getTime(). 
- 
    
      #kilobyte  
    
    Alias for #kilobytes. 
- #kilobytes (also: #kilobyte)
- 
    
      #megabyte  
    
    Alias for #megabytes. 
- #megabytes (also: #megabyte)
- 
    
      #minute  
    
    Alias for #minutes. 
- #minutes (also: #minute)
- 
    
      #petabyte  
    
    Alias for #petabytes. 
- #petabytes (also: #petabyte)
- 
    
      #second  
    
    Alias for #seconds. 
- 
    
      #seconds  
      (also: #second)
    
    Enables the use of time calculations and declarations, like 45.minutes + 2.hours + 4.years. 
- 
    
      #terabyte  
    
    Alias for #terabytes. 
- #terabytes (also: #terabyte)
- 
    
      #to_formatted_s(format = :default, options = {})  
    
    Provides options for converting numbers into formatted strings. 
- 
    
      #week  
    
    Alias for #weeks. 
- #weeks (also: #week)
Instance Attribute Details
    #html_safe?  ⇒ Boolean  (readonly)
  
  [ GitHub ]
# File 'activesupport/lib/active_support/core_ext/string/output_safety.rb', line 126
def html_safe? true end
Instance Method Details
#byte
Alias for #bytes.
# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 13
alias :byte :bytes
#bytes Also known as: #byte
Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes
# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 10
def bytes self end
#day
Alias for #days.
# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 37
alias :day :days
#days Also known as: #day
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 34
def days ActiveSupport::Duration.new(self * 24.hours, [[:days, self]]) end
#exabyte
Alias for #exabytes.
# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 43
alias :exabyte :exabytes
#exabytes Also known as: #exabyte
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 40
def exabytes self * EXABYTE end
#fortnight
Alias for #fortnights.
# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 47
alias :fortnight :fortnights
#fortnights Also known as: #fortnight
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 44
def fortnights ActiveSupport::Duration.new(self * 2.weeks, [[:days, self * 14]]) end
#gigabyte
Alias for #gigabytes.
# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 28
alias :gigabyte :gigabytes
#gigabytes Also known as: #gigabyte
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 25
def gigabytes self * GIGABYTE end
#hour
Alias for #hours.
# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 32
alias :hour :hours
#hours Also known as: #hour
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 29
def hours ActiveSupport::Duration.new(self * 3600, [[:seconds, self * 3600]]) end
#in_milliseconds
Used with the standard time durations, like 1.hour.in_milliseconds – so we can feed them to JavaScript functions like getTime().
# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 51
def in_milliseconds self * 1000 end
#kilobyte
Alias for #kilobytes.
# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 18
alias :kilobyte :kilobytes
#kilobytes Also known as: #kilobyte
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 15
def kilobytes self * KILOBYTE end
#megabyte
Alias for #megabytes.
# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 23
alias :megabyte :megabytes
#megabytes Also known as: #megabyte
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 20
def megabytes self * MEGABYTE end
#minute
Alias for #minutes.
# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 27
alias :minute :minutes
#minutes Also known as: #minute
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 24
def minutes ActiveSupport::Duration.new(self * 60, [[:seconds, self * 60]]) end
#petabyte
Alias for #petabytes.
# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 38
alias :petabyte :petabytes
#petabytes Also known as: #petabyte
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 35
def petabytes self * PETABYTE end
#second
Alias for #seconds.
# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 22
alias :second :seconds
#seconds 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# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 19
def seconds ActiveSupport::Duration.new(self, [[:seconds, self]]) end
#terabyte
Alias for #terabytes.
# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 33
alias :terabyte :terabytes
#terabytes Also known as: #terabyte
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/numeric/bytes.rb', line 30
def terabytes self * TERABYTE end
#to_formatted_s(format = :default, options = {})
Provides options for converting numbers into formatted strings. Options are provided for phone numbers, currency, percentage, precision, positional notation, file size and pretty printing.
Options
For details on which formats use which options, see ::ActiveSupport::NumberHelper
Examples
Phone Numbers:
5551234.to_s(:phone)                                     # => 555-1234
1235551234.to_s(:phone)                                  # => 123-555-1234
1235551234.to_s(:phone, area_code: true)                 # => (123) 555-1234
1235551234.to_s(:phone, delimiter: ' ')                  # => 123 555 1234
1235551234.to_s(:phone, area_code: true, extension: 555) # => (123) 555-1234 x 555
1235551234.to_s(:phone, country_code: 1)                 # => +1-123-555-1234
1235551234.to_s(:phone, country_code: 1, extension: 1343, delimiter: '.')
# => +1.123.555.1234 x 1343
Currency:
1234567890.50.to_s(:currency)                 # => $1,234,567,890.50
1234567890.506.to_s(:currency)                # => $1,234,567,890.51
1234567890.506.to_s(:currency, precision: 3)  # => $1,234,567,890.506
1234567890.506.to_s(:currency, locale: :fr)   # => 1 234 567 890,51 €
-1234567890.50.to_s(:currency, negative_format: '(%u%n)')
# => ($1,234,567,890.50)
1234567890.50.to_s(:currency, unit: '£', separator: ',', delimiter: '')
# => £1234567890,50
1234567890.50.to_s(:currency, unit: '£', separator: ',', delimiter: '', format: '%n %u')
# => 1234567890,50 £
Percentage:
100.to_s(:percentage)                                  # => 100.000%
100.to_s(:percentage, precision: 0)                    # => 100%
1000.to_s(:percentage, delimiter: '.', separator: ',') # => 1.000,000%
302.24398923423.to_s(:percentage, precision: 5)        # => 302.24399%
1000.to_s(:percentage, locale: :fr)                    # => 1 000,000%
100.to_s(:percentage, format: '%n  %')                 # => 100.000  %
Delimited:
12345678.to_s(:delimited)                     # => 12,345,678
12345678.05.to_s(:delimited)                  # => 12,345,678.05
12345678.to_s(:delimited, delimiter: '.')     # => 12.345.678
12345678.to_s(:delimited, delimiter: ',')     # => 12,345,678
12345678.05.to_s(:delimited, separator: ' ')  # => 12,345,678 05
12345678.05.to_s(:delimited, locale: :fr)     # => 12 345 678,05
98765432.98.to_s(:delimited, delimiter: ' ', separator: ',')
# => 98 765 432,98
Rounded:
111.2345.to_s(:rounded)                                      # => 111.235
111.2345.to_s(:rounded, precision: 2)                        # => 111.23
13.to_s(:rounded, precision: 5)                              # => 13.00000
389.32314.to_s(:rounded, precision: 0)                       # => 389
111.2345.to_s(:rounded, significant: true)                   # => 111
111.2345.to_s(:rounded, precision: 1, significant: true)     # => 100
13.to_s(:rounded, precision: 5, significant: true)           # => 13.000
111.234.to_s(:rounded, locale: :fr)                          # => 111,234
13.to_s(:rounded, precision: 5, significant: true, strip_insignificant_zeros: true)
# => 13
389.32314.to_s(:rounded, precision: 4, significant: true)    # => 389.3
1111.2345.to_s(:rounded, precision: 2, separator: ',', delimiter: '.')
# => 1.111,23
Human-friendly size in Bytes:
123.to_s(:human_size)                                   # => 123 Bytes
1234.to_s(:human_size)                                  # => 1.21 KB
12345.to_s(:human_size)                                 # => 12.1 KB
1234567.to_s(:human_size)                               # => 1.18 MB
1234567890.to_s(:human_size)                            # => 1.15 GB
1234567890123.to_s(:human_size)                         # => 1.12 TB
1234567.to_s(:human_size, precision: 2)                 # => 1.2 MB
483989.to_s(:human_size, precision: 2)                  # => 470 KB
1234567.to_s(:human_size, precision: 2, separator: ',') # => 1,2 MB
1234567890123.to_s(:human_size, precision: 5)           # => "1.1228 TB"
524288000.to_s(:human_size, precision: 5)               # => "500 MB"
Human-friendly format:
123.to_s(:human)                                       # => "123"
1234.to_s(:human)                                      # => "1.23 Thousand"
12345.to_s(:human)                                     # => "12.3 Thousand"
1234567.to_s(:human)                                   # => "1.23 Million"
1234567890.to_s(:human)                                # => "1.23 Billion"
1234567890123.to_s(:human)                             # => "1.23 Trillion"
1234567890123456.to_s(:human)                          # => "1.23 Quadrillion"
1234567890123456789.to_s(:human)                       # => "1230 Quadrillion"
489939.to_s(:human, precision: 2)                      # => "490 Thousand"
489939.to_s(:human, precision: 4)                      # => "489.9 Thousand"
1234567.to_s(:human, precision: 4,
                 significant: false)                   # => "1.2346 Million"
1234567.to_s(:human, precision: 1,
                 separator: ',',
                 significant: false)                   # => "1,2 Million"# File 'activesupport/lib/active_support/core_ext/numeric/conversions.rb', line 100
def to_formatted_s(format = :default, = {}) case format when :phone return ActiveSupport::NumberHelper.number_to_phone(self, ) when :currency return ActiveSupport::NumberHelper.number_to_currency(self, ) when :percentage return ActiveSupport::NumberHelper.number_to_percentage(self, ) when :delimited return ActiveSupport::NumberHelper.number_to_delimited(self, ) when :rounded return ActiveSupport::NumberHelper.number_to_rounded(self, ) when :human return ActiveSupport::NumberHelper.number_to_human(self, ) when :human_size return ActiveSupport::NumberHelper.number_to_human_size(self, ) else self.to_default_s end end
#week
Alias for #weeks.
# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 42
alias :week :weeks
#weeks Also known as: #week
[ GitHub ]# File 'activesupport/lib/active_support/core_ext/numeric/time.rb', line 39
def weeks ActiveSupport::Duration.new(self * 7.days, [[:days, self * 7]]) end