class Kashi::DSL
Attributes
result[R]
Public Class Methods
define(source, filepath, options)
click to toggle source
# File lib/kashi/dsl.rb, line 8 def define(source, filepath, options) self.new(filepath, options) do eval(source, binding, filepath) end end
new(filepath, options, &block)
click to toggle source
# File lib/kashi/dsl.rb, line 17 def initialize(filepath, options, &block) @filepath = filepath @result = OpenStruct.new(cake: nil) @context = Hashie::Mash.new( filepath: filepath, templates: {}, options: options, ) instance_eval(&block) end
Public Instance Methods
cake(&block)
click to toggle source
# File lib/kashi/dsl.rb, line 46 def cake(&block) if @result.cake @result.cake = Cake.new(@context, @result.cake.tests, @result.cake.contact_groups, &block).result else @result.cake = Cake.new(@context, &block).result end end
require(file)
click to toggle source
# File lib/kashi/dsl.rb, line 30 def require(file) scfile = (file =~ %r|\A/|) ? file : File.expand_path(File.join(File.dirname(@filepath), file)) if File.exist?(scfile) instance_eval(File.read(scfile), scfile) elsif File.exist?("#{scfile}.rb") instance_eval(File.read("#{scfile}.rb"), "#{scfile}.rb") else Kernel.require(file) end end
template(name, &block)
click to toggle source
# File lib/kashi/dsl.rb, line 42 def template(name, &block) @context.templates[name.to_s] = block end