diff-lcs 1.2.3 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rspec +0 -1
- data/Code-of-Conduct.md +74 -0
- data/Contributing.md +84 -0
- data/History.md +247 -0
- data/{License.rdoc → License.md} +0 -0
- data/Manifest.txt +15 -9
- data/README.rdoc +20 -24
- data/Rakefile +24 -23
- data/autotest/discover.rb +3 -1
- data/bin/htmldiff +7 -4
- data/bin/ldiff +4 -1
- data/lib/diff-lcs.rb +1 -1
- data/lib/diff/lcs.rb +181 -254
- data/lib/diff/lcs/array.rb +1 -1
- data/lib/diff/lcs/backports.rb +9 -0
- data/lib/diff/lcs/block.rb +2 -2
- data/lib/diff/lcs/callbacks.rb +15 -12
- data/lib/diff/lcs/change.rb +34 -37
- data/lib/diff/lcs/htmldiff.rb +17 -16
- data/lib/diff/lcs/hunk.rb +59 -47
- data/lib/diff/lcs/internals.rb +44 -40
- data/lib/diff/lcs/ldiff.rb +45 -65
- data/lib/diff/lcs/string.rb +1 -1
- data/spec/change_spec.rb +31 -7
- data/spec/diff_spec.rb +28 -18
- data/spec/fixtures/aX +1 -0
- data/spec/fixtures/bXaX +1 -0
- data/spec/fixtures/ds1.csv +50 -0
- data/spec/fixtures/ds2.csv +51 -0
- data/spec/fixtures/ldiff/output.diff +4 -0
- data/spec/fixtures/ldiff/output.diff-c +7 -0
- data/spec/fixtures/ldiff/output.diff-e +3 -0
- data/spec/fixtures/ldiff/output.diff-f +3 -0
- data/spec/fixtures/ldiff/output.diff-u +5 -0
- data/spec/hunk_spec.rb +37 -37
- data/spec/issues_spec.rb +60 -17
- data/spec/lcs_spec.rb +24 -22
- data/spec/ldiff_spec.rb +74 -0
- data/spec/patch_spec.rb +182 -180
- data/spec/sdiff_spec.rb +99 -87
- data/spec/spec_helper.rb +141 -58
- data/spec/traverse_balanced_spec.rb +177 -177
- data/spec/traverse_sequences_spec.rb +63 -63
- metadata +92 -188
- data.tar.gz.sig +0 -4
- data/.autotest +0 -3
- data/.gemtest +0 -0
- data/.hoerc +0 -2
- data/.travis.yml +0 -22
- data/Contributing.rdoc +0 -64
- data/Gemfile +0 -19
- data/History.rdoc +0 -135
- data/diff-lcs.gemspec +0 -63
- metadata.gz.sig +0 -0
data.tar.gz.sig
DELETED
data/.autotest
DELETED
data/.gemtest
DELETED
File without changes
|
data/.hoerc
DELETED
data/.travis.yml
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
---
|
2
|
-
after_script:
|
3
|
-
- rake travis:after -t
|
4
|
-
before_script:
|
5
|
-
- gem install hoe-travis --no-rdoc --no-ri
|
6
|
-
- rake travis:before -t
|
7
|
-
language: ruby
|
8
|
-
notifications:
|
9
|
-
email: true
|
10
|
-
rvm:
|
11
|
-
- 2.0.0
|
12
|
-
- 1.9.3
|
13
|
-
- 1.9.2
|
14
|
-
- ruby-head
|
15
|
-
- 1.8.7
|
16
|
-
- jruby-19mode
|
17
|
-
- jruby-head
|
18
|
-
- jruby-18mode
|
19
|
-
- rbx-19mode
|
20
|
-
- rbx-18mode
|
21
|
-
- ree
|
22
|
-
script: rake travis
|
data/Contributing.rdoc
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
== Contributing
|
2
|
-
|
3
|
-
I value any contribution to Diff::LCS you can provide: a bug report, a feature
|
4
|
-
request, or code contributions.
|
5
|
-
|
6
|
-
Code contributions to Diff::LCS are especially <del>welcome</del>encouraged.
|
7
|
-
Because Diff::LCS is a complex codebase, there are a few guidelines:
|
8
|
-
|
9
|
-
* Changes <strong>will not</strong> be accepted without tests.
|
10
|
-
* The test suite is written with RSpec.‡
|
11
|
-
* Match my coding style.
|
12
|
-
* Use a thoughtfully-named topic branch that contains your change. Rebase your
|
13
|
-
commits into logical chunks as necessary.
|
14
|
-
* Use {quality commit messages}[http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html].
|
15
|
-
* Do not change the version number; when your patch is accepted and a release
|
16
|
-
is made, the version will be updated at that point.
|
17
|
-
* Submit a GitHub pull request with your changes.
|
18
|
-
* New features require new documentation.
|
19
|
-
|
20
|
-
=== Test Dependencies
|
21
|
-
|
22
|
-
To run the test suite, you will need to install the development dependencies
|
23
|
-
for Diff::LCS. If you have Bundler, you can accomplish this easily:
|
24
|
-
|
25
|
-
$ bundle install
|
26
|
-
|
27
|
-
Diff::LCS uses Ryan Davis’s excellent {Hoe}[https://github.com/seattlerb/hoe]
|
28
|
-
to manage the release process, and it adds a number of rake tasks. You will
|
29
|
-
mostly be interested in:
|
30
|
-
|
31
|
-
$ rake
|
32
|
-
|
33
|
-
which runs the tests the same way that:
|
34
|
-
|
35
|
-
$ rake spec
|
36
|
-
$ rake test
|
37
|
-
$ rake travis
|
38
|
-
|
39
|
-
will do.
|
40
|
-
|
41
|
-
=== Workflow
|
42
|
-
|
43
|
-
Here's the most direct way to get your work merged into the project:
|
44
|
-
|
45
|
-
* Fork the project.
|
46
|
-
* Clone down your fork (+git clone git://github.com/<username>/diff-lcs.git+).
|
47
|
-
* Create a topic branch to contain your change (+git checkout -b my\_awesome\_feature+).
|
48
|
-
* Hack away, add tests. Not necessarily in that order.
|
49
|
-
* Make sure everything still passes by running `rake`.
|
50
|
-
* If necessary, rebase your commits into logical chunks, without errors.
|
51
|
-
* Push the branch up (+git push origin my\_awesome\_feature+).
|
52
|
-
* Create a pull request against halostatue/diff-lcs and describe what your
|
53
|
-
change does and the why you think it should be merged.
|
54
|
-
|
55
|
-
=== Contributors
|
56
|
-
|
57
|
-
* Austin Ziegler created Diff::LCS.
|
58
|
-
|
59
|
-
Thanks to everyone else who has contributed to Diff::LCS:
|
60
|
-
|
61
|
-
* Kenichi Kamiya
|
62
|
-
* Michael Granger
|
63
|
-
* Vít Ondruch
|
64
|
-
* Jon Rowe
|
data/Gemfile
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
# -*- ruby -*-
|
2
|
-
|
3
|
-
# DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake bundler:gemfile`.
|
4
|
-
|
5
|
-
source "https://rubygems.org/"
|
6
|
-
|
7
|
-
gem "hoe", "~>3.4", :group => [:development, :test]
|
8
|
-
gem "hoe-bundler", "~>1.2.0", :group => [:development, :test]
|
9
|
-
gem "hoe-doofus", "~>1.0.0", :group => [:development, :test]
|
10
|
-
gem "hoe-gemspec", "~>1.0.0", :group => [:development, :test]
|
11
|
-
gem "hoe-git", "~>1.5.0", :group => [:development, :test]
|
12
|
-
gem "hoe-rubygems", "~>1.0.0", :group => [:development, :test]
|
13
|
-
gem "hoe-travis", "~>1.2", :group => [:development, :test]
|
14
|
-
gem "rake", "~>10.0", :group => [:development, :test]
|
15
|
-
gem "rdoc", "~>3.10", :group => [:development, :test]
|
16
|
-
gem "rspec", "~>2.0", :group => [:development, :test]
|
17
|
-
gem "rubyforge", ">=2.0.4", :group => [:development, :test]
|
18
|
-
|
19
|
-
# vim: syntax=ruby
|
data/History.rdoc
DELETED
@@ -1,135 +0,0 @@
|
|
1
|
-
== 1.2.3 / 2013-04-11
|
2
|
-
|
3
|
-
* Bugs Fixed:
|
4
|
-
* The new encoding detection for diff output generation (added in 1.2.2)
|
5
|
-
introduced a bug if the left side of the comparison was the empty set.
|
6
|
-
Originally found in rspec/rspec-expectations#238 and
|
7
|
-
rspec/rspec-expectations#239. Jon Rowe developed a reasonable heuristic
|
8
|
-
(left side, right side, empty string literal) to avoid this bug.
|
9
|
-
https://github.com/rspec/rspec-expectations/pull/238
|
10
|
-
https://github.com/rspec/rspec-expectations/pull/239
|
11
|
-
* There is a known issue with Rubinius in 1.9 mode reported in
|
12
|
-
rubinius/rubinius#2268 and demonstrated in the Travis CI builds. For all
|
13
|
-
other tested platforms, diff-lcs is considered stable. As soon as a suitably
|
14
|
-
small test-case can be created for the Rubinius team to examine, this will be
|
15
|
-
added to the Rubinius issue around this.
|
16
|
-
https://github.com/rubinius/rubinius/issues/2268
|
17
|
-
https://travis-ci.org/halostatue/diff-lcs/jobs/6241195
|
18
|
-
|
19
|
-
== 1.2.2 / 2013-03-30
|
20
|
-
|
21
|
-
* Bugs Fixed:
|
22
|
-
* Diff::LCS::Hunk could not properly generate a difference for comparison
|
23
|
-
sets that are not US-ASCII-compatible because of the use of literal regular
|
24
|
-
expressions and strings. Jon Rowe (JonRowe) found this in
|
25
|
-
rspec/rspec-expectations#219 and provided a first pass implementation in
|
26
|
-
diff-lcs#15. I've reworked it because of test failures in Rubinius when
|
27
|
-
running in Ruby 1.9 mode. This coerces the added values to the encoding of
|
28
|
-
the old dataset (as determined by the first piece of the old dataset).
|
29
|
-
https://github.com/rspec/rspec-expectations/issues/219
|
30
|
-
https://github.com/halostatue/diff-lcs/pull/15
|
31
|
-
* Adding Travis CI testing for Ruby 2.0.
|
32
|
-
|
33
|
-
== 1.2.1 / 2013-02-09
|
34
|
-
|
35
|
-
* Bugs Fixed:
|
36
|
-
* As seen in https://github.com/rspec/rspec-expectations/pull/200, the
|
37
|
-
release of Diff::LCS 1.2 introduced an unnecessary public API change to
|
38
|
-
Diff::LCS::Hunk (see the change at
|
39
|
-
https://github.com/rspec/rspec-expectations/commit/3d6fc82c for details).
|
40
|
-
The new method name (and behaviour) is more correct, but I should not have
|
41
|
-
renamed the function or should have at least provided an alias. This
|
42
|
-
release restores Diff::LCS::Hunk#unshift as an alias to
|
43
|
-
#merge. Note that the old #unshift behaviour was incorrect and will not be
|
44
|
-
restored.
|
45
|
-
|
46
|
-
== 1.2.0 / 2013-01-21
|
47
|
-
* Minor Enhancements:
|
48
|
-
* Added special case handling for Diff::LCS.patch so that it handles patches
|
49
|
-
that are empty or contain no changes.
|
50
|
-
* Added two new methods (#patch\_me and #unpatch\_me) to the includable
|
51
|
-
module.
|
52
|
-
* Bugs Fixed:
|
53
|
-
* Fixed issue #1 patch direction detection.
|
54
|
-
https://github.com/halostatue/diff-lcs/issues/1
|
55
|
-
* Resolved issue #2 by handling string[string.size, 1] properly (it returns
|
56
|
-
"" not nil). https://github.com/halostatue/diff-lcs/issues/2
|
57
|
-
* Michael Granger (ged) fixed an implementation error in Diff::LCS::Change
|
58
|
-
and added specs in pull request #8. Thanks!
|
59
|
-
https://github.com/halostatue/diff-lcs/issues/8
|
60
|
-
* Made the code auto-testable.
|
61
|
-
* Vít Ondruch (voxik) provided the latest version of the GPL2 license file in
|
62
|
-
pull request #10. Thanks! https://github.com/halostatue/diff-lcs/issues/10
|
63
|
-
* Fixed a documentation issue with the includable versions of #patch! and
|
64
|
-
#unpatch! where they implied that they would replace the original value.
|
65
|
-
Given that Diff::LCS.patch always returns a copy, the documentation was
|
66
|
-
incorrect and has been corrected. To provide the behaviour that was
|
67
|
-
originally documented, two new methods were added to provide this
|
68
|
-
behaviour. Found by scooter-dangle in issue #12. Thanks!
|
69
|
-
https://github.com/halostatue/diff-lcs/issues/12
|
70
|
-
* Code Style Changes:
|
71
|
-
* Removed trailing spaces.
|
72
|
-
* Calling class methods using '.' instead of '::'.
|
73
|
-
* Vít Ondruch (voxik) removed unnecessary shebangs in pull request #9.
|
74
|
-
Thanks! https://github.com/halostatue/diff-lcs/issues/9
|
75
|
-
* Kenichi Kamiya (kachick) removed some warnings of an unused variable in
|
76
|
-
lucky pull request #13. https://github.com/halostatue/diff-lcs/issues/13
|
77
|
-
Thanks!
|
78
|
-
* Embarked on a major refactoring to make the files a little more manageable
|
79
|
-
and understand the code on a deeper level.
|
80
|
-
* Adding to http://travis-ci.org.
|
81
|
-
|
82
|
-
== 1.1.3 / 2011-08-27
|
83
|
-
* Converted to 'hoe' for release.
|
84
|
-
* Converted tests to RSpec 2.
|
85
|
-
* Extracted the body of htmldiff into a class available from
|
86
|
-
diff/lcs/htmldiff.
|
87
|
-
* Migrated development and issue tracking to GitHub.
|
88
|
-
* Bugs fixed:
|
89
|
-
- Eliminated the explicit use of RubyGems in both bin/htmldiff and bin/ldiff.
|
90
|
-
Resolves issue 4 (https://github.com/halostatue/diff-lcs/issues/4).
|
91
|
-
- Eliminated Ruby warnings. Resolves issue 3
|
92
|
-
(https://github.com/halostatue/diff-lcs/issues/3).
|
93
|
-
|
94
|
-
== 1.1.2 / 2004-10-20
|
95
|
-
* Fixed a problem reported by Mauricio Fernandez in htmldiff.
|
96
|
-
|
97
|
-
== 1.1.1 / 2004-09-25
|
98
|
-
* Fixed bug #891:
|
99
|
-
http://rubyforge.org/tracker/?func=detail&atid=407&aid=891&group_id=84
|
100
|
-
* Fixed a problem with callback initialisation code (it assumed that all
|
101
|
-
callbacks passed as classes can be initialised; now, it rescues
|
102
|
-
NoMethodError in the event of private :new being called).
|
103
|
-
* Modified the non-initialisable callbacks to have a private #new method.
|
104
|
-
* Moved ldiff core code to Diff::LCS::Ldiff (diff/lcs/ldiff.rb).
|
105
|
-
|
106
|
-
== 1.1.0 / -
|
107
|
-
* Eliminated the need for Diff::LCS::Event and removed it.
|
108
|
-
* Added a contextual diff callback, Diff::LCS::ContextDiffCallback.
|
109
|
-
* Implemented patching/unpatching for standard Diff callback output formats
|
110
|
-
with both #diff and #sdiff.
|
111
|
-
* Extensive documentation changes.
|
112
|
-
|
113
|
-
== 1.0.4 / -
|
114
|
-
* Fixed a problem with bin/ldiff output, especially for unified format.
|
115
|
-
Newlines that should have been present weren't.
|
116
|
-
* Changed the .tar.gz installer to generate Windows batch files if ones do not
|
117
|
-
exist already. Removed the existing batch files as they didn't work.
|
118
|
-
|
119
|
-
== 1.0.3 / -
|
120
|
-
* Fixed a problem with #traverse\_sequences where the first difference from the
|
121
|
-
left sequence might not be appropriately captured.
|
122
|
-
|
123
|
-
== 1.0.2 / -
|
124
|
-
* Fixed an issue with ldiff not working because actions were changed from
|
125
|
-
symbols to strings.
|
126
|
-
|
127
|
-
== 1.0.1 / -
|
128
|
-
* Minor modifications to the gemspec, the README.
|
129
|
-
* Renamed the diff program to ldiff (as well as the companion batch file) so as
|
130
|
-
to not collide with the standard diff program.
|
131
|
-
* Fixed issues with RubyGems. Requires RubyGems > 0.6.1 or >= 0.6.1 with the
|
132
|
-
latest CVS version.
|
133
|
-
|
134
|
-
== 1.0 / -
|
135
|
-
* Initial release based mostly on Perl's Algorithm::Diff.
|
data/diff-lcs.gemspec
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
Gem::Specification.new do |s|
|
4
|
-
s.name = "diff-lcs"
|
5
|
-
s.version = "1.2.1"
|
6
|
-
|
7
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Austin Ziegler"]
|
9
|
-
s.date = "2013-02-09"
|
10
|
-
s.description = "Diff::LCS computes the difference between two Enumerable sequences using the\nMcIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities\nto create a simple HTML diff output format and a standard diff-like tool.\n\nThis is release 1.2.1, restoring the public API to what existed in Diff::LCS\n1.1.x. Everyone is strongly encouraged to upgrade to this version as it fixes\nall known outstanding issues."
|
11
|
-
s.email = ["austin@rubyforge.org"]
|
12
|
-
s.executables = ["htmldiff", "ldiff"]
|
13
|
-
s.extra_rdoc_files = ["Contributing.rdoc", "History.rdoc", "License.rdoc", "Manifest.txt", "README.rdoc", "docs/COPYING.txt", "docs/artistic.txt", "Contributing.rdoc", "History.rdoc", "License.rdoc", "README.rdoc"]
|
14
|
-
s.files = [".autotest", ".gemtest", ".rspec", ".travis.yml", "Contributing.rdoc", "Gemfile", "History.rdoc", "License.rdoc", "Manifest.txt", "README.rdoc", "Rakefile", "autotest/discover.rb", "bin/htmldiff", "bin/ldiff", "diff-lcs.gemspec", "docs/COPYING.txt", "docs/artistic.txt", "lib/diff-lcs.rb", "lib/diff/lcs.rb", "lib/diff/lcs/array.rb", "lib/diff/lcs/block.rb", "lib/diff/lcs/callbacks.rb", "lib/diff/lcs/change.rb", "lib/diff/lcs/htmldiff.rb", "lib/diff/lcs/hunk.rb", "lib/diff/lcs/internals.rb", "lib/diff/lcs/ldiff.rb", "lib/diff/lcs/string.rb", "spec/change_spec.rb", "spec/diff_spec.rb", "spec/issues_spec.rb", "spec/lcs_spec.rb", "spec/patch_spec.rb", "spec/sdiff_spec.rb", "spec/spec_helper.rb", "spec/traverse_balanced_spec.rb", "spec/traverse_sequences_spec.rb"]
|
15
|
-
s.homepage = "http://diff-lcs.rubyforge.org/"
|
16
|
-
s.rdoc_options = ["--main", "README.rdoc"]
|
17
|
-
s.require_paths = ["lib"]
|
18
|
-
s.rubyforge_project = "diff-lcs"
|
19
|
-
s.rubygems_version = "1.8.25"
|
20
|
-
s.summary = "Diff::LCS computes the difference between two Enumerable sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm"
|
21
|
-
|
22
|
-
if s.respond_to? :specification_version then
|
23
|
-
s.specification_version = 3
|
24
|
-
|
25
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
26
|
-
s.add_development_dependency(%q<rubyforge>, [">= 2.0.4"])
|
27
|
-
s.add_development_dependency(%q<rdoc>, ["~> 3.10"])
|
28
|
-
s.add_development_dependency(%q<hoe-bundler>, ["~> 1.2"])
|
29
|
-
s.add_development_dependency(%q<hoe-doofus>, ["~> 1.0"])
|
30
|
-
s.add_development_dependency(%q<hoe-gemspec>, ["~> 1.0"])
|
31
|
-
s.add_development_dependency(%q<hoe-git>, ["~> 1.5"])
|
32
|
-
s.add_development_dependency(%q<hoe-rubygems>, ["~> 1.0"])
|
33
|
-
s.add_development_dependency(%q<hoe-travis>, ["~> 1.2"])
|
34
|
-
s.add_development_dependency(%q<rake>, ["~> 10.0"])
|
35
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.0"])
|
36
|
-
s.add_development_dependency(%q<hoe>, ["~> 3.5"])
|
37
|
-
else
|
38
|
-
s.add_dependency(%q<rubyforge>, [">= 2.0.4"])
|
39
|
-
s.add_dependency(%q<rdoc>, ["~> 3.10"])
|
40
|
-
s.add_dependency(%q<hoe-bundler>, ["~> 1.2"])
|
41
|
-
s.add_dependency(%q<hoe-doofus>, ["~> 1.0"])
|
42
|
-
s.add_dependency(%q<hoe-gemspec>, ["~> 1.0"])
|
43
|
-
s.add_dependency(%q<hoe-git>, ["~> 1.5"])
|
44
|
-
s.add_dependency(%q<hoe-rubygems>, ["~> 1.0"])
|
45
|
-
s.add_dependency(%q<hoe-travis>, ["~> 1.2"])
|
46
|
-
s.add_dependency(%q<rake>, ["~> 10.0"])
|
47
|
-
s.add_dependency(%q<rspec>, ["~> 2.0"])
|
48
|
-
s.add_dependency(%q<hoe>, ["~> 3.5"])
|
49
|
-
end
|
50
|
-
else
|
51
|
-
s.add_dependency(%q<rubyforge>, [">= 2.0.4"])
|
52
|
-
s.add_dependency(%q<rdoc>, ["~> 3.10"])
|
53
|
-
s.add_dependency(%q<hoe-bundler>, ["~> 1.2"])
|
54
|
-
s.add_dependency(%q<hoe-doofus>, ["~> 1.0"])
|
55
|
-
s.add_dependency(%q<hoe-gemspec>, ["~> 1.0"])
|
56
|
-
s.add_dependency(%q<hoe-git>, ["~> 1.5"])
|
57
|
-
s.add_dependency(%q<hoe-rubygems>, ["~> 1.0"])
|
58
|
-
s.add_dependency(%q<hoe-travis>, ["~> 1.2"])
|
59
|
-
s.add_dependency(%q<rake>, ["~> 10.0"])
|
60
|
-
s.add_dependency(%q<rspec>, ["~> 2.0"])
|
61
|
-
s.add_dependency(%q<hoe>, ["~> 3.5"])
|
62
|
-
end
|
63
|
-
end
|
metadata.gz.sig
DELETED
Binary file
|