def find_one(id, options)
unless id.is_a?(String)
id = id.id if id and not id.is_a?(String)
end
if options[:timestamp] && options[:timestamp].kind_of?(Time)
options[:timestamp] = options[:timestamp].to_bigrecord_timestamp
end
requested_columns = columns_to_find(options)
raw_record =
if options[:versions] and options[:versions] > 1
timestamps = connection.get(table_name, id, "#{default_family}:updated_at", options)
timestamps.collect{|timestamp| connection.get_columns(table_name, id, requested_columns, :timestamp => timestamp.to_bigrecord_timestamp)}
else
connection.get_columns(table_name, id, requested_columns, options)
end
if raw_record
if raw_record.is_a?(Array)
unless raw_record.empty?
raw_record.collect do |r|
add_missing_cells(r, requested_columns)
rec = instantiate(r)
rec.all_attributes_loaded = true if options[:view] == :all
rec
end
else
raise RecordNotFound, "Couldn't find #{name} with ID=#{id}"
end
else
add_missing_cells(raw_record, requested_columns)
rec = instantiate(raw_record)
rec.all_attributes_loaded = true if options[:view] == :all
rec
end
else
raise RecordNotFound, "Couldn't find #{name} with ID=#{id}"
end
end