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.