のブロックで行われますが、それは働いていませんでした。変数の割り当ては、私が最初にこのコードを持っていたブロック
configure
VIM = Vimrunner::RSpec.configure do |config|
config.reuse_server = true
config.start_vim do
vim = Vimrunner.start
vim
end
end
がちょうどVimrunnerサーバーの設定を行う方法です。 start_vim
メソッドは、vim
を開始するために実行されるべきものを示しています。しかし、それは本当に問題ではありません。実際には正しかった何
されました:
Vimrunner::RSpec.configure do |config|
config.reuse_server = true
config.start_vim do
VIM = Vimrunner.start
VIM
end
end
私はかなりこのことを理解していません。最初のケースでは、irb
で見つかったように、実際にVIM
定数にProcを割り当てましたが、2番目のケースでは、VIM
定数が正しく割り当てられました。
は、だから、私はこれらのブロックを使用して(グローバル名前空間にある)VIM定数を割り当てられた、ようで、私の理解が私を失敗したところ、それはだ:私はブロック内の変数を割り当てることができますどのように
ブロック内で割り当てをにするグローバルネームスペースに戻る
How does that work?たとえば、私はこのコードを試しました:
def foo
yield
end
foo do
a = 'Hello World!'
a
end
puts a
私にはエラーが表示されます。 Rubyブロック内の変数を呼び出し元のスコープに入れるにはどうすればよいですか?
実際には、それは動作しません。これは 'config.start_vim {vim = Vimrunner.start; vim} 'を実行します。それは私がそれについてそれほど混乱しているのを見つけるものです。 – hgiesel
それはほとんど同じことであるので、それは奇妙に思えます。 –
@hgiesel、更新されたコード(最後のもの)を試すことができます –