aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/core_ext
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-01-11 22:06:05 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-01-11 22:06:05 +0000
commit1497522ab0b84f39a04774b4a6a86dea32aa9a3e (patch)
tree86a8908581bb23153c20f6c3026a0e0ecb95a405 /activesupport/lib/core_ext
parentd44deadd3912ee44d12edfc4579ed58323e4c393 (diff)
downloadrails-1497522ab0b84f39a04774b4a6a86dea32aa9a3e.tar.gz
rails-1497522ab0b84f39a04774b4a6a86dea32aa9a3e.tar.bz2
rails-1497522ab0b84f39a04774b4a6a86dea32aa9a3e.zip
Fixed the half applied 393 changeset
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@395 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activesupport/lib/core_ext')
-rw-r--r--activesupport/lib/core_ext/fixnum_ext.rb52
-rw-r--r--activesupport/lib/core_ext/hash.rb6
-rw-r--r--activesupport/lib/core_ext/hash/keys.rb36
-rw-r--r--activesupport/lib/core_ext/hash_ext.rb6
-rw-r--r--activesupport/lib/core_ext/numeric.rb8
-rw-r--r--activesupport/lib/core_ext/numeric/bytes.rb33
-rw-r--r--activesupport/lib/core_ext/numeric/time.rb58
7 files changed, 141 insertions, 58 deletions
diff --git a/activesupport/lib/core_ext/fixnum_ext.rb b/activesupport/lib/core_ext/fixnum_ext.rb
deleted file mode 100644
index 14944df3bb..0000000000
--- a/activesupport/lib/core_ext/fixnum_ext.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-class Fixnum
- def minutes
- self * 60
- end
- alias :minute :minutes
-
- def hours
- self * 60.minutes
- end
- alias :hour :hours
-
- def days
- self * 24.hours
- end
- alias :day :days
-
- def weeks
- self * 7.days
- end
- alias :week :weeks
-
- def fortnights
- self * 2.weeks
- end
- alias :fortnight :fortnights
-
- def months
- self * 30.days
- end
- alias :month :months
-
- def years
- self * 365.days
- end
- alias :year :years
-
- # Reads best without arguments: 10.minutes.ago
- def ago(time = Time.now)
- time - self
- end
-
- # Reads best with argument: 10.minutes.until(time)
- alias :until :ago
-
- # Reads best with argument: 10.minutes.since(time)
- def since(time = Time.now)
- time + self
- end
-
- # Reads best without arguments: 10.minutes.from_now
- alias :from_now :since
-end
diff --git a/activesupport/lib/core_ext/hash.rb b/activesupport/lib/core_ext/hash.rb
new file mode 100644
index 0000000000..2aa7843e75
--- /dev/null
+++ b/activesupport/lib/core_ext/hash.rb
@@ -0,0 +1,6 @@
+$:.unshift(File.dirname(__FILE__))
+require 'hash/keys'
+
+class Hash
+ include ActiveSupport::CoreExtensions::Hash::Keys
+end
diff --git a/activesupport/lib/core_ext/hash/keys.rb b/activesupport/lib/core_ext/hash/keys.rb
new file mode 100644
index 0000000000..0db37a6374
--- /dev/null
+++ b/activesupport/lib/core_ext/hash/keys.rb
@@ -0,0 +1,36 @@
+module ActiveSupport
+ module CoreExtensions
+ module Hash
+ module Keys
+
+ # Return a new hash with all keys converted to symbols.
+ def symbolize_keys
+ inject({}) do |options, (key, value)|
+ options[key.to_sym] = value
+ options
+ end
+ end
+
+ # Destructively convert all keys to symbols.
+ def symbolize_keys!
+ keys.each do |key|
+ unless key.is_a?(Symbol)
+ self[key.to_sym] = self[key]
+ delete(key)
+ end
+ end
+ self
+ end
+
+ alias_method :to_options, :symbolize_keys
+ alias_method :to_options!, :symbolize_keys!
+
+ def assert_valid_keys(valid_keys)
+ unknown_keys = keys - valid_keys
+ raise(ArgumentError, "Unknown key(s): #{unknown_keys.join(", ")}") unless unknown_keys.empty?
+ end
+
+ end
+ end
+ end
+end
diff --git a/activesupport/lib/core_ext/hash_ext.rb b/activesupport/lib/core_ext/hash_ext.rb
deleted file mode 100644
index 90670c42c7..0000000000
--- a/activesupport/lib/core_ext/hash_ext.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-class Hash
- def assert_valid_keys(valid_keys)
- unknown_keys = keys - valid_keys
- raise(ArgumentError, "Unknown key(s): #{unknown_keys.join(", ")}") unless unknown_keys.empty?
- end
-end \ No newline at end of file
diff --git a/activesupport/lib/core_ext/numeric.rb b/activesupport/lib/core_ext/numeric.rb
new file mode 100644
index 0000000000..ddc3d21c38
--- /dev/null
+++ b/activesupport/lib/core_ext/numeric.rb
@@ -0,0 +1,8 @@
+$:.unshift(File.dirname(__FILE__))
+require 'numeric/time'
+require 'numeric/bytes'
+
+class Numeric
+ include ActiveSupport::CoreExtensions::Numeric::Time
+ include ActiveSupport::CoreExtensions::Numeric::Bytes
+end
diff --git a/activesupport/lib/core_ext/numeric/bytes.rb b/activesupport/lib/core_ext/numeric/bytes.rb
new file mode 100644
index 0000000000..59846ff37e
--- /dev/null
+++ b/activesupport/lib/core_ext/numeric/bytes.rb
@@ -0,0 +1,33 @@
+module ActiveSupport
+ module CoreExtensions
+ module Numeric
+ module Bytes
+
+ def bytes
+ self
+ end
+ alias :byte :bytes
+
+ def kilobytes
+ self * 1024
+ end
+ alias :kilobyte :kilobytes
+
+ def megabytes
+ self * 1024.kilobytes
+ end
+ alias :megabyte :megabytes
+
+ def gigabytes
+ self * 1024.megabytes
+ end
+ alias :gigabyte :gigabytes
+
+ def terabytes
+ self * 1024.gigabytes
+ end
+ alias :terabyte :terabytes
+ end
+ end
+ end
+end
diff --git a/activesupport/lib/core_ext/numeric/time.rb b/activesupport/lib/core_ext/numeric/time.rb
new file mode 100644
index 0000000000..850dc9a783
--- /dev/null
+++ b/activesupport/lib/core_ext/numeric/time.rb
@@ -0,0 +1,58 @@
+module ActiveSupport
+ module CoreExtensions
+ module Numeric
+ module Time
+ def minutes
+ self * 60
+ end
+ alias :minute :minutes
+
+ def hours
+ self * 60.minutes
+ end
+ alias :hour :hours
+
+ def days
+ self * 24.hours
+ end
+ alias :day :days
+
+ def weeks
+ self * 7.days
+ end
+ alias :week :weeks
+
+ def fortnights
+ self * 2.weeks
+ end
+ alias :fortnight :fortnights
+
+ def months
+ self * 30.days
+ end
+ alias :month :months
+
+ def years
+ self * 365.days
+ end
+ alias :year :years
+
+ # Reads best without arguments: 10.minutes.ago
+ def ago(time = Time.now)
+ time - self
+ end
+
+ # Reads best with argument: 10.minutes.until(time)
+ alias :until :ago
+
+ # Reads best with argument: 10.minutes.since(time)
+ def since(time = Time.now)
+ time + self
+ end
+
+ # Reads best without arguments: 10.minutes.from_now
+ alias :from_now :since
+ end
+ end
+ end
+end