Sé que estoy haciendo algo estúpido o no hago algo inteligente. Con frecuencia soy culpable de ambos.Rieles: no puedo llamar a una función en un módulo en/lib: ¿qué estoy haciendo mal?
He aquí un ejemplo de lo que me está causando dolor:
he un módulo guardado en/lib como test_functions.rb que tiene este aspecto
module TestFunctions
def abc
puts 123
end
end
Al entrar en ruby script/corredor, puedo ver que el módulo se carga automáticamente (buen ol convención sobre la configuración y todo eso ...)
>> TestFunctions.instance_methods
=> ["abc"]
así se conoce el método, vamos a tratar llamándolo
>> TestFunctions.abc
NoMethodError: undefined method `abc' for TestFunctions:Module from (irb):3
Nope. ¿Qué tal esto?
>> TestFunctions::abc
NoMethodError: undefined method `abc' for TestFunctions:Module from (irb):4
Prueba Nope again.
defined?(TestFunctions::abc) #=> nil, but
TestFunctions.method_defined? :abC#=> true
Como dije en la parte superior, sé que estoy siendo tonto, ¿alguien puede decirme tonterías?
¿Has mirado la respuesta de Marcin? – m33lky