module Renogen::Cli

Command line interface helpers

Public Class Methods

init() click to toggle source

Initialize the current working directory with an example change

# File lib/renogen/cli.rb, line 36
def self.init
  # TODO: Refactor to use Config.instance.changelog_path
  Dir.mkdir('./change_log')
  puts "Created './change_log/'"

  Dir.mkdir('./change_log/next')
  puts "Created './change_log/next/'"

  File.open('./change_log/next/added_renogen_gem.yml', 'w') do |f|
    f.write("Summary:\n")
    f.write("  identifier: renogen\n")
    f.write("  link: https://github.com/DDAZZA/renogen\n")
    f.write("  summary: Added ReNoGen gem\n")
    f.write("\n")
    f.write("Detailed: |\n")
    f.write("  Added ReNoGen gem\n")
    f.write("\n")
    f.write("  Allows release notes to be generated\n")
    f.write("\n")
    f.write("Tasks:\n")
    f.write("  - $ renogen vX.Y.Z > release_vX_Y_Z.md\n")
  end

  puts "Created './change_log/next/added_renogen_gem.yml'"

  File.open('.renogen', 'w') do |f|
    f.write("changelog_path: './change_log/'\n")
  end
  puts "Created '.renogen'"
end
new_ticket(ticket_name) click to toggle source

Creates a new template file

@param ticket_name [String]

# File lib/renogen/cli.rb, line 70
def self.new_ticket(ticket_name)
  raise 'You need to provide a ticket_name' if ticket_name.nil?

  file_path = File.join(Config.instance.changelog_path, 'next', "#{ticket_name}.yml")
  File.open(file_path, 'w') do |f|
    Config.instance.default_headings.each do |h|
      f.write("#{h}:\n")
    end
  end
  puts "Created '#{file_path}'"
end
run(args) click to toggle source

Execute the program via command line Renogen exceptions will be rescued and printed @param args [Array]

# File lib/renogen/cli.rb, line 11
def self.run(args)
  return init if args.first == 'init'
  return new_ticket(args[1]) if args.first == 'new'

  param_parser = ParamParser.new(args)
  version, options = param_parser.parse
  config_instance = Config.instance

  format = options['format'] || config_instance.output_format
  source = options['source'] || config_instance.input_source
  options['changelog_path'] ||= config_instance.changelog_path
  options['old_version'] ||= config_instance.changelog_path
  options['release_date'] ||= Date.today
  options['allowed_values'] ||= config_instance.validations

  begin
    generator = Renogen::Generator.new(version, source, format, options)
    generator.generate!
  rescue Renogen::Exceptions::Base => e
    puts e.message
    exit 1
  end
end