Remove Env#current_recipe attribute
This commit is contained in:
parent
a5d9ca26f4
commit
53db841b2d
@ -3,8 +3,7 @@ Feature: `env' recipe keyword
|
||||
Scenario: exposes the internal env object
|
||||
Given a recipe with:
|
||||
"""
|
||||
puts env.current_recipe.filepath
|
||||
env
|
||||
"""
|
||||
When I execute the recipe
|
||||
Then the exit status must be 0
|
||||
And the output must contain exactly "recipe.rb\n"
|
||||
|
@ -21,7 +21,7 @@ module Producer
|
||||
end
|
||||
|
||||
def env
|
||||
@env ||= Env.new(recipe)
|
||||
@env ||= Env.new
|
||||
end
|
||||
|
||||
def recipe
|
||||
|
@ -1,14 +1,12 @@
|
||||
module Producer
|
||||
module Core
|
||||
class Env
|
||||
attr_reader :current_recipe
|
||||
attr_writer :output
|
||||
attr_accessor :target
|
||||
|
||||
def initialize(recipe = nil)
|
||||
@current_recipe = recipe
|
||||
@output = $stdout
|
||||
@target = nil
|
||||
def initialize
|
||||
@output = $stdout
|
||||
@target = nil
|
||||
end
|
||||
|
||||
def output(str)
|
||||
|
@ -13,7 +13,7 @@ module Producer
|
||||
def evaluate(env)
|
||||
@env = env
|
||||
if @code
|
||||
instance_eval @code, env.current_recipe.filepath
|
||||
instance_eval @code
|
||||
else
|
||||
instance_eval &@block
|
||||
end
|
||||
|
@ -66,7 +66,7 @@ module Producer::Core
|
||||
|
||||
describe '#env' do
|
||||
it 'builds an environment with the current recipe' do
|
||||
expect(Env).to receive(:new).with(cli.recipe)
|
||||
expect(Env).to receive(:new)
|
||||
cli.env
|
||||
end
|
||||
|
||||
|
@ -5,28 +5,13 @@ module Producer::Core
|
||||
subject(:env) { Env.new }
|
||||
|
||||
describe '#initialize' do
|
||||
it 'assigns $stdout as the default output' do
|
||||
expect(env.instance_eval { @output }).to eq $stdout
|
||||
end
|
||||
|
||||
it 'assigns nil as a default target' do
|
||||
expect(env.target).not_to be
|
||||
end
|
||||
|
||||
context 'without argument' do
|
||||
it 'assigns no recipe' do
|
||||
expect(env.current_recipe).not_to be
|
||||
end
|
||||
|
||||
it 'assigns $stdout as the default output' do
|
||||
expect(env.instance_eval { @output }).to eq $stdout
|
||||
end
|
||||
end
|
||||
|
||||
context 'when a recipe is given as argument' do
|
||||
let(:recipe) { Recipe.new(proc { nil }) }
|
||||
subject(:env) { Env.new(recipe) }
|
||||
|
||||
it 'assigns the current recipe' do
|
||||
expect(env.current_recipe).to be recipe
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#output' do
|
||||
|
Loading…
x
Reference in New Issue
Block a user