lib/capistrano/committed.rb in capistrano-committed-0.0.3 vs lib/capistrano/committed.rb in capistrano-committed-0.0.4

- old
+ new

@@ -1,22 +1,43 @@ -require "capistrano/committed/version" +require 'capistrano/committed/version' require 'capistrano/committed/i18n' -require "capistrano/committed/github_api" +require 'capistrano/committed/github_api' module Capistrano module Committed class << self - def scan_for_issues(pattern, string) - raise TypeError, sprintf('`%s` requires a valid pattern.', __callee__) unless pattern.is_a?(String) || pattern.is_a?(Regexp) - raise TypeError, sprintf('`%s` requires a valid string.', __callee__) unless pattern.is_a?(String) + def get_issue_urls(issue_pattern, url_pattern, message) + fail TypeError, t('committed.error.helpers.valid_param', + method: __callee__, + param: 'issue_pattern') unless + issue_pattern.is_a?(String) || + issue_pattern.is_a?(Regexp) - matches = Regexp.new(pattern).match(string) - return unless matches && matches[1] - matches = matches.to_a - matches.shift - matches + fail TypeError, t('committed.error.helpers.valid_param', + method: __callee__, + param: 'url_pattern') unless + url_pattern.is_a?(String) + + fail TypeError, t('committed.error.helpers.valid_param', + method: __callee__, + param: 'message') unless + message.is_a?(String) + + matches = message.scan(Regexp.new(issue_pattern)) + return [] unless matches + matches.map { |m| format(url_pattern, m[0]) } end + + def format_issue_urls(urls, pad = '') + return [] if urls.nil? || urls.empty? + output = [] + output << format('%s %s', pad, t('committed.output.issue_links')) + urls.each do |url| + output << format('%s - %s', pad, url) + end + output << format('%s', pad) + end end end end -load File.expand_path("../tasks/committed.rake", __FILE__) +load File.expand_path('../tasks/committed.rake', __FILE__)