Merge pull request #297 from olleolleolle/feature/linting-parser-setup
Rubocop: less complex methods in parser.rb
This commit is contained in:
commit
b1d2b7d828
|
@ -7,22 +7,16 @@ module GitHubChangelogGenerator
|
|||
class Parser
|
||||
# parse options with optparse
|
||||
def self.parse_options
|
||||
options = get_default_options
|
||||
options = default_options
|
||||
|
||||
parser_file = ParserFile.new options
|
||||
parser_file.parse!
|
||||
ParserFile.new(options).parse!
|
||||
|
||||
parser = setup_parser(options)
|
||||
parser.parse!
|
||||
|
||||
if options[:user].nil? || options[:project].nil?
|
||||
detect_user_and_project(options, ARGV[0], ARGV[1])
|
||||
end
|
||||
user_and_project_from_git(options)
|
||||
|
||||
if !options[:user] || !options[:project]
|
||||
puts parser.banner
|
||||
exit
|
||||
end
|
||||
abort(parser.banner) unless options[:user] && options[:project]
|
||||
|
||||
print_options(options)
|
||||
|
||||
|
@ -165,8 +159,8 @@ module GitHubChangelogGenerator
|
|||
end
|
||||
|
||||
# just get default options
|
||||
def self.get_default_options
|
||||
options = {
|
||||
def self.default_options
|
||||
{
|
||||
tag1: nil,
|
||||
tag2: nil,
|
||||
date_format: "%Y-%m-%d",
|
||||
|
@ -194,21 +188,25 @@ module GitHubChangelogGenerator
|
|||
enhancement_prefix: "**Implemented enhancements:**",
|
||||
git_remote: "origin"
|
||||
}
|
||||
end
|
||||
|
||||
options
|
||||
def self.user_and_project_from_git
|
||||
if options[:user].nil? || options[:project].nil?
|
||||
detect_user_and_project(options, ARGV[0], ARGV[1])
|
||||
end
|
||||
end
|
||||
|
||||
# Detects user and project from git
|
||||
def self.detect_user_and_project(options, arg0 = nil, arg1 = nil)
|
||||
options[:user], options[:project] = user_project_from_option(arg0, arg1, options[:github_site])
|
||||
if !options[:user] || !options[:project]
|
||||
if ENV["RUBYLIB"] =~ /ruby-debug-ide/
|
||||
options[:user] = "skywinder"
|
||||
options[:project] = "changelog_test"
|
||||
else
|
||||
remote = `git config --get remote.#{options[:git_remote]}.url`
|
||||
options[:user], options[:project] = user_project_from_remote(remote)
|
||||
end
|
||||
return if options[:user] && options[:project]
|
||||
|
||||
if ENV["RUBYLIB"] =~ /ruby-debug-ide/
|
||||
options[:user] = "skywinder"
|
||||
options[:project] = "changelog_test"
|
||||
else
|
||||
remote = `git config --get remote.#{options[:git_remote]}.url`
|
||||
options[:user], options[:project] = user_project_from_remote(remote)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -43,11 +43,9 @@ module GitHubChangelogGenerator
|
|||
|
||||
task @name do
|
||||
# mimick parse_options
|
||||
options = Parser.get_default_options
|
||||
options = Parser.default_options
|
||||
|
||||
if options[:user].nil? || options[:project].nil?
|
||||
Parser.detect_user_and_project(options)
|
||||
end
|
||||
Parser.user_and_project_from_git(options)
|
||||
|
||||
OPTIONS.each do |o|
|
||||
v = instance_variable_get("@#{o}")
|
||||
|
|
|
@ -24,7 +24,7 @@ describe GitHubChangelogGenerator::ParserFile do
|
|||
end
|
||||
|
||||
context "when override default values" do
|
||||
let(:default_options) { GitHubChangelogGenerator::Parser.get_default_options }
|
||||
let(:default_options) { GitHubChangelogGenerator::Parser.default_options }
|
||||
let(:options) { { params_file: "spec/files/github_changelog_params_override" }.merge(default_options) }
|
||||
let(:options_before_change) { options.dup }
|
||||
let(:parse) { GitHubChangelogGenerator::ParserFile.new(options) }
|
||||
|
|
Loading…
Reference in New Issue
Block a user