create class and implement encapsulation. This fix #34

This commit is contained in:
Petr Korolev 2014-12-03 15:38:05 +02:00
parent 6f53fe0a1d
commit 188ba7e073
2 changed files with 27 additions and 12 deletions

View File

@ -4,6 +4,7 @@ require 'github_api'
require 'json'
require 'colorize'
require_relative 'github_changelog_generator/parser'
require_relative 'github_changelog_generator/generator'
require_relative 'github_changelog_generator/version'
module GitHubChangelogGenerator
@ -29,6 +30,8 @@ module GitHubChangelogGenerator
@github = Github.new oauth_token: @github_token
end
generator = Generator.new(@options)
@all_tags = self.get_all_tags
@pull_requests = self.get_all_closed_pull_requests
if @options[:issues]
@ -264,19 +267,11 @@ module GitHubChangelogGenerator
if @options[:pulls]
# Generate pull requests:
if pull_requests
pull_requests.each { |pull_request|
merge = generator.get_string_for_pull_request(pull_request)
log += "- #{merge}"
pull_requests.each { |dict|
merge = "#{@options[:merge_prefix]}#{dict[:title]} [\\##{dict[:number]}](#{dict.html_url})"
if @options[:author]
merge += " ([#{dict.user.login}](#{dict.user.html_url}))\n\n"
else
merge += "\n\n"
end
log += "- #{merge}"
}
end
} if pull_requests
end
if @options[:issues]

View File

@ -0,0 +1,20 @@
module GitHubChangelogGenerator
class Generator
def initialize(options)
@options = options
end
def get_string_for_pull_request(pull_request)
trimmed_title = pull_request[:title].gsub '>', '/>'
merge = "#{@options[:merge_prefix]}#{trimmed_title} [\\##{pull_request[:number]}](#{pull_request.html_url})"
if @options[:author]
merge += " ([#{pull_request.user.login}](#{pull_request.user.html_url}))\n\n"
else
merge += "\n\n"
end
merge
end
end
end