class Praegustator::Dsl
Public Class Methods
new()
click to toggle source
# File lib/praegustator/dsl.rb, line 4 def initialize @suits = [] end
Public Instance Methods
environment(name, &block)
click to toggle source
# File lib/praegustator/dsl.rb, line 8 def environment(name, &block) @environment = name end
ip(address, &block)
click to toggle source
# File lib/praegustator/dsl.rb, line 21 def ip(address, &block) search("ipaddress:#{address}",&block) end
parse_file(filename)
click to toggle source
# File lib/praegustator/dsl.rb, line 33 def parse_file(filename) if File.exists?(filename) && File.readable?(filename) self.instance_eval(IO.read(filename), filename, 1) else raise IOError, "Cannot open or read #{filename}!" end @suits end
recipe(name, &block)
click to toggle source
# File lib/praegustator/dsl.rb, line 16 def recipe(name, &block) name = name.gsub(":","\\:") search("run_list:recipe\\[#{name}\\]",&block) end
role(name, &block)
click to toggle source
# File lib/praegustator/dsl.rb, line 12 def role(name, &block) search("role:#{name}",&block) end
search(query, &block)
click to toggle source
# File lib/praegustator/dsl.rb, line 25 def search(query, &block) query = "#{query} AND chef_environment:#{@environment}" if @environment suite = TestSuite.new(query) suite.instance_eval(&block) @suits << suite suite.nodes end