class Git::Duet::AuthorMapper
Attributes
Public Class Methods
new(authors_file = nil, email_lookup = nil)
click to toggle source
# File lib/git/duet/author_mapper.rb, line 11 def initialize(authors_file = nil, email_lookup = nil) @authors_file = authors_file || ENV['GIT_DUET_AUTHORS_FILE'] || File.join(ENV['HOME'], '.git-authors') @email_lookup = email_lookup || ENV['GIT_DUET_EMAIL_LOOKUP_COMMAND'] end
Public Instance Methods
map(*initials_list)
click to toggle source
# File lib/git/duet/author_mapper.rb, line 19 def map(*initials_list) author_map = {} initials_list.each do |initials| author_map[initials] = author_info(initials) end author_map end
Private Instance Methods
cfg()
click to toggle source
# File lib/git/duet/author_mapper.rb, line 79 def cfg @cfg ||= YAML.load(IO.read(authors_file)) rescue StandardError => e $stderr.puts("git-duet: Missing or corrupt authors file: #{e.message}") raise Git::Duet::ScriptDieError, 3 end
email_addresses()
click to toggle source
# File lib/git/duet/author_mapper.rb, line 67 def email_addresses @email_addresses ||= (cfg['email_addresses'] || {}) end
email_domain()
click to toggle source
# File lib/git/duet/author_mapper.rb, line 71 def email_domain @email_domain ||= cfg.fetch('email').fetch('domain') end
email_from_lookup(initials, author, username)
click to toggle source
# File lib/git/duet/author_mapper.rb, line 49 def email_from_lookup(initials, author, username) return '' unless @email_lookup `#{@email_lookup} '#{initials}' '#{author}' '#{username}'`.strip end
email_from_template(initials, author, username)
click to toggle source
rubocop:disable Lint/UnusedMethodArgument arguments are used via binding
# File lib/git/duet/author_mapper.rb, line 56 def email_from_template(initials, author, username) return ERB.new(email_template).result(binding) rescue StandardError => e $stderr.puts("git-duet: email template rendering error: #{e.message}") raise Git::Duet::ScriptDieError, 8 end
email_template()
click to toggle source
# File lib/git/duet/author_mapper.rb, line 75 def email_template @email_template || cfg['email_template'] end