diff-lcs 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
- data/History.rdoc +18 -0
- data/README.rdoc +10 -3
- data/lib/diff/lcs.rb +2 -2
- data/lib/diff/lcs/hunk.rb +1 -1
- data/spec/hunk_spec.rb +37 -28
- metadata +18 -5
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,21 @@
|
|
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
|
+
|
1
19
|
== 1.2.2 / 2013-03-30
|
2
20
|
|
3
21
|
* Bugs Fixed:
|
data/README.rdoc
CHANGED
@@ -11,9 +11,16 @@ Diff::LCS computes the difference between two Enumerable sequences using the
|
|
11
11
|
McIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities
|
12
12
|
to create a simple HTML diff output format and a standard diff-like tool.
|
13
13
|
|
14
|
-
This is release 1.2.
|
15
|
-
|
16
|
-
|
14
|
+
This is release 1.2.3, fixing a bug in value comparison where the left side of
|
15
|
+
the comparison was the empty set, preventing the detection of encoding. Thanks
|
16
|
+
to Jon Rowe for fixing this issue. This is a strongly recommended release.
|
17
|
+
|
18
|
+
*Note*: There is a known issue with Rubinius in 1.9 mode reported in
|
19
|
+
{rubinius/rubinius#2268}[https://github.com/rubinius/rubinius/issues/2268] and
|
20
|
+
demonstrated in the Travis CI builds. For all other tested platforms, diff-lcs
|
21
|
+
is considered stable. As soon as a suitably small test-case can be created for
|
22
|
+
the Rubinius team to examine, this will be added to the Rubinius issue around
|
23
|
+
this.
|
17
24
|
|
18
25
|
== Synopsis
|
19
26
|
|
data/lib/diff/lcs.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- ruby encoding: utf-8 -*-
|
2
2
|
|
3
3
|
module Diff; end unless defined? Diff
|
4
|
-
# = Diff::LCS 1.2.
|
4
|
+
# = Diff::LCS 1.2.3
|
5
5
|
#
|
6
6
|
# Computes "intelligent" differences between two sequenced Enumerables. This
|
7
7
|
# is an implementation of the McIlroy-Hunt "diff" algorithm for Enumerable
|
@@ -129,7 +129,7 @@ module Diff; end unless defined? Diff
|
|
129
129
|
# Common Subsequences</em>, CACM, vol.20, no.5, pp.350-353, May
|
130
130
|
# 1977, with a few minor improvements to improve the speed."
|
131
131
|
module Diff::LCS
|
132
|
-
VERSION = '1.2.
|
132
|
+
VERSION = '1.2.3'
|
133
133
|
end
|
134
134
|
|
135
135
|
require 'diff/lcs/callbacks'
|
data/lib/diff/lcs/hunk.rb
CHANGED
@@ -12,7 +12,7 @@ class Diff::LCS::Hunk
|
|
12
12
|
# At first, a hunk will have just one Block in it
|
13
13
|
@blocks = [ Diff::LCS::Block.new(piece) ]
|
14
14
|
if String.method_defined?(:encoding)
|
15
|
-
@preferred_data_encoding = data_old
|
15
|
+
@preferred_data_encoding = data_old.fetch(0, data_new.fetch(0,'') ).encoding
|
16
16
|
end
|
17
17
|
@data_old = data_old
|
18
18
|
@data_new = data_new
|
data/spec/hunk_spec.rb
CHANGED
@@ -15,49 +15,58 @@ describe "Diff::LCS::Hunk" do
|
|
15
15
|
let(:hunk) { Diff::LCS::Hunk.new(old_data, new_data, pieces[0], 3, 0) }
|
16
16
|
|
17
17
|
it 'should be able to produce a unified diff from the two pieces' do
|
18
|
-
expected =
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
EOD
|
18
|
+
expected = (<<-EOD.gsub(/^\s+/,'').encode('UTF-16LE').chomp)
|
19
|
+
@@ -1,2 +1,2 @@
|
20
|
+
-Tu avec carté {count} itém has
|
21
|
+
+Tu avec carte {count} item has
|
22
|
+
EOD
|
24
23
|
expect(hunk.diff(:unified).to_s == expected).to eql true
|
25
24
|
end
|
26
25
|
|
27
26
|
it 'should be able to produce a context diff from the two pieces' do
|
28
|
-
expected =
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
EOD
|
27
|
+
expected = (<<-EOD.gsub(/^\s+/,'').encode('UTF-16LE').chomp)
|
28
|
+
***************
|
29
|
+
*** 1,2 ****
|
30
|
+
!Tu avec carté {count} itém has
|
31
|
+
--- 1,2 ----
|
32
|
+
!Tu avec carte {count} item has
|
33
|
+
EOD
|
36
34
|
|
37
35
|
expect(hunk.diff(:context).to_s == expected).to eql true
|
38
36
|
end
|
39
37
|
|
40
38
|
it 'should be able to produce an old diff from the two pieces' do
|
41
|
-
expected =
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
EOD
|
39
|
+
expected = (<<-EOD.gsub(/^ +/,'').encode('UTF-16LE').chomp)
|
40
|
+
1,2c1,2
|
41
|
+
< Tu avec carté {count} itém has
|
42
|
+
---
|
43
|
+
> Tu avec carte {count} item has
|
44
|
+
|
45
|
+
EOD
|
49
46
|
expect(hunk.diff(:old).to_s == expected).to eql true
|
50
47
|
end
|
51
48
|
|
52
49
|
it 'should be able to produce a reverse ed diff from the two pieces' do
|
53
|
-
expected =
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
.
|
50
|
+
expected = (<<-EOD.gsub(/^ +/,'').encode('UTF-16LE').chomp)
|
51
|
+
c1,2
|
52
|
+
Tu avec carte {count} item has
|
53
|
+
.
|
58
54
|
|
59
|
-
EOD
|
55
|
+
EOD
|
60
56
|
expect(hunk.diff(:reverse_ed).to_s == expected).to eql true
|
61
57
|
end
|
58
|
+
|
59
|
+
context 'with empty first data set' do
|
60
|
+
let(:old_data) { [] }
|
61
|
+
|
62
|
+
it 'should be able to produce a unified diff' do
|
63
|
+
expected = (<<-EOD.gsub(/^\s+/,'').encode('UTF-16LE').chomp)
|
64
|
+
@@ -1 +1,2 @@
|
65
|
+
+Tu avec carte {count} item has
|
66
|
+
EOD
|
67
|
+
expect(hunk.diff(:unified).to_s == expected).to eql true
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
62
71
|
end
|
63
72
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diff-lcs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -50,7 +50,7 @@ cert_chain:
|
|
50
50
|
-----END CERTIFICATE-----
|
51
51
|
|
52
52
|
'
|
53
|
-
date: 2013-
|
53
|
+
date: 2013-04-12 00:00:00.000000000 Z
|
54
54
|
dependencies:
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rubyforge
|
@@ -236,11 +236,24 @@ description: ! 'Diff::LCS computes the difference between two Enumerable sequenc
|
|
236
236
|
to create a simple HTML diff output format and a standard diff-like tool.
|
237
237
|
|
238
238
|
|
239
|
-
This is release 1.2.
|
239
|
+
This is release 1.2.3, fixing a bug in value comparison where the left side of
|
240
240
|
|
241
|
-
|
241
|
+
the comparison was the empty set, preventing the detection of encoding. Thanks
|
242
242
|
|
243
|
-
|
243
|
+
to Jon Rowe for fixing this issue. This is a strongly recommended release.
|
244
|
+
|
245
|
+
|
246
|
+
*Note*: There is a known issue with Rubinius in 1.9 mode reported in
|
247
|
+
|
248
|
+
{rubinius/rubinius#2268}[https://github.com/rubinius/rubinius/issues/2268] and
|
249
|
+
|
250
|
+
demonstrated in the Travis CI builds. For all other tested platforms, diff-lcs
|
251
|
+
|
252
|
+
is considered stable. As soon as a suitably small test-case can be created for
|
253
|
+
|
254
|
+
the Rubinius team to examine, this will be added to the Rubinius issue around
|
255
|
+
|
256
|
+
this.'
|
244
257
|
email:
|
245
258
|
- austin@rubyforge.org
|
246
259
|
executables:
|
metadata.gz.sig
CHANGED
Binary file
|