Class: Bowler::DSL
- Inherits:
-
Object
- Object
- Bowler::DSL
- Defined in:
- lib/bowler/dsl.rb
Instance Attribute Summary collapse
-
#global_dependencies ⇒ Object
readonly
Returns the value of attribute global_dependencies.
-
#processes ⇒ Object
readonly
Returns the value of attribute processes.
Class Method Summary collapse
Instance Method Summary collapse
- #dependency(*dependencies) ⇒ Object
- #eval_pinfile(pinfile) ⇒ Object
-
#initialize ⇒ DSL
constructor
A new instance of DSL.
- #process(params) ⇒ Object
- #to_definition ⇒ Object
Constructor Details
#initialize ⇒ DSL
Returns a new instance of DSL.
19 20 21 22 23 |
# File 'lib/bowler/dsl.rb', line 19 def initialize @processes = [] @global_dependencies = [] @specified_dependencies = [] end |
Instance Attribute Details
#global_dependencies ⇒ Object (readonly)
Returns the value of attribute global_dependencies.
3 4 5 |
# File 'lib/bowler/dsl.rb', line 3 def global_dependencies @global_dependencies end |
#processes ⇒ Object (readonly)
Returns the value of attribute processes.
3 4 5 |
# File 'lib/bowler/dsl.rb', line 3 def processes @processes end |
Class Method Details
.evaluate(pinfile) ⇒ Object
5 6 7 8 9 |
# File 'lib/bowler/dsl.rb', line 5 def self.evaluate(pinfile) dsl = new dsl.eval_pinfile(pinfile) dsl.to_definition end |
Instance Method Details
#dependency(*dependencies) ⇒ Object
25 26 27 |
# File 'lib/bowler/dsl.rb', line 25 def dependency(*dependencies) @global_dependencies += [dependencies].flatten end |
#eval_pinfile(pinfile) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/bowler/dsl.rb', line 11 def eval_pinfile(pinfile) raise PinfileNotFound unless File.exists?(pinfile) file = File.read(pinfile) instance_eval( file ) rescue SyntaxError => e raise PinfileError, e end |
#process(params) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/bowler/dsl.rb', line 29 def process(params) if params.is_a? Hash parent = params.keys.first dependencies = [params.values.first] @processes << { :process => parent, :dependencies => [dependencies].flatten } @specified_dependencies += dependencies.flatten else @processes << { :process => params, :dependencies => [ ] } end end |
#to_definition ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/bowler/dsl.rb', line 41 def to_definition definition = { :tree => @processes.each_with_object({}) {|p, hash| hash[p[:process]] = (p[:dependencies] + @global_dependencies).uniq }, :processes => (@processes.map {|x| x[:process]} + @global_dependencies + @specified_dependencies).uniq } OpenStruct.new(definition) end |