Parser: avoid Ruby exit

- made the method take three arguments
- specs all note these three
This commit is contained in:
Olle Jonsson 2016-01-05 21:38:52 +01:00
parent d81cb5fcb7
commit 53df784ec3
2 changed files with 6 additions and 11 deletions

View File

@ -217,7 +217,7 @@ module GitHubChangelogGenerator
#
# @param [String] output of git remote command
# @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
project = nil
github_site ||= "github.com"
@ -230,10 +230,10 @@ module GitHubChangelogGenerator
param = match[2].nil?
rescue
puts "Can't detect user and name from first parameter: '#{arg0}' -> exit'"
exit
return
end
if param
exit
return
else
user = match[1]
project = match[2]
@ -276,9 +276,4 @@ module GitHubChangelogGenerator
[user, project]
end
end
if __FILE__ == $PROGRAM_NAME
remote = "invalid reference to project"
p user_project_from_option(ARGV[0], ARGV[1], remote)
end
end

View File

@ -28,16 +28,16 @@ describe GitHubChangelogGenerator::Parser do
end
describe ".user_project_from_option" 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
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 match_array(["skywinder", "ActionSheetPicker-3.0"]) }
end
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 match_array([nil, nil]) }
end