Class: P4Tools::ShelveValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/p4tools/utils/validators/shelve_validator.rb

Instance Method Summary collapse

Instance Method Details

#edited?(file) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/p4tools/utils/validators/shelve_validator.rb', line 50

def edited?(file)
  file['action'].include?('edit')
end

#find_diff_filesBoolean

Returns:

  • (Boolean)


28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/p4tools/utils/validators/shelve_validator.rb', line 28

def find_diff_files
  return [] unless @check_diff

  diff_files = []
  shelve_revisions = []
  files_to_check = @opened_files & @shelved_files

  unless files_to_check.empty?
    @p4.run_opened(*files_to_check).each { |file|
      if edited?(file)
        shelve_revisions.push("#{file['depotFile']}@=#{@cl}")
      end
    }

    unless shelve_revisions.empty?
      diff_files = @p4.run_diff('-f', '-se', *shelve_revisions).collect { |d| d['depotFile'] }
    end
  end

  diff_files
end

#find_not_shelved_filesObject



23
24
25
# File 'lib/p4tools/utils/validators/shelve_validator.rb', line 23

def find_not_shelved_files
  @opened_files - @shelved_files
end

#find_unshelved_files(files, check_diff) ⇒ Array<String>

Returns:

  • (Array<String>)


5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/p4tools/utils/validators/shelve_validator.rb', line 5

def find_unshelved_files(files, check_diff)
  return false if files.nil?

  @opened_files = files
  @check_diff = check_diff
  @p4 = P4Tools.connection

  @cl = CommandUtils.pending_changelist_for_file(@opened_files[0])
  @shelved_files = CommandUtils.shelved_files(@cl)

  if @shelved_files.nil?
    return files
  end

  unshelved_files = find_not_shelved_files
  unshelved_files + find_diff_files
end