Class: P4Tools::ShelveValidator

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

Instance Method Summary collapse

Instance Method Details

#deleted?(file) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/p4tools/utils/validators/shelve_validator.rb', line 46

def deleted?(file)
  file['action'].include?('delete')
end

#find_diff_filesBoolean

Returns:

  • (Boolean)


33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/p4tools/utils/validators/shelve_validator.rb', line 33

def find_diff_files
  return [] unless @check_diff

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

  @p4.run_diff('-f', '-se', *shelve_revisions)
end

#find_not_shelved_filesBoolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/p4tools/utils/validators/shelve_validator.rb', line 28

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
22
23
24
25
# 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
  unless unshelved_files.empty?
    return unshelved_files
  end

  find_diff_files
end