inject:
path = %w[positions primary_position position name]
value = path.inject(player) { |h, k| h && h[k] }
h && h[k] , , , Hash, h. , .
Hash, :
class Hash
def follow_path(*path)
path.inject(self) { |h, k| h && h[k] }
end
end
value = person.follow_path(*%w[positions primary_position position name])
:
private
def follow_path(h, *path)
path.flatten.inject(h) { |h, k| h && h[k] }
end
:
value = follow_path(person, %w[positions primary_position position name])