Нет доступа к os.windows?
в библиотеке шеф-повара, тогда как в рецепте он доступен. Я подумал, что возможно получить его, добавив строку require 'os'
в мою библиотеку, чтобы сделать ее доступной.
require 'os'
module Project
module Helper
# ...
def serviceExists?(service_name)
if os.windows?
puts 'Windows detected'
# ... etc ...
else
raise 'Unimplemented..'
end
end
# ...
end
end
Это не сработало. Вместо этого я получил ошибку:
LoadError
---------
cannot load such file -- os
Возможно ли получить доступ к переменной os
или определить операционную систему в библиотеке, не передав os
в качестве параметра методу? Я надеялся справиться со сложностями ОС в библиотеке, чтобы сохранить рецепт чище.
Я вызываю код с помощью следующего оператора not_if
.
batch "Install #{service_name} service" do
extend Project::Helper
cwd install_home
code <<-EOH
@echo off
call \"installSvc.cmd\"
EOH
not_if { serviceExists?(service_name) }
end