github-changelog-generator/lib/github_changelog_generator.rb

42 lines
1.3 KiB
Ruby
Raw Normal View History

2014-11-06 13:51:15 +00:00
#!/usr/bin/env ruby
2016-09-22 17:16:29 +00:00
# frozen_string_literal: true
2014-11-06 13:51:15 +00:00
require "github_api"
require "json"
require "benchmark"
2014-12-15 12:15:39 +00:00
require_relative "github_changelog_generator/helper"
require_relative "github_changelog_generator/parser"
require_relative "github_changelog_generator/parser_file"
require_relative "github_changelog_generator/generator/generator"
require_relative "github_changelog_generator/version"
require_relative "github_changelog_generator/reader"
2014-11-06 13:51:15 +00:00
# The main module, where placed all classes (now, at least)
2014-11-17 15:54:13 +00:00
module GitHubChangelogGenerator
2015-04-03 15:59:37 +00:00
# Main class and entry point for this script.
2014-11-17 15:54:13 +00:00
class ChangelogGenerator
2015-04-03 15:59:37 +00:00
# Class, responsible for whole change log generation cycle
2015-04-21 17:42:33 +00:00
# @return initialised instance of ChangelogGenerator
2014-11-18 13:20:57 +00:00
def initialize
2014-11-17 15:54:13 +00:00
@options = Parser.parse_options
2015-04-21 17:42:33 +00:00
@generator = Generator.new @options
2014-11-17 15:54:13 +00:00
end
2014-11-06 13:51:15 +00:00
2015-05-22 12:28:43 +00:00
# The entry point of this script to generate change log
# @raise (ChangelogGeneratorError) Is thrown when one of specified tags was not found in list of tags.
def run
log = @generator.compound_changelog
2016-02-23 10:25:55 +00:00
output_filename = (@options[:output]).to_s
2015-05-22 12:28:43 +00:00
File.open(output_filename, "w") { |file| file.write(log) }
puts "Done!"
puts "Generated log placed in #{Dir.pwd}/#{output_filename}"
end
end
2015-03-26 13:43:47 +00:00
if __FILE__ == $PROGRAM_NAME
GitHubChangelogGenerator::ChangelogGenerator.new.run
2014-11-17 15:54:13 +00:00
end
end