aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/core_ext/array/wrap.rb
blob: 38bb68c1ec7f53991714a0719dcf8142049ddbe8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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.
  def self.wrap(object)
    if object.nil?
      []
    # to_a doesn't work correctly with Array() but to_ary always does
    elsif object.respond_to?(:to_a) && !object.respond_to?(:to_ary)
      [object]
    else
      Array(object)
    end
  end
end