P4Change (Class)

In: P4Triggers.rb
Parent: Object

A class for holding info about a change. This is intended to be populated be the output of "p4 describe" rather than "p4 change -o". The difference is mostly in the case of the hash keys, but that’s significant enough.

Methods

each_file   each_job   new  

Attributes

change  [R] 
client  [R] 
desc  [R] 
files  [R] 
jobs  [R] 
status  [R] 
time  [R] 
user  [R] 

Public Class methods

Constructor. Pass the hash returned by P4#run_describe( "-s" ) in tagged mode.

[Source]

    # File P4Triggers.rb, line 47
47:     def initialize( hash )
48:         @change = hash[ "change"  ]
49:         @user  = hash[ "user"    ]
50:         @client = hash[ "client"  ]
51:         @desc  = hash[ "desc"    ]
52:         @time  = Time.at( hash[ "time" ].to_i )
53: 
54:         @status        = hash[ "status"  ]
55:         @files = Array.new
56:         @jobs = Hash.new
57: 
58:         if ( hash.has_key?( "depotFile" ) )
59:             hash[ "depotFile" ].each_index do
60:                 |i|
61:                 name = hash[ "depotFile"      ][ i ]
62:                 type = hash[ "type"           ][ i ]
63:                 rev    = hash[ "rev"            ][ i ]
64:                 act    = hash[ "action" ][ i ]
65: 
66:                 df = P4DepotFile.new( name )
67:                 dr = df.new_revision
68: 
69:                 dr.type       = type
70:                 dr.revno      = rev.to_i
71:                 dr.action     = act
72: 
73:                 @files.push( df )
74:             end
75:         end
76: 
77:         if ( hash.has_key?( "job" ) )
78:             hash[ "job" ].each_index do
79:                 |i|
80:                 job   = hash[ "job"      ][ i ]
81:                 status        = hash[ "jobstat" ][ i ]
82:                 @jobs[ job ] = status
83:             end
84:         end
85:     end

Public Instance methods

Shorthand iterator for looking at the files in the change

[Source]

    # File P4Triggers.rb, line 90
90:     def each_file( &block )
91:         @files.each { |f| yield( f ) }
92:     end

Shorthand iterator for looking at the jobs fixed by the change

[Source]

    # File P4Triggers.rb, line 95
95:     def each_job( &block )
96:         @jobs.each { |j| yield( j ) }
97:     end

[Validate]