From 53db841b2dfa864eed7a530bacdc3c418ec21679 Mon Sep 17 00:00:00 2001 From: Thibault Jouan Date: Tue, 13 Aug 2013 01:36:33 +0000 Subject: [PATCH] Remove Env#current_recipe attribute --- features/recipes/env.feature | 3 +-- lib/producer/core/cli.rb | 2 +- lib/producer/core/env.rb | 8 +++----- lib/producer/core/recipe/dsl.rb | 2 +- spec/producer/core/cli_spec.rb | 2 +- spec/producer/core/env_spec.rb | 23 ++++------------------- 6 files changed, 11 insertions(+), 29 deletions(-) diff --git a/features/recipes/env.feature b/features/recipes/env.feature index d1b27b8..f3ee4a2 100644 --- a/features/recipes/env.feature +++ b/features/recipes/env.feature @@ -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" diff --git a/lib/producer/core/cli.rb b/lib/producer/core/cli.rb index 7bd9ddc..f0726db 100644 --- a/lib/producer/core/cli.rb +++ b/lib/producer/core/cli.rb @@ -21,7 +21,7 @@ module Producer end def env - @env ||= Env.new(recipe) + @env ||= Env.new end def recipe diff --git a/lib/producer/core/env.rb b/lib/producer/core/env.rb index d784e1d..a1e29f6 100644 --- a/lib/producer/core/env.rb +++ b/lib/producer/core/env.rb @@ -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) diff --git a/lib/producer/core/recipe/dsl.rb b/lib/producer/core/recipe/dsl.rb index b0a7b09..2a41355 100644 --- a/lib/producer/core/recipe/dsl.rb +++ b/lib/producer/core/recipe/dsl.rb @@ -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 diff --git a/spec/producer/core/cli_spec.rb b/spec/producer/core/cli_spec.rb index 895a159..953b02c 100644 --- a/spec/producer/core/cli_spec.rb +++ b/spec/producer/core/cli_spec.rb @@ -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 diff --git a/spec/producer/core/env_spec.rb b/spec/producer/core/env_spec.rb index 15dd6e0..21bd0d1 100644 --- a/spec/producer/core/env_spec.rb +++ b/spec/producer/core/env_spec.rb @@ -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