Comprender cómo funciona esta gema rspec
Frecuentes
Visto 104 veces
0
Estoy tratando de hacer que esta joya funcione, pero no tengo mucha suerte. Aunque esto está relacionado con los títeres, espero que mis preguntas no lo estén.
Estoy tratando de entender lo que sigue :rspec
si la declaración implica:
module RSpecHieraPuppet
module HieraDefaultConfiguration
extend RSpec::SharedContext
let(:hiera_config) do
{ :backends => ['rspec'],
:rspec => respond_to?(:hiera_data) ? hiera_data : {} } # this one
end
end
end
Fuente: https://github.com/amfranz/rspec-hiera-puppet/blob/master/lib/rspec-hiera-puppet/rspec.rb
¿Alguien puede aclarar qué ? hiera_data
significa aquí? Parece que no puedo encontrar ninguna referencia en la fuente de la gema.
Según tengo entendido, a partir del uso de ejemplo de la gema, la respuesta está buscando el desencadenante en la respuesta de ejemplo:
let(:hiera_data) do
{
:key123 => ['abc'],
}
end
Pero parece que no puedo rastrear lo que sucede después de que se activa porque no veo ninguna conexión con rspec_backend.rb
archivo que se encarga de manejar esto.
Cualquier ayuda para rastrear las llamadas realizadas aquí sería apreciada. (gem solo tiene 3 archivos para trabajar)
1 Respuestas
0
Parece que si ha definido un
let(:hiera_data) { {:key => 'value'} }
ese será el valor de la clave :rspec. Eso es porque en ese caso el objeto en el alcance responde a hiera_data. De lo contrario, el valor será {}.
Para obtener información sobre la sintaxis de respond_to? leer aquí
Creo que eso es lo que estás preguntando.
respondido 08 mar '13, 16:03
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas ruby rspec or haz tu propia pregunta.
Estaba confundido en cuanto a qué
hiera_data
es. Soy bastante nuevo en Ruby, así que no podía entender por qué respond_to busca el símbolohiera_data
y por qué el verdadero valor de la declaración no es un símbolo - KartikEsa es la sintaxis de respond_to?; pasa el nombre del método que está buscando como un símbolo. Si es verdadero, en realidad está llamando (enviando) el método a sí mismo. He agregado un enlace en mi respuesta con información sobre respond_to? - roca