aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activesupport/CHANGELOG2
-rw-r--r--activesupport/lib/active_support/core_ext/numeric/bytes.rb11
-rw-r--r--activesupport/test/core_ext/numeric_ext_test.rb4
3 files changed, 16 insertions, 1 deletions
diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG
index b1c1f12d29..a26598ffc2 100644
--- a/activesupport/CHANGELOG
+++ b/activesupport/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Added petabytes and exebytes to numeric extensions #2397 [timct@mac.com]
+
* Added Time#end_of_month to accompany Time#beginning_of_month #2514 [Jens-Christian Fischer]
diff --git a/activesupport/lib/active_support/core_ext/numeric/bytes.rb b/activesupport/lib/active_support/core_ext/numeric/bytes.rb
index 98e5e13abb..56477673a3 100644
--- a/activesupport/lib/active_support/core_ext/numeric/bytes.rb
+++ b/activesupport/lib/active_support/core_ext/numeric/bytes.rb
@@ -27,6 +27,17 @@ module ActiveSupport #:nodoc:
self * 1024.gigabytes
end
alias :terabyte :terabytes
+
+ def petabytes
+ self * 1024.terabytes
+ end
+ alias :petabyte :petabytes
+
+ def exabytes
+ self * 1024.petabytes
+ end
+ alias :exabyte :exabytes
+
end
end
end
diff --git a/activesupport/test/core_ext/numeric_ext_test.rb b/activesupport/test/core_ext/numeric_ext_test.rb
index 770c82c872..828276d46a 100644
--- a/activesupport/test/core_ext/numeric_ext_test.rb
+++ b/activesupport/test/core_ext/numeric_ext_test.rb
@@ -46,7 +46,9 @@ class NumericExtSizeTest < Test::Unit::TestCase
1.kilobyte ** 4 => 1.terabyte,
1024.kilobytes + 2.megabytes => 3.megabytes,
2.gigabytes / 4 => 512.megabytes,
- 256.megabytes * 20 + 5.gigabytes => 10.gigabytes
+ 256.megabytes * 20 + 5.gigabytes => 10.gigabytes,
+ 1.kilobyte ** 5 => 1.petabyte,
+ 1.kilobyte ** 6 => 1.exabyte
}
relationships.each do |left, right|