object that holds the last X commits on given branch
enumerable methods
# File lib/git/diff.rb, line 58
58: def [](key)
59: process_full
60: @full_diff_files.assoc(key)[1]
61: end
# File lib/git/diff.rb, line 34
34: def deletions
35: cache_stats
36: @stats[:total][:deletions]
37: end
# File lib/git/diff.rb, line 63
63: def each(&block) # :yields: each Git::DiffFile in turn
64: process_full
65: @full_diff_files.map { |file| file[1] }.each(&block)
66: end
# File lib/git/diff.rb, line 39
39: def insertions
40: cache_stats
41: @stats[:total][:insertions]
42: end
# File lib/git/diff.rb, line 29
29: def lines
30: cache_stats
31: @stats[:total][:lines]
32: end
if file is provided and is writable, it will write the patch into the file
# File lib/git/diff.rb, line 50
50: def patch(file = nil)
51: cache_full
52: @full_diff
53: end
# File lib/git/diff.rb, line 19
19: def path(path)
20: @path = path
21: return self
22: end
# File lib/git/diff.rb, line 24
24: def size
25: cache_stats
26: @stats[:total][:files]
27: end
# File lib/git/diff.rb, line 98
98: def cache_full
99: unless @full_diff
100: @full_diff = @base.lib.diff_full(@from, @to, {:path_limiter => @path})
101: end
102: end
# File lib/git/diff.rb, line 111
111: def cache_stats
112: unless @stats
113: @stats = @base.lib.diff_stats(@from, @to, {:path_limiter => @path})
114: end
115: end
# File lib/git/diff.rb, line 104
104: def process_full
105: unless @full_diff_files
106: cache_full
107: @full_diff_files = process_full_diff
108: end
109: end
break up @diff_full
# File lib/git/diff.rb, line 118
118: def process_full_diff
119: final = {}
120: current_file = nil
121: @full_diff.split("\n").each do |line|
122: if m = /diff --git a\/(.*?) b\/(.*?)/.match(line)
123: current_file = m[1]
124: final[current_file] = {:patch => line, :path => current_file,
125: :mode => '', :src => '', :dst => '', :type => 'modified'}
126: else
127: if m = /index (.......)\.\.(.......)( ......)*/.match(line)
128: final[current_file][:src] = m[1]
129: final[current_file][:dst] = m[2]
130: final[current_file][:mode] = m[3].strip if m[3]
131: end
132: if m = /(.*?) file mode (......)/.match(line)
133: final[current_file][:type] = m[1]
134: final[current_file][:mode] = m[2]
135: end
136: if m = /^Binary files /.match(line)
137: final[current_file][:binary] = true
138: end
139: final[current_file][:patch] << "\n" + line
140: end
141: end
142: final.map { |e| [e[0], DiffFile.new(@base, e[1])] }
143: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.