aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
diff options
context:
space:
mode:
authorLuca Guidi <guidi.luca@gmail.com>2009-06-13 12:43:07 +0200
committerJeremy Kemper <jeremy@bitsweat.net>2009-06-13 14:03:45 -0700
commit9eeb5fed2ff8e781e56202f62b125bfadc486999 (patch)
tree3521370a95acde561ef80b2a5fe0df9fe99dfc13 /activesupport/lib
parentd32965399ccfa2052a4d52b70db1bae0ca16830b (diff)
downloadrails-9eeb5fed2ff8e781e56202f62b125bfadc486999.tar.gz
rails-9eeb5fed2ff8e781e56202f62b125bfadc486999.tar.bz2
rails-9eeb5fed2ff8e781e56202f62b125bfadc486999.zip
Bytes calculation speed up
[#2800 state:committed] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
Diffstat (limited to 'activesupport/lib')
-rw-r--r--activesupport/lib/active_support/core_ext/numeric/bytes.rb23
1 files changed, 15 insertions, 8 deletions
diff --git a/activesupport/lib/active_support/core_ext/numeric/bytes.rb b/activesupport/lib/active_support/core_ext/numeric/bytes.rb
index 507d651261..deea8e9358 100644
--- a/activesupport/lib/active_support/core_ext/numeric/bytes.rb
+++ b/activesupport/lib/active_support/core_ext/numeric/bytes.rb
@@ -1,4 +1,11 @@
class Numeric
+ KILOBYTE = 1024
+ MEGABYTE = KILOBYTE * 1024
+ GIGABYTE = MEGABYTE * 1024
+ TERABYTE = GIGABYTE * 1024
+ PETABYTE = TERABYTE * 1024
+ EXABYTE = PETABYTE * 1024
+
# Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes
def bytes
self
@@ -6,32 +13,32 @@ class Numeric
alias :byte :bytes
def kilobytes
- self * 1024
+ self * KILOBYTE
end
alias :kilobyte :kilobytes
def megabytes
- self * 1024.kilobytes
+ self * MEGABYTE
end
alias :megabyte :megabytes
def gigabytes
- self * 1024.megabytes
+ self * GIGABYTE
end
alias :gigabyte :gigabytes
def terabytes
- self * 1024.gigabytes
+ self * TERABYTE
end
alias :terabyte :terabytes
-
+
def petabytes
- self * 1024.terabytes
+ self * PETABYTE
end
alias :petabyte :petabytes
-
+
def exabytes
- self * 1024.petabytes
+ self * EXABYTE
end
alias :exabyte :exabytes
end