From fbd8207ff420929ded20b2ffb094a39fff8dd868 Mon Sep 17 00:00:00 2001 From: Dlani Mendes Date: Mon, 14 Sep 2015 01:02:52 -0300 Subject: [PATCH] Auto parse options from file .github_changelog_generator --- .gitignore | 1 + lib/github_changelog_generator.rb | 1 + lib/github_changelog_generator/parser.rb | 4 ++- lib/github_changelog_generator/parser_file.rb | 28 +++++++++++++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 lib/github_changelog_generator/parser_file.rb diff --git a/.gitignore b/.gitignore index e69de29..1377554 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/lib/github_changelog_generator.rb b/lib/github_changelog_generator.rb index 3b1e60f..31d86ae 100755 --- a/lib/github_changelog_generator.rb +++ b/lib/github_changelog_generator.rb @@ -7,6 +7,7 @@ require "benchmark" 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" diff --git a/lib/github_changelog_generator/parser.rb b/lib/github_changelog_generator/parser.rb index d1b36b7..06b5c26 100644 --- a/lib/github_changelog_generator/parser.rb +++ b/lib/github_changelog_generator/parser.rb @@ -10,9 +10,11 @@ module GitHubChangelogGenerator options = get_default_options parser = setup_parser(options) - parser.parse! + parser_file = ParseFile.new options + parser_file.parse! + if options[:user].nil? || options[:project].nil? detect_user_and_project(options, ARGV[0], ARGV[1]) end diff --git a/lib/github_changelog_generator/parser_file.rb b/lib/github_changelog_generator/parser_file.rb new file mode 100644 index 0000000..068fc0f --- /dev/null +++ b/lib/github_changelog_generator/parser_file.rb @@ -0,0 +1,28 @@ +module GitHubChangelogGenerator + class ParseFile + def initialize(options) + @options = options + end + + def file + File.expand_path(".github_changelog_generator") + end + + def has_file? + File.exists?(file) + end + + def file_open + File.open(file) + end + + def parse! + return false unless has_file? + file_open.each do |line| + key, value = line.split("=") + key_sym = key.sub('-', '_').to_sym + @options[key_sym] = value.gsub(/[\n\r]+/, '') + end + end + end +end