From 3d1f95d0e8ca70f5d892d9b2ed78e99ff7cb3bde Mon Sep 17 00:00:00 2001
From: Akshay Vishnoi <akshay.vishnoi@vinsol.com>
Date: Tue, 22 Dec 2015 23:05:50 +0530
Subject: Add support for Petabyte and Exabyte in number to human size

---
 activesupport/lib/active_support/core_ext/numeric/conversions.rb        | 2 ++
 activesupport/lib/active_support/locale/en.yml                          | 2 ++
 activesupport/lib/active_support/number_helper.rb                       | 2 ++
 .../lib/active_support/number_helper/number_to_human_size_converter.rb  | 2 +-
 4 files changed, 7 insertions(+), 1 deletion(-)

(limited to 'activesupport/lib')

diff --git a/activesupport/lib/active_support/core_ext/numeric/conversions.rb b/activesupport/lib/active_support/core_ext/numeric/conversions.rb
index 9a3651f29a..9f8b7edc22 100644
--- a/activesupport/lib/active_support/core_ext/numeric/conversions.rb
+++ b/activesupport/lib/active_support/core_ext/numeric/conversions.rb
@@ -75,6 +75,8 @@ module ActiveSupport::NumericWithFormat
   #  1234567.to_s(:human_size)                               # => 1.18 MB
   #  1234567890.to_s(:human_size)                            # => 1.15 GB
   #  1234567890123.to_s(:human_size)                         # => 1.12 TB
+  #  1234567890123456.to_s(:human_size)                      # => 1.1 PB
+  #  1234567890123456789.to_s(:human_size)                   # => 1.07 EB
   #  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
diff --git a/activesupport/lib/active_support/locale/en.yml b/activesupport/lib/active_support/locale/en.yml
index a4563ace8f..c64b7598ee 100644
--- a/activesupport/lib/active_support/locale/en.yml
+++ b/activesupport/lib/active_support/locale/en.yml
@@ -106,6 +106,8 @@ en:
           mb: "MB"
           gb: "GB"
           tb: "TB"
+          pb: "PB"
+          eb: "EB"
       # Used in NumberHelper.number_to_human()
       decimal_units:
         format: "%n %u"
diff --git a/activesupport/lib/active_support/number_helper.rb b/activesupport/lib/active_support/number_helper.rb
index 248521e677..191ac0dac5 100644
--- a/activesupport/lib/active_support/number_helper.rb
+++ b/activesupport/lib/active_support/number_helper.rb
@@ -235,6 +235,8 @@ module ActiveSupport
     #   number_to_human_size(1234567)                                # => 1.18 MB
     #   number_to_human_size(1234567890)                             # => 1.15 GB
     #   number_to_human_size(1234567890123)                          # => 1.12 TB
+    #   number_to_human_size(1234567890123456)                       # => 1.1 PB
+    #   number_to_human_size(1234567890123456789)                    # => 1.07 EB
     #   number_to_human_size(1234567, precision: 2)                  # => 1.2 MB
     #   number_to_human_size(483989, precision: 2)                   # => 470 KB
     #   number_to_human_size(1234567, precision: 2, separator: ',')  # => 1,2 MB
diff --git a/activesupport/lib/active_support/number_helper/number_to_human_size_converter.rb b/activesupport/lib/active_support/number_helper/number_to_human_size_converter.rb
index a4a8690bcd..a83b368b7f 100644
--- a/activesupport/lib/active_support/number_helper/number_to_human_size_converter.rb
+++ b/activesupport/lib/active_support/number_helper/number_to_human_size_converter.rb
@@ -1,7 +1,7 @@
 module ActiveSupport
   module NumberHelper
     class NumberToHumanSizeConverter < NumberConverter #:nodoc:
-      STORAGE_UNITS = [:byte, :kb, :mb, :gb, :tb]
+      STORAGE_UNITS = [:byte, :kb, :mb, :gb, :tb, :pb, :eb]
 
       self.namespace      = :human
       self.validate_float = true
-- 
cgit v1.2.3