# File lib/extlib/lazy_array.rb, line 50 def values_at(*args) accumulator = [] lazy_possible = args.all? do |arg| index, length = extract_slice_arguments(arg) if index >= 0 && lazy_possible?(@head, index + length) accumulator.concat(head.values_at(*arg)) elsif index < 0 && lazy_possible?(@tail, index.abs) accumulator.concat(tail.values_at(*arg)) end end if lazy_possible accumulator else lazy_load @array.values_at(*args) end end