Почему Capistrano возвращает другой выбор, чем набор VARS

Возникли проблемы с капистрано 3.

Всякий раз, когда я устанавливаю значение, которое не является строкой, при получении значение исчезает, я ожидаю пустой хэш:

namespace :something

  set :my_var, Hash.new

  task :do_something do
    fetch(:my_var) # this is empty, no way to get a hash here, always a string
  end
end

Вероятно, есть способ достичь этого, но это очень нелогично и не работает, как я надеялся.

1 ответ

Я попробовал это сам, и он, кажется, делает то, что вы ожидаете: https://github.com/will-in-wi/cap_3_variable_test

Если я создаю папку, устанавливаю Capistrano, а затем создаю ее как мою deploy.rb:

# config valid only for current version of Capistrano
lock '3.4.0'

set :my_var, Hash.new

namespace :something do
  task :do_something do
    puts fetch(:my_var).class
    puts fetch(:my_var)
  end
end

И беги bundle exec cap staging something:do_something, Я получил:

Hash
{}

Не могли бы вы взглянуть на этот пример и сообщить мне, если вы видите какие-либо существенные различия?

Другие вопросы по тегам