Implement Recipe#filepath method:

Returns the filepath of the recipe when it is built from a file.
This commit is contained in:
Thibault Jouan 2013-07-29 15:04:14 +00:00
parent 0ac6217245
commit 37e17d1030
2 changed files with 12 additions and 6 deletions

View File

@ -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)
def initialize(code, filepath = nil)
@code = code
@filepath = filepath
end
def evaluate

View File

@ -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