summaryrefslogtreecommitdiffstats
path: root/vendor/diff-display
diff options
context:
space:
mode:
authorJohan Sørensen <johan@johansorensen.com>2008-02-09 17:35:23 +0100
committerJohan Sørensen <johan@johansorensen.com>2008-02-09 17:35:23 +0100
commitdf90d1878bb455a7dbb4309a00675068c9bdbf53 (patch)
tree188902fb536b687e837a683cfcfeb0a71e2c72df /vendor/diff-display
parentc7d69d31f97de3386a1aab4c87f4b82d3527ce8b (diff)
downloadgitorious-mainline-outdated-df90d1878bb455a7dbb4309a00675068c9bdbf53.zip
gitorious-mainline-outdated-df90d1878bb455a7dbb4309a00675068c9bdbf53.tar.gz
gitorious-mainline-outdated-df90d1878bb455a7dbb4309a00675068c9bdbf53.tar.bz2
updated Diff::Display lib
Diffstat (limited to 'vendor/diff-display')
-rw-r--r--vendor/diff-display/README.txt58
-rw-r--r--vendor/diff-display/lib/diff/display/data_structure.rb4
-rw-r--r--vendor/diff-display/lib/diff/display/unified/generator.rb14
-rw-r--r--vendor/diff-display/spec/fixtures/multiple_rems_then_add.diff14
-rw-r--r--vendor/diff-display/spec/generator_spec.rb10
-rw-r--r--vendor/diff-display/spec/renderer/base_spec.rb16
6 files changed, 94 insertions, 22 deletions
diff --git a/vendor/diff-display/README.txt b/vendor/diff-display/README.txt
index 17b43e3..d56f429 100644
--- a/vendor/diff-display/README.txt
+++ b/vendor/diff-display/README.txt
@@ -1,2 +1,58 @@
+Diff::Display
+=============
+
+Diff::Display::Unified renders unified diffs into various forms. The output is
+based on a callback object that's passed into the renderer
+
Rewrite of an (unreleased) library by Marcel Molina Jr., who wrote this it
-probably back in 2004 or so. \ No newline at end of file
+probably back in 2004 or so.
+
+Usage
+======
+
+irb(main):001:0> require 'diff-display'
+=> true
+irb(main):002:0> diff = <<EOS
+irb(main):003:0" diff --git a/History.txt b/History.txt
+irb(main):004:0" index 0ed7358..622c384 100644
+irb(main):005:0" --- a/History.txt
+irb(main):006:0" +++ b/History.txt
+irb(main):007:0" @@ -1,4 +1,5 @@
+irb(main):008:0" == 0.0.1 2008-01-28
+irb(main):009:0"
+irb(main):010:0" -* 1 major enhancement:
+irb(main):011:0" - * Initial release
+irb(main):012:0" +* 2 major enhancements:
+irb(main):013:0" + * The Initial release
+irb(main):014:0" + * stuff added
+irb(main):015:0" EOS
+...
+irb(main):016:0> diff_display = Diff::Display::Unified.new(diff)
+=> #<Diff::Display::Unified:0x331c9c @data=...
+# Be boring and render it back out as a diff
+irb(main):017:0> puts diff_display.render(Diff::Renderer::Diff.new)
+diff --git a/History.txt b/History.txt
+index 0ed7358..622c384 100644
+--- a/History.txt
++++ b/History.txt
+@@ -1,4 +1,5 @@
+ == 0.0.1 2008-01-28
+
+-* 1 major enhancement:
+- * Initial release
++* 2 major enhancements:
++ * The Initial release
++ * stuff added
+
+See Diff::Renderer::Base for what methods your callback needs to implement
+
+Git Repository
+===============
+
+http://gitorious.org/projects/diff-display/
+
+
+License
+======
+
+Please see License.txt
diff --git a/vendor/diff-display/lib/diff/display/data_structure.rb b/vendor/diff-display/lib/diff/display/data_structure.rb
index 3ef3c90..b8e6a47 100644
--- a/vendor/diff-display/lib/diff/display/data_structure.rb
+++ b/vendor/diff-display/lib/diff/display/data_structure.rb
@@ -56,6 +56,10 @@ module Diff
@number = line_number
end
attr_reader :number
+
+ def inspect
+ %Q{#<#{self.class.name} [#{number.inspect}] "#{self}">}
+ end
end
class AddLine < Line
diff --git a/vendor/diff-display/lib/diff/display/unified/generator.rb b/vendor/diff-display/lib/diff/display/unified/generator.rb
index 9300dfb..01af158 100644
--- a/vendor/diff-display/lib/diff/display/unified/generator.rb
+++ b/vendor/diff-display/lib/diff/display/unified/generator.rb
@@ -79,19 +79,7 @@ module Diff::Display
if new_line_type.eql?(@line_type)
@buffer.push(line)
else
- # Side by side inline diff
- #
- # e.g.
- #
- # - This line just had to go
- # + This line is on the way in
- #
- if new_line_type.eql?(LINE_TYPES['+']) and @line_type.eql?(LINE_TYPES['-'])
- @prev_buffer = @buffer
- @prev_line_type = @line_type
- else
- identify_block
- end
+ identify_block
@buffer = [line]
@line_type = new_line_type
end
diff --git a/vendor/diff-display/spec/fixtures/multiple_rems_then_add.diff b/vendor/diff-display/spec/fixtures/multiple_rems_then_add.diff
new file mode 100644
index 0000000..f5fd3f8
--- /dev/null
+++ b/vendor/diff-display/spec/fixtures/multiple_rems_then_add.diff
@@ -0,0 +1,14 @@
+diff --git a/strokedb-ruby/lib/stores/chainable_storage.rb b/strokedb-ruby/lib/stores/chainable_storage.rb
+index 5326c92..1e2de8f 100644
+--- a/strokedb-ruby/lib/stores/chainable_storage.rb
++++ b/strokedb-ruby/lib/stores/chainable_storage.rb
+@@ -44,9 +44,7 @@ module StrokeDB
+ def save_with_chained_storages!(chunk,source=nil)
+ perform_save!(chunk)
+ (@chained_storages||{}).each_pair do |storage,savings|
+- unless storage == chunk
+- savings << chunk unless savings.include?(chunk)
+- end
++ savings << chunk unless storage == chunk || savings.include?(chunk)
+ end
+ end \ No newline at end of file
diff --git a/vendor/diff-display/spec/generator_spec.rb b/vendor/diff-display/spec/generator_spec.rb
index e15b92a..850fdc1 100644
--- a/vendor/diff-display/spec/generator_spec.rb
+++ b/vendor/diff-display/spec/generator_spec.rb
@@ -32,4 +32,14 @@ describe Diff::Display::Unified::Generator do
end
end
+ describe "edgecase bugs" do
+ it "multiple rems and an add is in parity" do
+ diff_data = load_diff("multiple_rems_then_add")
+ data = Diff::Display::Unified::Generator.run(diff_data)
+ #pp data
+ data.to_diff.should == diff_data.chomp
+ end
+
+ end
+
end
diff --git a/vendor/diff-display/spec/renderer/base_spec.rb b/vendor/diff-display/spec/renderer/base_spec.rb
index 9893d04..f20b32b 100644
--- a/vendor/diff-display/spec/renderer/base_spec.rb
+++ b/vendor/diff-display/spec/renderer/base_spec.rb
@@ -21,10 +21,10 @@ describe Diff::Renderer::Base do
# @base_renderer.render(@data)
# end
- it "calls the before_modblock" do
- @base_renderer.expects(:before_modblock).at_least_once
- @base_renderer.render(@data)
- end
+ # it "calls the before_modblock" do
+ # @base_renderer.expects(:before_modblock).at_least_once
+ # @base_renderer.render(@data)
+ # end
it "calls the before_unmodblock" do
@base_renderer.expects(:before_unmodblock).at_least_once
@@ -71,10 +71,10 @@ describe Diff::Renderer::Base do
# @base_renderer.render(@data)
# end
- it "calls the after_modblock" do
- @base_renderer.expects(:after_modblock).at_least_once
- @base_renderer.render(@data)
- end
+ # it "calls the after_modblock" do
+ # @base_renderer.expects(:after_modblock).at_least_once
+ # @base_renderer.render(@data)
+ # end
it "calls the after_unmodblock" do
@base_renderer.expects(:after_unmodblock).at_least_once