diff --git a/lib/producer/core/recipe.rb b/lib/producer/core/recipe.rb index ebf5387..89fc813 100644 --- a/lib/producer/core/recipe.rb +++ b/lib/producer/core/recipe.rb @@ -1,14 +1,15 @@ module Producer module Core class Recipe - attr_reader :code + attr_reader :code, :filepath def self.from_file(filepath) - new(File.read(filepath)) + new(File.read(filepath), filepath) end - def initialize(code) - @code = code + def initialize(code, filepath = nil) + @code = code + @filepath = filepath end def evaluate diff --git a/spec/producer/core/recipe_spec.rb b/spec/producer/core/recipe_spec.rb index d52615e..00f4208 100644 --- a/spec/producer/core/recipe_spec.rb +++ b/spec/producer/core/recipe_spec.rb @@ -8,11 +8,16 @@ module Producer::Core subject(:recipe) { Recipe.new(code) } describe '.from_file' do + let (:filepath) { fixture_path_for 'recipes/empty.rb' } + subject(:recipe) { Recipe.from_file(filepath) } + it 'builds a recipe whose code is read from given file path' do - filepath = fixture_path_for 'recipes/empty.rb' - recipe = Recipe.from_file(filepath) expect(recipe.code).to eq File.read(filepath) end + + it 'builds a recipe whose file path is set from given file path' do + expect(recipe.filepath).to eq filepath + end end describe '#initialize' do