diff options
Diffstat (limited to 'lib/git/diff.rb')
-rw-r--r-- | lib/git/diff.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/git/diff.rb b/lib/git/diff.rb new file mode 100644 index 0000000..3686edb --- /dev/null +++ b/lib/git/diff.rb @@ -0,0 +1,37 @@ +module Git + + # object that holds the last X commits on given branch + class Diff + include Enumerable + + @base = nil + @from = nil + @to = nil + + @full_diff = nil + + def initialize(base, from = nil, to = nil) + dirty_log + @base = base + @from = from + @to = to + end + + def + # enumerable methods + + def each + cache_diff + @full_diff.each do |file| + yield file + end + end + + private + + def cache_diff + if !@full_diff + @full_diff = @base.lib.diff_files(@from, @to) + end + end +end
\ No newline at end of file |