class Giteaucrat::Repo
Attributes
commit_keyword[RW]
copyright_format[RW]
copyright_owner[RW]
copyright_year[W]
include_encoding[RW]
license[RW]
path[RW]
@return [String]
patterns[W]
Public Class Methods
defaults=(options = {})
click to toggle source
# File lib/giteaucrat/repo.rb, line 17 def self.defaults=(options = {}) Grit::Git.git_binary = options[:git] if options[:git] Grit::Git.git_timeout = options[:git_timeout] if options[:git_timeout] end
Public Instance Methods
commit!(message)
click to toggle source
# File lib/giteaucrat/repo.rb, line 36 def commit!(message) git_repo.commit_all(message) end
config=(*)
click to toggle source
# File lib/giteaucrat/repo.rb, line 87 def config=(*); end
copyright_label()
click to toggle source
@return [String]
# File lib/giteaucrat/repo.rb, line 103 def copyright_label @copyright_label ||= copyright_format .gsub('%{years}', [copyright_year, Time.now.year].compact.join('—')) .gsub('%{owner}', copyright_owner) .gsub('%{license}', license || '') end
copyright_year()
click to toggle source
@return [Number]
# File lib/giteaucrat/repo.rb, line 90 def copyright_year @copyright_year || first_commit.authored_date.year end
files()
click to toggle source
# File lib/giteaucrat/repo.rb, line 40 def files @files ||= begin Dir.chdir(path) do patterns.inject([]) do |files, pattern| files + Dir[pattern] end.map do |file_name| File.new(name: file_name, repo: self) end end end end
first_commit()
click to toggle source
@return [Grit::Commit]
# File lib/giteaucrat/repo.rb, line 95 def first_commit @first_commit ||= begin count = git_repo.commit_count git_repo.commits(git_repo.head.name, 1, count - 1).first end end
git()
click to toggle source
# File lib/giteaucrat/repo.rb, line 73 def git Grit::Git.git_binary end
git=(executable)
click to toggle source
# File lib/giteaucrat/repo.rb, line 77 def git=(executable) Grit::Git.git_binary = executable end
git_repo()
click to toggle source
# File lib/giteaucrat/repo.rb, line 22 def git_repo @git_repo ||= find_git_repo(path) end
ignored_commit?(commit)
click to toggle source
@param [Grit::Commit] commit @return [Boolean]
# File lib/giteaucrat/repo.rb, line 117 def ignored_commit?(commit) !commit || commit.message.match(ignored_commit_message) end
ignored_commit_message()
click to toggle source
@return [Regexp]
# File lib/giteaucrat/repo.rb, line 111 def ignored_commit_message @ignored_commit_message ||= /^#{Regexp.escape(commit_keyword)}/ end
include_encoding?()
click to toggle source
# File lib/giteaucrat/repo.rb, line 121 def include_encoding? !!include_encoding end
patterns()
click to toggle source
@return [<String>]
# File lib/giteaucrat/repo.rb, line 57 def patterns @patterns || %w[app/**/*.rb lib/**/*.rb script/**/*.rb spec/**/*.rb test/**/*.rb] end
timeout()
click to toggle source
# File lib/giteaucrat/repo.rb, line 65 def timeout Grit::Git.git_timeout end
timeout=(timeout)
click to toggle source
# File lib/giteaucrat/repo.rb, line 69 def timeout=(timeout) Grit::Git.git_timeout = timeout end
write_copyrights!()
click to toggle source
# File lib/giteaucrat/repo.rb, line 52 def write_copyrights! files.each(&:write_copyright!) end
Private Instance Methods
find_git_repo(directory)
click to toggle source
Finds a Git repository in the directory
or its parent directories. @param directory [String] Directory to expect a git repository. @return [Grit::Repo] Found git repository.
# File lib/giteaucrat/repo.rb, line 130 def find_git_repo(directory) if ::File.exist?(::File.join(directory, '.git')) || directory =~ /\.git$/ Grit::Repo.new(directory) elsif directory == '/' raise Grit::InvalidGitRepositoryError else find_git_repo(::File.expand_path(::File.join(directory, '..'))) end end