Class: Jujube::Driver

Inherits:
Object
  • Object
show all
Defined in:
lib/jujube/driver.rb

Overview

The command-line driver for the Jujube application.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(loader = JobLoader.new, generator = JobFileGenerator.new) ⇒ Driver

Initialize the driver.

Parameters:

  • loader (JobLoader) (defaults to: JobLoader.new)

    Loads jobs from user-specified files and/or directories.

  • generator (JobFileGenerator) (defaults to: JobFileGenerator.new)

    Generates the jenkins-job-builder YAML file from any jobs that have been loaded.



22
23
24
25
# File 'lib/jujube/driver.rb', line 22

def initialize(loader = JobLoader.new, generator = JobFileGenerator.new)
  @loader = loader
  @generator = generator
end

Class Method Details

.runObject

Run the Jujube application.



13
14
15
# File 'lib/jujube/driver.rb', line 13

def self.run
  self.new.run
end

Instance Method Details

#run(argv = ARGV) ⇒ Object

Run the Jujube application.

Parameters:

  • argv (Array) (defaults to: ARGV)

    The command-line arguments that control the application.



30
31
32
33
34
35
# File 'lib/jujube/driver.rb', line 30

def run(argv = ARGV)
  argv = adjusted_for_jruby(argv)
  options = handle_options(argv)
  jobs = @loader.load_jobs(*options.paths || Pathname.getwd)
  @generator.generate(jobs, options.output || Pathname.new("jobs.yml"))
end