Yes, I was going off of memory and thought that it was memoising it, but I made a mistake and fixed it.
fib = Hash.new do |k, v|
next 1 if v == 0 || v == 1
k[v] = k[v-1] + k[v-2]
end
I like yours better though, it seems a lot simpler with the less than 2 check.