Sha256: a4d135cc1ba0e7d8c95cf112d451b9ecca2c4ded3d5923f1d0de49456183008d
Contents?: true
Size: 1.84 KB
Versions: 4
Compression:
Stored size: 1.84 KB
Contents
require_relative 'freestyle' require_relative 'flow' require_relative 'pipeline' require_relative 'multijob' require_relative 'view' require_relative 'xml_generator' module JenkinsJob # dsl methods for job builder class Builder attr_reader :jobs, :views def initialize(&block) @default_setting = [] @default_setting << block if block_given? @jobs = {} @views = {} end def add_extension(&block) @default_setting << block if block_given? end def freestyle(name, &block) @jobs[name] = FreeStyle.new(name, self) @default_setting.each do |extension| @jobs[name].instance_eval(&extension) end @jobs[name].instance_eval(&block) end def flow(name, &block) @jobs[name] = Flow.new(name, self) @default_setting.each do |extension| @jobs[name].instance_eval(&extension) end @jobs[name].instance_eval(&block) end def pipeline(name, &block) @jobs[name] = Pipeline.new(name, self) @default_setting.each do |extension| @jobs[name].instance_eval(&extension) end @jobs[name].instance_eval(&block) end def multi(name, &block) @jobs[name] = MultiJob.new(name, self) @default_setting.each do |extension| @jobs[name].instance_eval(&extension) end @jobs[name].instance_eval(&block) end def view(name, &block) @views[name] = View.new(name, self) @views[name].instance_eval(&block) end def generate_xml return unless block_given? generator = XmlGenerator.new @jobs.each do |name, job| yield name, generator.generate(job), :job end @views.each do |name, job| yield name, generator.generate(job), :view end end end end
Version data entries
4 entries across 4 versions & 1 rubygems