Class: Array

Inherits:
Object show all
Defined in:
lib/cassandra_mapper/core_ext/array/wrap.rb,
lib/cassandra_mapper/core_ext/array/extract_options.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.wrap(object) ⇒ Object

Wraps the object in an Array unless it’s an Array. Converts the object to an Array using #to_ary if it implements that.

It differs with Array() in that it does not call to_a on the argument:

Array(:foo => :bar)      # => [[:foo, :bar]]
Array.wrap(:foo => :bar) # => [{:foo => :bar}]

Array("foo\nbar")        # => ["foo\n", "bar"], in Ruby 1.8
Array.wrap("foo\nbar")   # => ["foo\nbar"]


13
14
15
16
17
18
19
20
21
# File 'lib/cassandra_mapper/core_ext/array/wrap.rb', line 13

def self.wrap(object)
  if object.nil?
    []
  elsif object.respond_to?(:to_ary)
    object.to_ary
  else
    [object]
  end
end

Instance Method Details

#extract_options!Object

Extracts options from a set of arguments. Removes and returns the last element in the array if it’s a hash, otherwise returns a blank hash.

def options(*args)
  args.extract_options!
end

options(1, 2)           # => {}
options(1, 2, :a => :b) # => {:a=>:b}


22
23
24
25
26
27
28
# File 'lib/cassandra_mapper/core_ext/array/extract_options.rb', line 22

def extract_options!
  if last.is_a?(Hash) && last.extractable_options?
    pop
  else
    {}
  end
end