From 9875a4ae7b8ea5a94950d8d35f644d8a2d560c60 Mon Sep 17 00:00:00 2001 From: Thibault Jouan Date: Sat, 3 Aug 2013 22:52:25 +0000 Subject: [PATCH] Make remote available to env --- lib/producer/core/env.rb | 4 ++++ spec/producer/core/env_spec.rb | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/lib/producer/core/env.rb b/lib/producer/core/env.rb index d95cff0..d784e1d 100644 --- a/lib/producer/core/env.rb +++ b/lib/producer/core/env.rb @@ -14,6 +14,10 @@ module Producer def output(str) @output.puts str end + + def remote + @remote ||= Remote.new(target) + end end end end diff --git a/spec/producer/core/env_spec.rb b/spec/producer/core/env_spec.rb index cd4465d..9712de3 100644 --- a/spec/producer/core/env_spec.rb +++ b/spec/producer/core/env_spec.rb @@ -47,5 +47,23 @@ module Producer::Core expect(env.target).to eq target end end + + describe '#remote' do + it 'builds a Remote with the current target' do + env.target = 'some_hostname.example' + expect(Remote).to receive(:new).with(env.target) + env.remote + end + + it 'returns the remote' do + remote = double('remote') + allow(Remote).to receive(:new) { remote } + expect(env.remote).to eq remote + end + + it 'memoizes the remote' do + expect(env.remote).to be env.remote + end + end end end