diff --git a/lib/producer/core/cli.rb b/lib/producer/core/cli.rb index 0341657..c6c39d8 100644 --- a/lib/producer/core/cli.rb +++ b/lib/producer/core/cli.rb @@ -1,10 +1,10 @@ module Producer module Core class CLI - attr_reader :arguments - USAGE = "Usage: #{File.basename $0} recipe_file" + attr_reader :arguments + def initialize(arguments, stdout = $stdout) @stdout = stdout @arguments = arguments diff --git a/lib/producer/core/recipe.rb b/lib/producer/core/recipe.rb index 50e5c39..8de3291 100644 --- a/lib/producer/core/recipe.rb +++ b/lib/producer/core/recipe.rb @@ -1,12 +1,14 @@ module Producer module Core class Recipe - attr_accessor :tasks - - def self.evaluate_from_file(filepath, env) - DSL.evaluate(File.read(filepath), env) + class << self + def evaluate_from_file(filepath, env) + DSL.evaluate(File.read(filepath), env) + end end + attr_accessor :tasks + def initialize(tasks = []) @tasks = tasks end diff --git a/lib/producer/core/recipe/dsl.rb b/lib/producer/core/recipe/dsl.rb index 8076aad..935b24c 100644 --- a/lib/producer/core/recipe/dsl.rb +++ b/lib/producer/core/recipe/dsl.rb @@ -2,13 +2,15 @@ module Producer module Core class Recipe class DSL - attr_reader :tasks - - def self.evaluate(code, env) - dsl = new(code).evaluate(env) - Recipe.new(dsl.tasks) + class << self + def evaluate(code, env) + dsl = new(code).evaluate(env) + Recipe.new(dsl.tasks) + end end + attr_reader :tasks + def initialize(code = nil, &block) @code = code @block = block diff --git a/lib/producer/core/task.rb b/lib/producer/core/task.rb index 5559cb2..abec7d9 100644 --- a/lib/producer/core/task.rb +++ b/lib/producer/core/task.rb @@ -1,12 +1,14 @@ module Producer module Core class Task - attr_reader :name, :actions, :condition - - def self.evaluate(name, env, &block) - DSL.evaluate(name, env, &block) + class << self + def evaluate(name, env, &block) + DSL.evaluate(name, env, &block) + end end + attr_reader :name, :actions, :condition + def initialize(name, actions = [], condition = true) @name = name @actions = actions