Problema novato sobre hash ruby

hola a todos, tengo un problema resolviendo uno de los ruby quiz para
explicarme mejor voy a simplificar el problema

a={1 =>“uno”,
10=>“diez”,
100=>“cien”}

si tengo un valor=8 quiero que el script le indique que el valor esta
entre 1 y 10…en lo posible a traves de un iterador como each (el
problema original es un poco mas complicado)

seria algo asi

a.each_key do |key|
if valor>key && valor<(((aqui es donde no se que colocar))).

si coloco valor<key+1 o key.next lo que hace es sumarle uno ya que next
no es de la coleccion de hash…

lo que quisiera saber es si existe alguna funcion que me devuelva el
siguiente key o en un array el siguiente valor y asi evitar tener que
escribirla

algo como
a[1].key_next=10 o

si es un array array=[1,10,100]
a.value(1).next

la pregunta es algo tonta pero es que soy nuevo en esto y la verdad no
tengo idea
gracias!!

Angel M. wrote:

hola a todos, tengo un problema resolviendo uno de los ruby quiz para
explicarme mejor voy a simplificar el problema

a={1 =>“uno”,
10=>“diez”,
100=>“cien”}

si tengo un valor=8 quiero que el script le indique que el valor esta
entre 1 y 10…en lo posible a traves de un iterador como each (el
problema original es un poco mas complicado)

seria algo asi

a.each_key do |key|
if valor>key && valor<(((aqui es donde no se que colocar))).

si coloco valor<key+1 o key.next lo que hace es sumarle uno ya que next
no es de la coleccion de hash…

lo que quisiera saber es si existe alguna funcion que me devuelva el
siguiente key o en un array el siguiente valor y asi evitar tener que
escribirla

algo como
a[1].key_next=10 o

si es un array array=[1,10,100]
a.value(1).next

la pregunta es algo tonta pero es que soy nuevo en esto y la verdad no
tengo idea
gracias!!

Hola mira realmente no estas tan lejos de la solucion mira este codigo y
te dara una clara idea =>

def buscar(parametro)
a= {1…9 => “Uno”, 10…99 => “Diez”, 100…1000 => “Cien”}

a.keys.each do |e|
if e.include?(parametro)
puts a[e]
end
end
end
Saludos,

Cristian Vasquez
Medellín-Colombia