class Tagrity::TagGenerator
Public Class Methods
new(config, logger)
click to toggle source
# File lib/tagrity/tag_generator.rb, line 10 def initialize(config, logger) @config = config @logger = logger end
Public Instance Methods
generate(files, check_git)
click to toggle source
# File lib/tagrity/tag_generator.rb, line 39 def generate(files, check_git) return if files.empty? if not Helper.git_dir? check_git = false end files .select { |file| generate_tags?(file, check_git) } .group_by { |file| @config.command_for_extension(file.split('.').last) } .each do |cmd, fnames| Tempfile.create do |tmpf| IO::write(tmpf.path, fnames.join("\n")) system(cmd, '-f', tagf, '--append', '-L', tmpf.path, out: File::NULL, err: File::NULL) if $?.exitstatus == 0 @logger.info("{#{cmd}} generated tags for #{fnames} into #{tagf}") else @logger.error("{#{cmd}} failed (#{$?.exitstatus}) to generate tags for #{fnames} into #{tagf}") end end end end
generate_all()
click to toggle source
# File lib/tagrity/tag_generator.rb, line 15 def generate_all files = [] if Helper.git_dir? untracked_files = `git ls-files --others --exclude-standard 2> /dev/null`.split("\n") if $?.exitstatus != 0 @logger.error("Failed to get a listing of all untracked files under pwd for use with --fresh.") untracked_files = [] end tracked_files = `git ls-files 2> /dev/null`.split("\n") if $?.exitstatus != 0 @logger.error("Failed to get a listing of all tracked files under pwd for use with --fresh.") tracked_files = [] end files = tracked_files.concat untracked_files else files = `find * -type f 2> /dev/null`.split("\n") end if not files.empty? and File.exists?(tagf) File.delete(tagf) end generate(files, false) end
Private Instance Methods
check_git?()
click to toggle source
# File lib/tagrity/tag_generator.rb, line 98 def check_git? @check_git ||= @config.respect_git? && Helper.git_dir? end
copacetic_with_git?(file)
click to toggle source
# File lib/tagrity/tag_generator.rb, line 86 def copacetic_with_git?(file) return true if !check_git? case @config.git_strategy when 'TRACKED' Helper.file_tracked?(file) when 'IGNORED' !Helper.file_ignored?(file) else false end end
file_excluded?(fname)
click to toggle source
# File lib/tagrity/tag_generator.rb, line 102 def file_excluded?(fname) @config.ignore_extension?(fname.split('.').last) || @config.path_ignored?(fname) end
indexable?(file)
click to toggle source
# File lib/tagrity/tag_generator.rb, line 82 def indexable?(file) file != tagf && !file_excluded?(file) && File.readable?(file) end
tagf()
click to toggle source
# File lib/tagrity/tag_generator.rb, line 106 def tagf @config.tagf end