module EdgeRider::CollectIds::Array

Public Instance Methods

collect_ids() click to toggle source
# File lib/edge_rider/collect_ids.rb, line 8
def collect_ids
  collect do |obj|
    case obj
    when Integer
      obj
    when ActiveRecord::Base
      obj.id
    when String
      if obj.match(/\A\d+\z/)
        obj.to_i
      else
        raise Uncollectable, "Cannot collect an id from #{obj.inspect}"
      end
    else
      raise Uncollectable, "Cannot collect an id from #{obj.inspect}"
    end
  end
end