Implement input handling in Env

This commit is contained in:
Thibault Jouan 2014-01-20 22:26:27 +00:00
parent d347b8d6f5
commit a871bb4009
2 changed files with 16 additions and 2 deletions

View File

@ -1,10 +1,11 @@
module Producer
module Core
class Env
attr_reader :output
attr_reader :input, :output
attr_accessor :target
def initialize(output: $stdout)
def initialize(input: $stdin, output: $stdout)
@input = input
@output = output
@target = nil
end

View File

@ -5,6 +5,10 @@ module Producer::Core
subject(:env) { Env.new }
describe '#initialize' do
it 'assigns $stdin as the default output' do
expect(env.input).to be $stdin
end
it 'assigns $stdout as the default output' do
expect(env.output).to be $stdout
end
@ -13,6 +17,15 @@ module Producer::Core
expect(env.target).not_to be
end
context 'when input is given as argument' do
let(:input) { double 'input' }
subject(:env) { described_class.new(input: input) }
it 'assigns the given input' do
expect(env.input).to eq input
end
end
context 'when output is given as argument' do
let(:output) { double 'output' }
subject(:env) { described_class.new(output: output) }