diff-lcs 1.1.3 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +1 -0
  3. data/Code-of-Conduct.md +74 -0
  4. data/Contributing.md +119 -0
  5. data/History.md +400 -0
  6. data/{License.rdoc → License.md} +6 -5
  7. data/Manifest.txt +36 -4
  8. data/README.rdoc +35 -23
  9. data/Rakefile +106 -11
  10. data/bin/htmldiff +7 -4
  11. data/bin/ldiff +4 -1
  12. data/docs/COPYING.txt +21 -22
  13. data/docs/artistic.txt +127 -0
  14. data/lib/diff/lcs/array.rb +1 -15
  15. data/lib/diff/lcs/backports.rb +9 -0
  16. data/lib/diff/lcs/block.rb +4 -18
  17. data/lib/diff/lcs/callbacks.rb +233 -230
  18. data/lib/diff/lcs/change.rb +114 -109
  19. data/lib/diff/lcs/htmldiff.rb +17 -18
  20. data/lib/diff/lcs/hunk.rb +232 -116
  21. data/lib/diff/lcs/internals.rb +308 -0
  22. data/lib/diff/lcs/ldiff.rb +138 -177
  23. data/lib/diff/lcs/string.rb +1 -15
  24. data/lib/diff/lcs.rb +597 -963
  25. data/lib/diff-lcs.rb +1 -3
  26. data/spec/change_spec.rb +89 -0
  27. data/spec/diff_spec.rb +32 -16
  28. data/spec/fixtures/aX +1 -0
  29. data/spec/fixtures/bXaX +1 -0
  30. data/spec/fixtures/ds1.csv +50 -0
  31. data/spec/fixtures/ds2.csv +51 -0
  32. data/spec/fixtures/ldiff/output.diff +4 -0
  33. data/spec/fixtures/ldiff/output.diff-c +7 -0
  34. data/spec/fixtures/ldiff/output.diff-e +3 -0
  35. data/spec/fixtures/ldiff/output.diff-f +3 -0
  36. data/spec/fixtures/ldiff/output.diff-u +5 -0
  37. data/spec/fixtures/ldiff/output.diff.chef +4 -0
  38. data/spec/fixtures/ldiff/output.diff.chef-c +15 -0
  39. data/spec/fixtures/ldiff/output.diff.chef-e +3 -0
  40. data/spec/fixtures/ldiff/output.diff.chef-f +3 -0
  41. data/spec/fixtures/ldiff/output.diff.chef-u +9 -0
  42. data/spec/fixtures/ldiff/output.diff.chef2 +7 -0
  43. data/spec/fixtures/ldiff/output.diff.chef2-c +20 -0
  44. data/spec/fixtures/ldiff/output.diff.chef2-d +7 -0
  45. data/spec/fixtures/ldiff/output.diff.chef2-e +7 -0
  46. data/spec/fixtures/ldiff/output.diff.chef2-f +7 -0
  47. data/spec/fixtures/ldiff/output.diff.chef2-u +16 -0
  48. data/spec/fixtures/new-chef +4 -0
  49. data/spec/fixtures/new-chef2 +17 -0
  50. data/spec/fixtures/old-chef +4 -0
  51. data/spec/fixtures/old-chef2 +14 -0
  52. data/spec/hunk_spec.rb +83 -0
  53. data/spec/issues_spec.rb +154 -0
  54. data/spec/lcs_spec.rb +36 -16
  55. data/spec/ldiff_spec.rb +87 -0
  56. data/spec/patch_spec.rb +198 -172
  57. data/spec/sdiff_spec.rb +99 -89
  58. data/spec/spec_helper.rb +149 -59
  59. data/spec/traverse_balanced_spec.rb +191 -167
  60. data/spec/traverse_sequences_spec.rb +105 -51
  61. metadata +218 -99
  62. data/.gemtest +0 -0
  63. data/History.rdoc +0 -54
  64. data/diff-lcs.gemspec +0 -51
  65. data/docs/artistic.html +0 -289
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 0df61a794bf8b132a80753391063526ffc15277d5f2dc592d319d37255d3700f
4
+ data.tar.gz: 9664b2f8338ff376bf7b4c9c1ae45e591e789b00b726a53523a2076f014aa5e0
5
+ SHA512:
6
+ metadata.gz: 37e529e14e23a3c121f3d5cc3f88fbed90d9efe44376bb579699126c2c1d2ea34649a079902dca42cb72f891daa27e347c99b2e0a32b58245117dd2567af2db0
7
+ data.tar.gz: 30576530bd6e1634635989729caeeaed68b9268423b659443b95abc66549491376f179b558b07dc8cc9bcf14f2768433d771c037514ec720a21a43dc9c197a5f
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Contributing.md ADDED
@@ -0,0 +1,119 @@
1
+ ## Contributing
2
+
3
+ I value any contribution to Diff::LCS you can provide: a bug report, a
4
+ feature request, or code contributions. Code contributions to Diff::LCS are
5
+ especially <del>welcome</del>encouraged. Because Diff::LCS is a complex
6
+ codebase, there are a few guidelines:
7
+
8
+ - Code changes _will not_ be accepted without tests. The test suite is
9
+ written with [RSpec][].
10
+ - Match my coding style.
11
+ - Use a thoughtfully-named topic branch that contains your change. Rebase
12
+ your commits into logical chunks as necessary.
13
+ - Use [quality commit messages][].
14
+ - Do not change the version number; when your patch is accepted and a release
15
+ is made, the version will be updated at that point.
16
+ - Submit a GitHub pull request with your changes.
17
+ - New or changed behaviours require appropriate documentation.
18
+
19
+ ### Test Dependencies
20
+
21
+ Diff::LCS uses Ryan Davis’s [Hoe][] to manage the release process, and it
22
+ adds a number of rake tasks. You will mostly be interested in:
23
+
24
+ ```sh
25
+ $ rake
26
+ ```
27
+
28
+ which runs the tests the same way that:
29
+
30
+ ```sh
31
+ $ rake spec
32
+ ```
33
+
34
+ will do.
35
+
36
+ To assist with the installation of the development dependencies, I have
37
+ provided a Gemfile pointing to the (generated) `diff-lcs.gemspec` file. This
38
+ will permit you to do:
39
+
40
+ ```sh
41
+ $ bundle install
42
+ ```
43
+
44
+ to get the development dependencies. If you aleady have `hoe` installed, you
45
+ can accomplish the same thing with:
46
+
47
+ ```sh
48
+ $ rake newb
49
+ ```
50
+
51
+ This task will install any missing dependencies, run the tests/specs, and
52
+ generate the RDoc.
53
+
54
+ You can run tests with code coverage analysis by running:
55
+
56
+ ```sh
57
+ $ rake spec:coverage
58
+ ```
59
+
60
+ ### Workflow
61
+
62
+ Here's the most direct way to get your work merged into the project:
63
+
64
+ - Fork the project.
65
+ - Clone down your fork (`git clone git://github.com/<username>/diff-lcs.git`).
66
+ - Create a topic branch to contain your change (`git checkout -b my_awesome_feature`).
67
+ - Hack away, add tests. Not necessarily in that order.
68
+ - Make sure everything still passes by running `rake`.
69
+ - If necessary, rebase your commits into logical chunks, without errors.
70
+ - Push the branch up (`git push origin my_awesome_feature`).
71
+ - Create a pull request against halostatue/diff-lcs and describe what your
72
+ change does and the why you think it should be merged.
73
+
74
+ ### Contributors
75
+
76
+ - Austin Ziegler created Diff::LCS.
77
+
78
+ Thanks to everyone else who has contributed code or bug reports to Diff::LCS:
79
+
80
+ - @ginriki
81
+ - @joshbronson
82
+ - @kevinmook
83
+ - @mckaz
84
+ - Akinori Musha
85
+ - Artem Ignatyev
86
+ - Brandon Fish
87
+ - Camille Drapier
88
+ - Cédric Boutillier
89
+ - Gregg Kellogg
90
+ - Jagdeep Singh
91
+ - Jason Gladish
92
+ - Jon Rowe
93
+ - Josef Strzibny
94
+ - Josep (@apuratepp)
95
+ - Josh Bronson
96
+ - Jun Aruga
97
+ - Kenichi Kamiya
98
+ - Kensuke Nagae
99
+ - Kevin Ansfield
100
+ - Koichi Ito
101
+ - Mark Friedgan
102
+ - Michael Granger
103
+ - Myron Marston
104
+ - Nicolas Leger
105
+ - Oleg Orlov
106
+ - Paul Kunysch
107
+ - Pete Higgins
108
+ - Peter Wagenet
109
+ - Philippe Lafoucrière
110
+ - Ryan Lovelett
111
+ - Scott Steele
112
+ - Simon Courtois
113
+ - Tien (@tiendo1011)
114
+ - Tomas Jura
115
+ - Vít Ondruch
116
+
117
+ [rspec]: http://rspec.info/documentation/
118
+ [quality commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
119
+ [hoe]: https://github.com/seattlerb/hoe
data/History.md ADDED
@@ -0,0 +1,400 @@
1
+ # History
2
+
3
+ ## 1.5.0 / 2021-12-23
4
+
5
+ - Updated the CI configuration and monkey-patch Hoe.
6
+
7
+ - Kenichi Kamiya fixed a test configuration deprecation in SimpleCov. [#69]
8
+
9
+ - Tien introduced several corrections and code improvements:
10
+
11
+ - Removed an off-by-one error when calculating an index value by embracing
12
+ Ruby iteration properly. This had a side-effect of fixing a long-standing
13
+ bug in `#traverse_sequences` where the traversal would not be transitive.
14
+ That is, `LCS(s2, s1)` should produce a sequence that is transitive with
15
+ `LCS(s1, s2)` on traversal, and applying the diff computed from those
16
+ results would result in equivalent changes that could be played forward or
17
+ backward as appropriate. [#71], [#75]
18
+
19
+ - The above fix resulted in a changed order of the longest common subsequence
20
+ when callbacks were applied. After analysis, it was determined that the
21
+ computed subsequence was _equivalent_ to the prior version, so the test was
22
+ updated. This also resulted in the clarification of documentation when
23
+ traversing the subsequences. [#79]
24
+
25
+ - An infinite loop case in the case where Diff::LCS would be included into an
26
+ enumerable class has been fixed. [#73]
27
+
28
+ - Clarified the purpose of a threshold test in calculation of LCS. [#72],
29
+ [#80]
30
+
31
+ - Removed autotest directory
32
+
33
+ ## 1.4.4 / 2020-07-01
34
+
35
+ - Fixed an issue reported by Jun Aruga in the Diff::LCS::Ldiff binary text
36
+ detection. [#44]
37
+
38
+ - Fixed a theoretical issue reported by Jun Aruga in Diff::LCS::Hunk to raise
39
+ a more useful exception. [#43]
40
+
41
+ - Added documentation that should address custom object issues as reported in
42
+ [#35].
43
+
44
+ - Fixed more diff errors, in part reported in [#65].
45
+
46
+ - The use of `Numeric#abs` is incorrect in `Diff::LCS::Block#diff_size`. The
47
+ diff size _must_ be accurate for correct change placement.
48
+
49
+ - When selecting @max_diff_size in Diff::LCS::Hunk, choose it based on
50
+ `block.diff_size.abs`.
51
+
52
+ - Made a number of changes that will, unfortunately, increase allocations at
53
+ the cost of being safe with frozen strings.
54
+
55
+ - Add some knowledge that when `Diff::LCS::Hunk#diff` is called, that we are
56
+ processing the _last_ hunk, so some changes will be made to how the output
57
+ is generated.
58
+
59
+ - `old`, `ed`, and `reverse_ed` formats have no differences.
60
+
61
+ - `unified` format will report `` given the
62
+ correct conditions, at most once. Unified range reporting also differs for
63
+ the last hunk such that the `length` of the range is reduced by one.
64
+
65
+ - `context` format will report `\No newline at end of file` given the
66
+ correct conditions, up to once per "file". Context range reporting also
67
+ differs for the last hunk such that the `end` part of the range is reduced
68
+ by one to a minimum of one.
69
+
70
+ - Added a bunch more tests for the cases above, and fixed `hunk_spec.rb` so that
71
+ the phrase being compared isn't nonsense French.
72
+
73
+ - Updated formatting.
74
+
75
+ - Added a Rake task to assist with manual testing on Ruby 1.8.
76
+
77
+ ## 1.4.3 / 2020-06-29
78
+
79
+ - Fixed several issues with the 1.4 on Rubies older than 2.0. Some of this was
80
+ providing useful shim functions to Hoe 3.x (which dropped these older Rubies
81
+ a while ago). Specifically:
82
+
83
+ - Removed Array#lazy from a method in Diff::LCS::Hunk.
84
+
85
+ - Changed some unit tests to use old-style Symbol-keyed hashes.
86
+
87
+ - Changed some unit test helper functions to no longer use keyword parameters,
88
+ but only a trailing options hash.
89
+
90
+ - Made the use of `psych` dependent on `RUBY_VERSION >= 1.9`.
91
+
92
+ Resolves [#63].
93
+
94
+ ## 1.4.2 / 2020-06-23
95
+
96
+ - Camille Drapier fixed a small issue with RuboCop configuration. [#59]
97
+
98
+ - Applied another fix (and unit test) to fix an issue for the Chef team.
99
+ [#60], [#61]
100
+
101
+ ## 1.4.1 / 2020-06-23
102
+
103
+ - Fix an issue where diff sizes could be negative, and they should be. [#57],
104
+ [#58]
105
+
106
+ ## 1.4 / 2020-06-23
107
+
108
+ - Ruby versions lower than 2.4 are soft-deprecated and will not be run as part
109
+ of the CI process any longer.
110
+
111
+ - Akinora MUSHA (knu) added the ability for Diff::LCS::Change objects to be
112
+ implicitly treated arrays. Originally provided as pull request [#47], but it
113
+ introduced a number of test failures as documented in [#48], and remediation
114
+ of Diff::LCS itself was introduced in [#49].
115
+
116
+ - Resolved [#5] with some tests comparing output from `system` calls to
117
+ `bin/ldiff` with some pre-generated output. Resolved [#6] with these tests.
118
+
119
+ - Resolved a previously undetected `bin/ldiff` issue with `--context` output not
120
+ matching `diff --context` output.
121
+
122
+ - Resolved an issue with later versions of Ruby not working with an `OptParse`
123
+ specification of `Numeric`; this has been changed to `Integer`.
124
+
125
+ - Brandon Fish added truffleruby in [#52].
126
+
127
+ - Fixed two missing classes as reported in [#53].
128
+
129
+ ## 1.3 / 2017-01-18
130
+
131
+ - Bugs fixed:
132
+
133
+ - Fixed an error for bin/ldiff --version. Fixes issue [#21].
134
+
135
+ - Force Diff::LCS::Change and Diff::LCS::ContextChange to only perform
136
+ equality comparisons against themselves. Provided by Kevin Mook in pull
137
+ request [#29].
138
+
139
+ - Fix tab expansion in htmldiff, provided by Mark Friedgan in pull request
140
+ [#25].
141
+
142
+ - Silence Ruby 2.4 Fixnum deprecation warnings. Fixes issue [#38] and pull
143
+ request [#36].
144
+
145
+ - Ensure that test dependencies are loaded properly. Fixes issue [#33] and
146
+ pull request [#34].
147
+
148
+ - Fix issue [#1] with incorrect intuition of patch direction. Tentative fix,
149
+ but the previous failure cases pass now.
150
+
151
+ - Tooling changes:
152
+
153
+ - Added SimpleCov and Coveralls support.
154
+
155
+ - Change the homepage (temporarily) to the GitHub repo.
156
+
157
+ - Updated testing and gem infrastructure.
158
+
159
+ - Modernized the specs.
160
+
161
+ - Cleaned up documentation.
162
+
163
+ - Added a Code of Conduct.
164
+
165
+ ## 1.2.5 / 2013-11-08
166
+
167
+ - Bugs fixed:
168
+
169
+ - Comparing arrays flattened them too far, especially with Diff::LCS.sdiff.
170
+ Fixed by Josh Bronson in pull request [#23].
171
+
172
+ ## 1.2.4 / 2013-04-20
173
+
174
+ - Bugs fixed:
175
+
176
+ - A bug was introduced after 1.1.3 when pruning common sequences at the start
177
+ of comparison. Paul Kunysch (@pck) fixed this in pull request [#18]. Thanks!
178
+
179
+ - The Rubinius (1.9 mode) bug in [rubinius/rubinius#2268] has been fixed by
180
+ the Rubinius team two days after it was filed. Thanks for fixing this so
181
+ quickly!
182
+
183
+ - Switching to Raggi's hoe-gemspec2 for gemspec generation.
184
+
185
+ ## 1.2.3 / 2013-04-11
186
+
187
+ - Bugs Fixed:
188
+
189
+ - The new encoding detection for diff output generation (added in 1.2.2)
190
+ introduced a bug if the left side of the comparison was the empty set.
191
+ Originally found in [rspec/rspec-expectations#238] and
192
+ [rspec/rspec-expectations#239]. Jon Rowe developed a reasonable heuristic
193
+ (left side, right side, empty string literal) to avoid this bug.
194
+
195
+ - There is a known issue with Rubinius in 1.9 mode reported in
196
+ [rubinius/rubinius#2268] and demonstrated in the Travis CI builds. For all
197
+ other tested platforms, diff-lcs is considered stable. As soon as a suitably
198
+ small test-case can be created for the Rubinius team to examine, this will
199
+ be added to the Rubinius issue around this.
200
+
201
+ ## 1.2.2 / 2013-03-30
202
+
203
+ - Bugs Fixed:
204
+
205
+ - Diff::LCS::Hunk could not properly generate a difference for comparison sets
206
+ that are not US-ASCII-compatible because of the use of literal regular
207
+ expressions and strings. Jon Rowe found this in
208
+ [rspec/rspec-expectations#219] and provided a first pass implementation in
209
+ pull request [#15]. I've reworked it because of test failures in Rubinius
210
+ when running in Ruby 1.9 mode. This coerces the added values to the encoding
211
+ of the old dataset (as determined by the first piece of the old dataset).
212
+
213
+ - Adding Travis CI testing for Ruby 2.0.
214
+
215
+ ## 1.2.1 / 2013-02-09
216
+
217
+ - Bugs Fixed:
218
+
219
+ - As seen in [rspec/rspec-expectations#200], the release of Diff::LCS 1.2
220
+ introduced an unnecessary public API change to Diff::LCS::Hunk (see the
221
+ change at [rspec/rspec-expectations@3d6fc82c] for details). The new method
222
+ name (and behaviour) is more correct, but I should not have renamed the
223
+ function or should have at least provided an alias. This release restores
224
+ Diff::LCS::Hunk#unshift as an alias to #merge. Note that the old #unshift
225
+ behaviour was incorrect and will not be restored.
226
+
227
+ ## 1.2.0 / 2013-01-21
228
+
229
+ - Minor Enhancements:
230
+
231
+ - Added special case handling for Diff::LCS.patch so that it handles patches
232
+ that are empty or contain no changes.
233
+
234
+ - Added two new methods (#patch_me and #unpatch_me) to the includable module.
235
+
236
+ - Bugs Fixed:
237
+
238
+ - Fixed issue [#1] patch direction detection.
239
+
240
+ - Resolved issue [#2] by handling `string[string.size, 1]` properly (it
241
+ returns `""` not `nil`).
242
+
243
+ - Michael Granger (ged) fixed an implementation error in Diff::LCS::Change and
244
+ added specs in pull request [#8]. Thanks!
245
+
246
+ - Made the code auto-testable.
247
+
248
+ - Vít Ondruch (voxik) provided the latest version of the GPL2 license file in
249
+ pull request [#10]. Thanks!
250
+
251
+ - Fixed a documentation issue with the includable versions of #patch! and
252
+ #unpatch! where they implied that they would replace the original value.
253
+ Given that Diff::LCS.patch always returns a copy, the documentation was
254
+ incorrect and has been corrected. To provide the behaviour that was
255
+ originally documented, two new methods were added to provide this behaviour.
256
+ Found by scooter-dangle in issue [#12]. Thanks!
257
+
258
+ - Code Style Changes:
259
+
260
+ - Removed trailing spaces.
261
+
262
+ - Calling class methods using `.` instead of `::`.
263
+
264
+ - Vít Ondruch (voxik) removed unnecessary shebangs in pull request [#9].
265
+ Thanks!
266
+
267
+ - Kenichi Kamiya (kachick) removed some warnings of an unused variable in
268
+ lucky pull request [#13]. Thanks!
269
+
270
+ - Embarked on a major refactoring to make the files a little more manageable
271
+ and understand the code on a deeper level.
272
+
273
+ - Adding to http://travis-ci.org.
274
+
275
+ ## 1.1.3 / 2011-08-27
276
+
277
+ - Converted to 'hoe' for release.
278
+
279
+ - Converted tests to RSpec 2.
280
+
281
+ - Extracted the body of htmldiff into a class available from diff/lcs/htmldiff.
282
+
283
+ - Migrated development and issue tracking to GitHub.
284
+
285
+ - Bugs fixed:
286
+
287
+ - Eliminated the explicit use of RubyGems in both bin/htmldiff and bin/ldiff.
288
+ Resolves issue [#4].
289
+
290
+ - Eliminated Ruby warnings. Resolves issue [#3].
291
+
292
+ ## 1.1.2 / 2004-10-20
293
+
294
+ - Fixed a problem reported by Mauricio Fernandez in htmldiff.
295
+
296
+ ## 1.1.1 / 2004-09-25
297
+
298
+ - Fixed bug #891 (Set returned from patch command does not contain last equal
299
+ part).
300
+
301
+ - Fixed a problem with callback initialisation code (it assumed that all
302
+ callbacks passed as classes can be initialised; now, it rescues NoMethodError
303
+ in the event of private :new being called).
304
+
305
+ - Modified the non-initialisable callbacks to have a private #new method.
306
+
307
+ - Moved ldiff core code to Diff::LCS::Ldiff (diff/lcs/ldiff.rb).
308
+
309
+ ## 1.1.0
310
+
311
+ - Eliminated the need for Diff::LCS::Event and removed it.
312
+
313
+ - Added a contextual diff callback, Diff::LCS::ContextDiffCallback.
314
+
315
+ - Implemented patching/unpatching for standard Diff callback output formats with
316
+ both #diff and #sdiff.
317
+
318
+ - Extensive documentation changes.
319
+
320
+ ## 1.0.4
321
+
322
+ - Fixed a problem with bin/ldiff output, especially for unified format. Newlines
323
+ that should have been present weren't.
324
+
325
+ - Changed the .tar.gz installer to generate Windows batch files if ones do not
326
+ exist already. Removed the existing batch files as they didn't work.
327
+
328
+ ## 1.0.3
329
+
330
+ - Fixed a problem with #traverse_sequences where the first difference from the
331
+ left sequence might not be appropriately captured.
332
+
333
+ ## 1.0.2
334
+
335
+ - Fixed an issue with ldiff not working because actions were changed from
336
+ symbols to strings.
337
+
338
+ ## 1.0.1
339
+
340
+ - Minor modifications to the gemspec, the README.
341
+
342
+ - Renamed the diff program to ldiff (as well as the companion batch file) so as
343
+ to not collide with the standard diff program.
344
+
345
+ - Fixed issues with RubyGems. Requires RubyGems > 0.6.1 or >= 0.6.1 with the
346
+ latest CVS version.
347
+
348
+ ## 1.0
349
+
350
+ - Initial release based mostly on Perl's Algorithm::Diff.
351
+
352
+ [rubinius/rubinius#2268]: https://github.com/rubinius/rubinius/issues/2268
353
+ [rspec/rspec-expectations#239]: https://github.com/rspec/rspec-expectations/issues/239
354
+ [rspec/rspec-expectations#238]: https://github.com/rspec/rspec-expectations/issues/238
355
+ [rspec/rspec-expectations#219]: https://github.com/rspec/rspec-expectations/issues/219
356
+ [rspec/rspec-expectations@3d6fc82c]: https://github.com/rspec/rspec-expectations/commit/3d6fc82c
357
+ [rspec/rspec-expectations#200]: https://github.com/rspec/rspec-expectations/pull/200
358
+ [#1]: https://github.com/halostatue/diff-lcs/issues/1
359
+ [#2]: https://github.com/halostatue/diff-lcs/issues/2
360
+ [#3]: https://github.com/halostatue/diff-lcs/issues/3
361
+ [#4]: https://github.com/halostatue/diff-lcs/issues/4
362
+ [#5]: https://github.com/halostatue/diff-lcs/issues/5
363
+ [#6]: https://github.com/halostatue/diff-lcs/issues/6
364
+ [#8]: https://github.com/halostatue/diff-lcs/pull/8
365
+ [#9]: https://github.com/halostatue/diff-lcs/pull/9
366
+ [#10]: https://github.com/halostatue/diff-lcs/pull/10
367
+ [#12]: https://github.com/halostatue/diff-lcs/issues/12
368
+ [#13]: https://github.com/halostatue/diff-lcs/pull/13
369
+ [#15]: https://github.com/halostatue/diff-lcs/pull/15
370
+ [#18]: https://github.com/halostatue/diff-lcs/pull/18
371
+ [#21]: https://github.com/halostatue/diff-lcs/issues/21
372
+ [#23]: https://github.com/halostatue/diff-lcs/pull/23
373
+ [#25]: https://github.com/halostatue/diff-lcs/pull/25
374
+ [#29]: https://github.com/halostatue/diff-lcs/pull/29
375
+ [#33]: https://github.com/halostatue/diff-lcs/issues/33
376
+ [#34]: https://github.com/halostatue/diff-lcs/pull/34
377
+ [#35]: https://github.com/halostatue/diff-lcs/issues/35
378
+ [#36]: https://github.com/halostatue/diff-lcs/pull/36
379
+ [#38]: https://github.com/halostatue/diff-lcs/issues/38
380
+ [#43]: https://github.com/halostatue/diff-lcs/issues/43
381
+ [#44]: https://github.com/halostatue/diff-lcs/issues/44
382
+ [#47]: https://github.com/halostatue/diff-lcs/pull/47
383
+ [#48]: https://github.com/halostatue/diff-lcs/issues/48
384
+ [#49]: https://github.com/halostatue/diff-lcs/pull/49
385
+ [#52]: https://github.com/halostatue/diff-lcs/pull/52
386
+ [#53]: https://github.com/halostatue/diff-lcs/issues/53
387
+ [#57]: https://github.com/halostatue/diff-lcs/issues/57
388
+ [#58]: https://github.com/halostatue/diff-lcs/pull/58
389
+ [#59]: https://github.com/halostatue/diff-lcs/pull/59
390
+ [#60]: https://github.com/halostatue/diff-lcs/issues/60
391
+ [#61]: https://github.com/halostatue/diff-lcs/pull/61
392
+ [#63]: https://github.com/halostatue/diff-lcs/issues/63
393
+ [#65]: https://github.com/halostatue/diff-lcs/issues/65
394
+ [#69]: https://github.com/halostatue/diff-lcs/issues/69
395
+ [#71]: https://github.com/halostatue/diff-lcs/issues/71
396
+ [#72]: https://github.com/halostatue/diff-lcs/issues/72
397
+ [#73]: https://github.com/halostatue/diff-lcs/issues/73
398
+ [#75]: https://github.com/halostatue/diff-lcs/issues/75
399
+ [#79]: https://github.com/halostatue/diff-lcs/issues/79
400
+ [#80]: https://github.com/halostatue/diff-lcs/issues/80
@@ -4,12 +4,13 @@ This software is available under three licenses: the GNU GPL version 2 (or at
4
4
  your option, a later version), the Perl Artistic license, or the MIT license.
5
5
  Note that my preference for licensing is the MIT license, but Algorithm::Diff
6
6
  was dually originally licensed with the Perl Artistic and the GNU GPL ("the
7
- same terms as Perl itself") and that the Ruby implementation hews pretty
8
- closely to the Perl version, so I must maintain the additional licensing terms.
7
+ same terms as Perl itself") and given that the Ruby implementation originally
8
+ hewed pretty closely to the Perl version, I must maintain the additional
9
+ licensing terms.
9
10
 
10
- * Copyright 2004–2011 Austin Ziegler.
11
- * Adapted from Algorithm::Diff (Perl) by Ned Konz and a Smalltalk versionby
12
- Mario I. Wolczko <mario@wolczko.com>
11
+ * Copyright 2004–2013 Austin Ziegler.
12
+ * Adapted from Algorithm::Diff (Perl) by Ned Konz and a Smalltalk version by
13
+ Mario I. Wolczko.
13
14
 
14
15
  === MIT License
15
16
 
data/Manifest.txt CHANGED
@@ -1,25 +1,57 @@
1
- History.rdoc
2
- License.rdoc
1
+ .rspec
2
+ Code-of-Conduct.md
3
+ Contributing.md
4
+ History.md
5
+ License.md
3
6
  Manifest.txt
4
7
  README.rdoc
5
8
  Rakefile
6
9
  bin/htmldiff
7
10
  bin/ldiff
8
- diff-lcs.gemspec
9
11
  docs/COPYING.txt
10
- docs/artistic.html
12
+ docs/artistic.txt
11
13
  lib/diff-lcs.rb
12
14
  lib/diff/lcs.rb
13
15
  lib/diff/lcs/array.rb
16
+ lib/diff/lcs/backports.rb
14
17
  lib/diff/lcs/block.rb
15
18
  lib/diff/lcs/callbacks.rb
16
19
  lib/diff/lcs/change.rb
17
20
  lib/diff/lcs/htmldiff.rb
18
21
  lib/diff/lcs/hunk.rb
22
+ lib/diff/lcs/internals.rb
19
23
  lib/diff/lcs/ldiff.rb
20
24
  lib/diff/lcs/string.rb
25
+ spec/change_spec.rb
21
26
  spec/diff_spec.rb
27
+ spec/fixtures/aX
28
+ spec/fixtures/bXaX
29
+ spec/fixtures/ds1.csv
30
+ spec/fixtures/ds2.csv
31
+ spec/fixtures/ldiff/output.diff
32
+ spec/fixtures/ldiff/output.diff-c
33
+ spec/fixtures/ldiff/output.diff-e
34
+ spec/fixtures/ldiff/output.diff-f
35
+ spec/fixtures/ldiff/output.diff-u
36
+ spec/fixtures/ldiff/output.diff.chef
37
+ spec/fixtures/ldiff/output.diff.chef-c
38
+ spec/fixtures/ldiff/output.diff.chef-e
39
+ spec/fixtures/ldiff/output.diff.chef-f
40
+ spec/fixtures/ldiff/output.diff.chef-u
41
+ spec/fixtures/ldiff/output.diff.chef2
42
+ spec/fixtures/ldiff/output.diff.chef2-c
43
+ spec/fixtures/ldiff/output.diff.chef2-d
44
+ spec/fixtures/ldiff/output.diff.chef2-e
45
+ spec/fixtures/ldiff/output.diff.chef2-f
46
+ spec/fixtures/ldiff/output.diff.chef2-u
47
+ spec/fixtures/new-chef
48
+ spec/fixtures/new-chef2
49
+ spec/fixtures/old-chef
50
+ spec/fixtures/old-chef2
51
+ spec/hunk_spec.rb
52
+ spec/issues_spec.rb
22
53
  spec/lcs_spec.rb
54
+ spec/ldiff_spec.rb
23
55
  spec/patch_spec.rb
24
56
  spec/sdiff_spec.rb
25
57
  spec/spec_helper.rb