Parser: avoid Ruby exit
- made the method take three arguments - specs all note these three
This commit is contained in:
parent
d81cb5fcb7
commit
53df784ec3
|
@ -217,7 +217,7 @@ module GitHubChangelogGenerator
|
||||||
#
|
#
|
||||||
# @param [String] output of git remote command
|
# @param [String] output of git remote command
|
||||||
# @return [Array] user and project
|
# @return [Array] user and project
|
||||||
def self.user_project_from_option(arg0, arg1, github_site = nil)
|
def self.user_project_from_option(arg0, arg1, github_site)
|
||||||
user = nil
|
user = nil
|
||||||
project = nil
|
project = nil
|
||||||
github_site ||= "github.com"
|
github_site ||= "github.com"
|
||||||
|
@ -230,10 +230,10 @@ module GitHubChangelogGenerator
|
||||||
param = match[2].nil?
|
param = match[2].nil?
|
||||||
rescue
|
rescue
|
||||||
puts "Can't detect user and name from first parameter: '#{arg0}' -> exit'"
|
puts "Can't detect user and name from first parameter: '#{arg0}' -> exit'"
|
||||||
exit
|
return
|
||||||
end
|
end
|
||||||
if param
|
if param
|
||||||
exit
|
return
|
||||||
else
|
else
|
||||||
user = match[1]
|
user = match[1]
|
||||||
project = match[2]
|
project = match[2]
|
||||||
|
@ -276,9 +276,4 @@ module GitHubChangelogGenerator
|
||||||
[user, project]
|
[user, project]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if __FILE__ == $PROGRAM_NAME
|
|
||||||
remote = "invalid reference to project"
|
|
||||||
p user_project_from_option(ARGV[0], ARGV[1], remote)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -28,16 +28,16 @@ describe GitHubChangelogGenerator::Parser do
|
||||||
end
|
end
|
||||||
describe ".user_project_from_option" do
|
describe ".user_project_from_option" do
|
||||||
context "when option is invalid" do
|
context "when option is invalid" do
|
||||||
it("should exit") { expect { GitHubChangelogGenerator::Parser.user_project_from_option("blah", nil) }.to raise_error(SystemExit) }
|
it("should return nil") { expect(GitHubChangelogGenerator::Parser.user_project_from_option("blah", nil, nil)).to be_nil }
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when option is valid" do
|
context "when option is valid" do
|
||||||
subject { GitHubChangelogGenerator::Parser.user_project_from_option("skywinder/ActionSheetPicker-3.0", nil) }
|
subject { GitHubChangelogGenerator::Parser.user_project_from_option("skywinder/ActionSheetPicker-3.0", nil, nil) }
|
||||||
it { is_expected.to be_a(Array) }
|
it { is_expected.to be_a(Array) }
|
||||||
it { is_expected.to match_array(["skywinder", "ActionSheetPicker-3.0"]) }
|
it { is_expected.to match_array(["skywinder", "ActionSheetPicker-3.0"]) }
|
||||||
end
|
end
|
||||||
context "when option nil" do
|
context "when option nil" do
|
||||||
subject { GitHubChangelogGenerator::Parser.user_project_from_option(nil, nil) }
|
subject { GitHubChangelogGenerator::Parser.user_project_from_option(nil, nil, nil) }
|
||||||
it { is_expected.to be_a(Array) }
|
it { is_expected.to be_a(Array) }
|
||||||
it { is_expected.to match_array([nil, nil]) }
|
it { is_expected.to match_array([nil, nil]) }
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user