aboutsummaryrefslogblamecommitdiffstats
path: root/activesupport/lib/active_support/core_ext/array/wrap.rb
blob: e211bdeeca89a159daf987fe5c576e579301a07a (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12


                                                                    








                                                                 
                       
                  
        

                                     
        
              


       
class Array
  # 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"]
  def self.wrap(object)
    if object.nil?
      []
    elsif object.respond_to?(:to_ary)
      object.to_ary
    else
      [object]
    end
  end
end