From d83b11d07be8f0860dc30802fd4727522477f1aa Mon Sep 17 00:00:00 2001 From: Thibault Jouan Date: Fri, 20 Dec 2013 11:01:48 +0000 Subject: [PATCH] Remove Condition::DSL.evaluate method --- lib/producer/core/condition.rb | 4 +++- lib/producer/core/condition/dsl.rb | 6 ------ spec/producer/core/condition/dsl_spec.rb | 27 ------------------------ spec/producer/core/condition_spec.rb | 25 ++++++++++++++++------ 4 files changed, 21 insertions(+), 41 deletions(-) diff --git a/lib/producer/core/condition.rb b/lib/producer/core/condition.rb index 46a6f7a..91e7907 100644 --- a/lib/producer/core/condition.rb +++ b/lib/producer/core/condition.rb @@ -3,7 +3,9 @@ module Producer class Condition class << self def evaluate(env, &block) - DSL.evaluate(env, &block) + dsl = DSL.new(env, &block) + return_value = dsl.evaluate + Condition.new(dsl.tests, return_value) end end diff --git a/lib/producer/core/condition/dsl.rb b/lib/producer/core/condition/dsl.rb index 36f2161..5a5070d 100644 --- a/lib/producer/core/condition/dsl.rb +++ b/lib/producer/core/condition/dsl.rb @@ -3,12 +3,6 @@ module Producer class Condition class DSL class << self - def evaluate(env, &block) - dsl = new(env, &block) - return_value = dsl.evaluate - Condition.new(dsl.tests, return_value) - end - def define_test(keyword, klass) define_method(keyword) do |*args| @tests << klass.new(@env, *args) diff --git a/spec/producer/core/condition/dsl_spec.rb b/spec/producer/core/condition/dsl_spec.rb index 50bed76..1ed51d0 100644 --- a/spec/producer/core/condition/dsl_spec.rb +++ b/spec/producer/core/condition/dsl_spec.rb @@ -12,33 +12,6 @@ module Producer::Core end end - describe '.evaluate' do - it 'builds a new DSL sandbox with given env and code' do - expect(Condition::DSL) - .to receive(:new).with(env, &block).and_call_original - Condition::DSL.evaluate(env, &block) - end - - it 'evaluates the DSL sandbox code' do - dsl = double('dsl').as_null_object - allow(Condition::DSL).to receive(:new) { dsl } - expect(dsl).to receive :evaluate - Condition::DSL.evaluate(env, &block) - end - - it 'builds a condition with its test and block return value' do - expect(Condition) - .to receive(:new).with(dsl.tests, :some_condition_code) - Condition::DSL.evaluate(env, &block) - end - - it 'returns the condition' do - condition = double 'task' - allow(Condition).to receive(:new) { condition } - expect(Condition::DSL.evaluate(env, &block)).to be condition - end - end - describe '.define_test' do let(:some_test_class) { double 'SomeTest class' } diff --git a/spec/producer/core/condition_spec.rb b/spec/producer/core/condition_spec.rb index 110c427..542aa2e 100644 --- a/spec/producer/core/condition_spec.rb +++ b/spec/producer/core/condition_spec.rb @@ -11,17 +11,28 @@ module Producer::Core let(:env) { double 'env' } let(:block) { proc { :some_condition_code } } - it 'delegates to DSL.evaluate' do + it 'builds a new DSL sandbox with given env and code' do expect(Condition::DSL) - .to receive(:evaluate).with(env) do |&b| - expect(b).to be block - end + .to receive(:new).with(env, &block).and_call_original Condition.evaluate(env, &block) end - it 'returns the evaluated condition' do - condition = double 'condition' - allow(Condition::DSL).to receive(:evaluate) { condition } + it 'evaluates the DSL sandbox code' do + dsl = double('dsl').as_null_object + allow(Condition::DSL).to receive(:new) { dsl } + expect(dsl).to receive :evaluate + Condition.evaluate(env, &block) + end + + it 'builds a condition with its test and block return value' do + expect(Condition) + .to receive(:new).with([], :some_condition_code) + Condition.evaluate(env, &block) + end + + it 'returns the condition' do + condition = double 'task' + allow(Condition).to receive(:new) { condition } expect(Condition.evaluate(env, &block)).to be condition end end