class GiteePack::Diff

Constants

IGNORE_FILES

Attributes

asset_files[R]
cp_files[R]
delete_files[R]
empty_folders[R]
gem_files[R]
webpack_files[R]

Public Class Methods

new(base, head) click to toggle source
# File lib/gitee_pack/diff.rb, line 13
def initialize(base, head)
  @base          = base
  @head          = head
  @empty_folders = []
  @delete_files  = []
  @cp_files      = []
  @webpack_files = []
  @asset_files   = []
  @gem_files     = []

  init_list_by_files
end

Public Instance Methods

diff_files() click to toggle source
# File lib/gitee_pack/diff.rb, line 26
def diff_files
  result = `git diff #{@base} #{@head} --name-only`
  raise CmdError, 'cmd error' if result.empty?

  result.split("\n")
end
diff_files_with_status() click to toggle source
# File lib/gitee_pack/diff.rb, line 33
def diff_files_with_status
  result = `git diff #{@base} #{@head} --name-status`
  raise CmdError, 'cmd error' if result.empty?

  result.split("\n")
end
has_asset_file?() click to toggle source
# File lib/gitee_pack/diff.rb, line 44
def has_asset_file?
  !asset_files.empty?
end
has_gem_file?() click to toggle source
# File lib/gitee_pack/diff.rb, line 48
def has_gem_file?
  !gem_files.empty?
end
has_webpack_file?() click to toggle source
# File lib/gitee_pack/diff.rb, line 40
def has_webpack_file?
  !webpack_files.empty?
end

Private Instance Methods

init_delete_files() click to toggle source
# File lib/gitee_pack/diff.rb, line 59
def init_delete_files
  @delete_files = diff_files_with_status.map do |file|
    file.sub("D\t", '') if file.start_with?('D')
  end.compact
end
init_empty_folders_and_cp_files() click to toggle source
# File lib/gitee_pack/diff.rb, line 65
def init_empty_folders_and_cp_files
  diff_files.each do |file|
    next if IGNORE_FILES.include?(file)

    if file.start_with?('app/assets/javascripts/webpack')
      @webpack_files << file
    elsif file.start_with?('app/assets')
      @asset_files << file
    elsif file.start_with?('Gemfile')
      @gem_files << file
    end

    if Dir.exist?(file)
      @empty_folders << file
      next
    end

    next unless File.exist?(file)

    @cp_files << file
  end
end
init_list_by_files() click to toggle source
# File lib/gitee_pack/diff.rb, line 54
def init_list_by_files
  init_empty_folders_and_cp_files
  init_delete_files
end