summaryrefslogtreecommitdiff
path: root/lib/rinda
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rinda')
-rw-r--r--lib/rinda/rinda.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/rinda/rinda.rb b/lib/rinda/rinda.rb
index 50fb84696a..5af8ecb442 100644
--- a/lib/rinda/rinda.rb
+++ b/lib/rinda/rinda.rb
@@ -31,7 +31,7 @@ module Rinda
class Tuple
# Initialize a tuple with an Array or a Hash.
def initialize(ary_or_hash)
- if Hash === ary_or_hash
+ if hash?(ary_or_hash)
init_with_hash(ary_or_hash)
else
init_with_ary(ary_or_hash)
@@ -68,6 +68,10 @@ module Rinda
end
private
+ def hash?(ary_or_hash)
+ ary_or_hash.respond_to?(:keys)
+ end
+
def init_with_ary(ary)
@tuple = Array.new(ary.size)
@tuple.size.times do |i|