diff-lcs 1.2.5 → 1.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.
- checksums.yaml +6 -14
- data/.rspec +0 -1
- data/Code-of-Conduct.md +74 -0
- data/Contributing.md +83 -0
- data/History.md +220 -0
- data/{License.rdoc → License.md} +0 -0
- data/Manifest.txt +7 -8
- data/README.rdoc +15 -16
- data/Rakefile +36 -20
- data/lib/diff/lcs.rb +5 -85
- data/lib/diff/lcs/change.rb +7 -3
- data/lib/diff/lcs/htmldiff.rb +2 -2
- data/lib/diff/lcs/internals.rb +14 -8
- data/lib/diff/lcs/ldiff.rb +13 -41
- data/spec/diff_spec.rb +14 -14
- data/spec/fixtures/ds1.csv +50 -0
- data/spec/fixtures/ds2.csv +51 -0
- data/spec/hunk_spec.rb +17 -17
- data/spec/issues_spec.rb +40 -15
- data/spec/lcs_spec.rb +23 -21
- data/spec/ldiff_spec.rb +47 -0
- data/spec/patch_spec.rb +145 -137
- data/spec/sdiff_spec.rb +4 -4
- data/spec/spec_helper.rb +33 -2
- data/spec/traverse_balanced_spec.rb +8 -8
- data/spec/traverse_sequences_spec.rb +56 -56
- metadata +80 -137
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -3
- 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 -20
- data/History.rdoc +0 -152
- metadata.gz.sig +0 -2
data/spec/sdiff_spec.rb
CHANGED
@@ -6,12 +6,12 @@ describe "Diff::LCS.sdiff" do
|
|
6
6
|
include Diff::LCS::SpecHelper::Matchers
|
7
7
|
|
8
8
|
shared_examples "compare sequences correctly" do
|
9
|
-
it "
|
10
|
-
Diff::LCS.sdiff(s1, s2).
|
9
|
+
it "compares s1 -> s2 correctly" do
|
10
|
+
expect(Diff::LCS.sdiff(s1, s2)).to eq(context_diff(result))
|
11
11
|
end
|
12
12
|
|
13
|
-
it "
|
14
|
-
Diff::LCS.sdiff(s2, s1).
|
13
|
+
it "compares s2 -> s1 correctly" do
|
14
|
+
expect(Diff::LCS.sdiff(s2, s1)).to eq(context_diff(reverse_sdiff(result)))
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
data/spec/spec_helper.rb
CHANGED
@@ -2,6 +2,37 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'pathname'
|
5
|
+
require 'psych'
|
6
|
+
|
7
|
+
if ENV['COVERALLS']
|
8
|
+
require 'coveralls'
|
9
|
+
Coveralls.wear!
|
10
|
+
elsif ENV['COVERAGE']
|
11
|
+
require 'simplecov'
|
12
|
+
|
13
|
+
def require_do(resource, &block)
|
14
|
+
require resource
|
15
|
+
block.call
|
16
|
+
rescue LoadError
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
|
20
|
+
formatters = [ SimpleCov::Formatter::HTMLFormatter ]
|
21
|
+
|
22
|
+
require_do('simplecov-rcov') {
|
23
|
+
formatters << SimpleCov::Formatter::RcovFormatter
|
24
|
+
}
|
25
|
+
require_do('simplecov-vim/formatter') {
|
26
|
+
formatters << SimpleCov::Formatter::VimFormatter
|
27
|
+
}
|
28
|
+
require_do('simplecov-sublime-ruby-coverage') {
|
29
|
+
formatters << SimpleCov::Formatter::SublimeRubyCoverageFormatter
|
30
|
+
}
|
31
|
+
|
32
|
+
SimpleCov.start do
|
33
|
+
formatter SimpleCov::Formatter::MultiFormatter[*formatters]
|
34
|
+
end
|
35
|
+
end
|
5
36
|
|
6
37
|
file = Pathname.new(__FILE__).expand_path
|
7
38
|
path = file.parent
|
@@ -265,14 +296,14 @@ module Diff::LCS::SpecHelper
|
|
265
296
|
|
266
297
|
matcher :be_nil_or_match_values do |ii, s1, s2|
|
267
298
|
match do |ee|
|
268
|
-
ee.
|
299
|
+
expect(ee).to(satisfy { |vee| vee.nil? || s1[ii] == s2[ee] })
|
269
300
|
end
|
270
301
|
end
|
271
302
|
|
272
303
|
matcher :correctly_map_sequence do |s1|
|
273
304
|
match do |actual|
|
274
305
|
actual.each_with_index { |ee, ii|
|
275
|
-
ee.
|
306
|
+
expect(ee).to be_nil_or_match_values(ii, s1, @s2)
|
276
307
|
}
|
277
308
|
end
|
278
309
|
|
@@ -6,26 +6,26 @@ describe "Diff::LCS.traverse_balanced" do
|
|
6
6
|
include Diff::LCS::SpecHelper::Matchers
|
7
7
|
|
8
8
|
shared_examples "with a #change callback" do |s1, s2, result|
|
9
|
-
it "
|
9
|
+
it "traverses s1 -> s2 correctly" do
|
10
10
|
traversal = balanced_traversal(s1, s2, :balanced_callback)
|
11
|
-
traversal.result.
|
11
|
+
expect(traversal.result).to eq(result)
|
12
12
|
end
|
13
13
|
|
14
|
-
it "
|
14
|
+
it "traverses s2 -> s1 correctly" do
|
15
15
|
traversal = balanced_traversal(s2, s1, :balanced_callback)
|
16
|
-
traversal.result.
|
16
|
+
expect(traversal.result).to eq(balanced_reverse(result))
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
shared_examples "without a #change callback" do |s1, s2, result|
|
21
|
-
it "
|
21
|
+
it "traverses s1 -> s2 correctly" do
|
22
22
|
traversal = balanced_traversal(s1, s2, :balanced_callback_no_change)
|
23
|
-
traversal.result.
|
23
|
+
expect(traversal.result).to eq(map_to_no_change(result))
|
24
24
|
end
|
25
25
|
|
26
|
-
it "
|
26
|
+
it "traverses s2 -> s1 correctly" do
|
27
27
|
traversal = balanced_traversal(s2, s1, :balanced_callback_no_change)
|
28
|
-
traversal.result.
|
28
|
+
expect(traversal.result).to eq(map_to_no_change(balanced_reverse(result)))
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
@@ -13,31 +13,31 @@ describe "Diff::LCS.traverse_sequences" do
|
|
13
13
|
Diff::LCS.traverse_sequences(seq2, seq1, @callback_s2_s1)
|
14
14
|
end
|
15
15
|
|
16
|
-
it "
|
17
|
-
@callback_s1_s2.matched_a.
|
18
|
-
@callback_s2_s1.matched_a.
|
16
|
+
it "has the correct LCS result on left-matches" do
|
17
|
+
expect(@callback_s1_s2.matched_a).to eq(correct_lcs)
|
18
|
+
expect(@callback_s2_s1.matched_a).to eq(correct_lcs)
|
19
19
|
end
|
20
20
|
|
21
|
-
it "
|
22
|
-
@callback_s1_s2.matched_b.
|
23
|
-
@callback_s2_s1.matched_b.
|
21
|
+
it "has the correct LCS result on right-matches" do
|
22
|
+
expect(@callback_s1_s2.matched_b).to eq(correct_lcs)
|
23
|
+
expect(@callback_s2_s1.matched_b).to eq(correct_lcs)
|
24
24
|
end
|
25
25
|
|
26
|
-
it "
|
27
|
-
@callback_s1_s2.discards_a.
|
28
|
-
@callback_s2_s1.discards_a.
|
26
|
+
it "has the correct skipped sequences with the left sequence" do
|
27
|
+
expect(@callback_s1_s2.discards_a).to eq(skipped_seq1)
|
28
|
+
expect(@callback_s2_s1.discards_a).to eq(skipped_seq2)
|
29
29
|
end
|
30
30
|
|
31
|
-
it "
|
32
|
-
@callback_s1_s2.discards_b.
|
33
|
-
@callback_s2_s1.discards_b.
|
31
|
+
it "has the correct skipped sequences with the right sequence" do
|
32
|
+
expect(@callback_s1_s2.discards_b).to eq(skipped_seq2)
|
33
|
+
expect(@callback_s2_s1.discards_b).to eq(skipped_seq1)
|
34
34
|
end
|
35
35
|
|
36
|
-
it "
|
37
|
-
@callback_s1_s2.done_a.
|
38
|
-
@callback_s1_s2.done_b.
|
39
|
-
@callback_s2_s1.done_a.
|
40
|
-
@callback_s2_s1.done_b.
|
36
|
+
it "does not have anything done markers from the left or right sequences" do
|
37
|
+
expect(@callback_s1_s2.done_a).to be_empty
|
38
|
+
expect(@callback_s1_s2.done_b).to be_empty
|
39
|
+
expect(@callback_s2_s1.done_a).to be_empty
|
40
|
+
expect(@callback_s2_s1.done_b).to be_empty
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
@@ -47,25 +47,25 @@ describe "Diff::LCS.traverse_sequences" do
|
|
47
47
|
Diff::LCS.traverse_sequences(hello, hello, @callback)
|
48
48
|
end
|
49
49
|
|
50
|
-
it "
|
51
|
-
@callback.matched_a.
|
50
|
+
it "has the correct LCS result on left-matches" do
|
51
|
+
expect(@callback.matched_a).to eq(hello.split(//))
|
52
52
|
end
|
53
53
|
|
54
|
-
it "
|
55
|
-
@callback.matched_b.
|
54
|
+
it "has the correct LCS result on right-matches" do
|
55
|
+
expect(@callback.matched_b).to eq(hello.split(//))
|
56
56
|
end
|
57
57
|
|
58
|
-
it "
|
59
|
-
@callback.discards_a.
|
58
|
+
it "has the correct skipped sequences with the left sequence", :only => true do
|
59
|
+
expect(@callback.discards_a).to be_empty
|
60
60
|
end
|
61
61
|
|
62
|
-
it "
|
63
|
-
@callback.discards_b.
|
62
|
+
it "has the correct skipped sequences with the right sequence" do
|
63
|
+
expect(@callback.discards_b).to be_empty
|
64
64
|
end
|
65
65
|
|
66
|
-
it "
|
67
|
-
@callback.done_a.
|
68
|
-
@callback.done_b.
|
66
|
+
it "does not have anything done markers from the left or right sequences" do
|
67
|
+
expect(@callback.done_a).to be_empty
|
68
|
+
expect(@callback.done_b).to be_empty
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
@@ -75,25 +75,25 @@ describe "Diff::LCS.traverse_sequences" do
|
|
75
75
|
Diff::LCS.traverse_sequences(hello_ary, hello_ary, @callback)
|
76
76
|
end
|
77
77
|
|
78
|
-
it "
|
79
|
-
@callback.matched_a.
|
78
|
+
it "has the correct LCS result on left-matches" do
|
79
|
+
expect(@callback.matched_a).to eq(hello_ary)
|
80
80
|
end
|
81
81
|
|
82
|
-
it "
|
83
|
-
@callback.matched_b.
|
82
|
+
it "has the correct LCS result on right-matches" do
|
83
|
+
expect(@callback.matched_b).to eq(hello_ary)
|
84
84
|
end
|
85
85
|
|
86
|
-
it "
|
87
|
-
@callback.discards_a.
|
86
|
+
it "has the correct skipped sequences with the left sequence" do
|
87
|
+
expect(@callback.discards_a).to be_empty
|
88
88
|
end
|
89
89
|
|
90
|
-
it "
|
91
|
-
@callback.discards_b.
|
90
|
+
it "has the correct skipped sequences with the right sequence" do
|
91
|
+
expect(@callback.discards_b).to be_empty
|
92
92
|
end
|
93
93
|
|
94
|
-
it "
|
95
|
-
@callback.done_a.
|
96
|
-
@callback.done_b.
|
94
|
+
it "does not have anything done markers from the left or right sequences" do
|
95
|
+
expect(@callback.done_a).to be_empty
|
96
|
+
expect(@callback.done_b).to be_empty
|
97
97
|
end
|
98
98
|
end
|
99
99
|
end
|
@@ -106,34 +106,34 @@ describe "Diff::LCS.traverse_sequences" do
|
|
106
106
|
Diff::LCS.traverse_sequences(seq2, seq1, @callback_s2_s1)
|
107
107
|
end
|
108
108
|
|
109
|
-
it "
|
110
|
-
@callback_s1_s2.matched_a.
|
111
|
-
@callback_s2_s1.matched_a.
|
109
|
+
it "has the correct LCS result on left-matches" do
|
110
|
+
expect(@callback_s1_s2.matched_a).to eq(correct_lcs)
|
111
|
+
expect(@callback_s2_s1.matched_a).to eq(correct_lcs)
|
112
112
|
end
|
113
113
|
|
114
|
-
it "
|
115
|
-
@callback_s1_s2.matched_b.
|
116
|
-
@callback_s2_s1.matched_b.
|
114
|
+
it "has the correct LCS result on right-matches" do
|
115
|
+
expect(@callback_s1_s2.matched_b).to eq(correct_lcs)
|
116
|
+
expect(@callback_s2_s1.matched_b).to eq(correct_lcs)
|
117
117
|
end
|
118
118
|
|
119
|
-
it "
|
120
|
-
@callback_s1_s2.discards_a.
|
121
|
-
@callback_s2_s1.discards_a.
|
119
|
+
it "has the correct skipped sequences for the left sequence" do
|
120
|
+
expect(@callback_s1_s2.discards_a).to eq(skipped_seq1)
|
121
|
+
expect(@callback_s2_s1.discards_a).to eq(skipped_seq2)
|
122
122
|
end
|
123
123
|
|
124
|
-
it "
|
125
|
-
@callback_s1_s2.discards_b.
|
126
|
-
@callback_s2_s1.discards_b.
|
124
|
+
it "has the correct skipped sequences for the right sequence" do
|
125
|
+
expect(@callback_s1_s2.discards_b).to eq(skipped_seq2)
|
126
|
+
expect(@callback_s2_s1.discards_b).to eq(skipped_seq1)
|
127
127
|
end
|
128
128
|
|
129
|
-
it "
|
130
|
-
@callback_s1_s2.done_a.
|
131
|
-
@callback_s1_s2.done_b.
|
129
|
+
it "has done markers differently-sized sequences" do
|
130
|
+
expect(@callback_s1_s2.done_a).to eq([[ "p", 9, "s", 10 ]])
|
131
|
+
expect(@callback_s1_s2.done_b).to be_empty
|
132
132
|
|
133
133
|
# 20110731 I don't yet understand why this particular behaviour
|
134
134
|
# isn't transitive.
|
135
|
-
@callback_s2_s1.done_a.
|
136
|
-
@callback_s2_s1.done_b.
|
135
|
+
expect(@callback_s2_s1.done_a).to be_empty
|
136
|
+
expect(@callback_s2_s1.done_b).to be_empty
|
137
137
|
end
|
138
138
|
end
|
139
139
|
end
|
metadata
CHANGED
@@ -1,243 +1,183 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diff-lcs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: '1.3'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Austin Ziegler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUROakNDQWg2Z0F3SUJB
|
13
|
-
Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREJCTVE4d0RRWURWUVFEREFaaGRY
|
14
|
-
TjAKYVc0eEdUQVhCZ29Ka2lhSmsvSXNaQUVaRmdseWRXSjVabTl5WjJVeEV6
|
15
|
-
QVJCZ29Ka2lhSmsvSXNaQUVaRmdOdgpjbWN3SGhjTk1UTXdNakEwTURNek16
|
16
|
-
STNXaGNOTVRRd01qQTBNRE16TXpJM1dqQkJNUTh3RFFZRFZRUUREQVpoCmRY
|
17
|
-
TjBhVzR4R1RBWEJnb0praWFKay9Jc1pBRVpGZ2x5ZFdKNVptOXlaMlV4RXpB
|
18
|
-
UkJnb0praWFKay9Jc1pBRVoKRmdOdmNtY3dnZ0VpTUEwR0NTcUdTSWIzRFFF
|
19
|
-
QkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDMm1QTmY0TDM3R2hLSQpTUENZc3ZZ
|
20
|
-
V1hBMi9SOXU1K3B5VW5iSjJSMW8yQ2lScTJaQS9BSXpZNk4zaEduc2dvV25o
|
21
|
-
NVJ6dmdUTjFMdDA4CkROSXJzSUcyVkRZay9KVnQ2ZjlKNnpaOEVRSGJ6bldh
|
22
|
-
M2NXWW9DRmFhSUNkazdqVjFuLzQyaGc3MGpFRFlYbDkKZ0RPbDBrNkpteUYv
|
23
|
-
cnRmRnUvT0lrRkdXZUZZSXVGSHZSdUx5VWJ3NjYrUURUT3pLYjN0OG81NUlo
|
24
|
-
Z3kxR1Z3VAppNnBrRHM4TGhaV1hkT0QrOTIxbDJaMU5aR1phOUtOYkpJZzZ2
|
25
|
-
dGdZS1U5OGpRNXFyOWlZM2lrQkFzcEhyRmFzCks2VVN2R2dBZzhmQ0Q1WWlv
|
26
|
-
dEJFdkNCTVl0ZnFtZnJocGRVMnArZ3ZUZ2VMVzFLYWV2d3FkN25nUW1GVXJG
|
27
|
-
RzEKZVVKU1VSdjVBZ01CQUFHak9UQTNNQWtHQTFVZEV3UUNNQUF3SFFZRFZS
|
28
|
-
ME9CQllFRkF0SktNcDZZWU5xbGdSMwo5VGlaTFdxdkxhZ1NNQXNHQTFVZER3
|
29
|
-
UUVBd0lFc0RBTkJna3Foa2lHOXcwQkFRVUZBQU9DQVFFQXBUUGt2RG04Cjdn
|
30
|
-
SmxVVDRGZnVtWFB2dHVxUDY3THhVdEdFOHN5dlIwQTRBcyswUC93eWxMSkZV
|
31
|
-
T3NHVFRkWll0VGhoeENTSkcKKzdLRzJGZkljSDRaejJkOTdhclpHQXpCb2k4
|
32
|
-
aVBodDIvVXRTbDFmQ2NVSTV2bUphMU1pWFpUMm9xZFc3V3lkcQpyQVpjQlBs
|
33
|
-
cllZdWl3dEdJMHlxSU9nQmZYU1pDV1dzSnN1eVRLRUxlcDZtQ0xnejBZWlVm
|
34
|
-
bXZLcjhXL0FiM2F4CkR1THpIOTJMU1JqWkp5anlBVXB3L1ZjMnJNNGdpaVA1
|
35
|
-
anRCeXJiMVkxZEduUWhIVE1IZjFHZnVjV203TncvVjkKdHdFUFZ3OCswZjg4
|
36
|
-
SlF1Y3hPVG1URjFOYkxGcGlSd1FVWjF6b1piTmcyZTdtU2hjL2VleG5WTFdL
|
37
|
-
Rkt4Um9QNgpLUGozV29EK3NwQjhmQT09Ci0tLS0tRU5EIENFUlRJRklDQVRF
|
38
|
-
LS0tLS0K
|
39
|
-
date: 2013-11-08 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-01-18 00:00:00.000000000 Z
|
40
12
|
dependencies:
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rubyforge
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ! '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 2.0.4
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ! '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 2.0.4
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rdoc
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '4.0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ~>
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '4.0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: hoe-bundler
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ~>
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '1.2'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ~>
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '1.2'
|
83
13
|
- !ruby/object:Gem::Dependency
|
84
14
|
name: hoe-doofus
|
85
15
|
requirement: !ruby/object:Gem::Requirement
|
86
16
|
requirements:
|
87
|
-
- - ~>
|
17
|
+
- - "~>"
|
88
18
|
- !ruby/object:Gem::Version
|
89
19
|
version: '1.0'
|
90
20
|
type: :development
|
91
21
|
prerelease: false
|
92
22
|
version_requirements: !ruby/object:Gem::Requirement
|
93
23
|
requirements:
|
94
|
-
- - ~>
|
24
|
+
- - "~>"
|
95
25
|
- !ruby/object:Gem::Version
|
96
26
|
version: '1.0'
|
97
27
|
- !ruby/object:Gem::Dependency
|
98
28
|
name: hoe-gemspec2
|
99
29
|
requirement: !ruby/object:Gem::Requirement
|
100
30
|
requirements:
|
101
|
-
- - ~>
|
31
|
+
- - "~>"
|
102
32
|
- !ruby/object:Gem::Version
|
103
33
|
version: '1.1'
|
104
34
|
type: :development
|
105
35
|
prerelease: false
|
106
36
|
version_requirements: !ruby/object:Gem::Requirement
|
107
37
|
requirements:
|
108
|
-
- - ~>
|
38
|
+
- - "~>"
|
109
39
|
- !ruby/object:Gem::Version
|
110
40
|
version: '1.1'
|
111
41
|
- !ruby/object:Gem::Dependency
|
112
42
|
name: hoe-git
|
113
43
|
requirement: !ruby/object:Gem::Requirement
|
114
44
|
requirements:
|
115
|
-
- - ~>
|
45
|
+
- - "~>"
|
116
46
|
- !ruby/object:Gem::Version
|
117
|
-
version: '1.
|
47
|
+
version: '1.6'
|
118
48
|
type: :development
|
119
49
|
prerelease: false
|
120
50
|
version_requirements: !ruby/object:Gem::Requirement
|
121
51
|
requirements:
|
122
|
-
- - ~>
|
52
|
+
- - "~>"
|
123
53
|
- !ruby/object:Gem::Version
|
124
|
-
version: '1.
|
54
|
+
version: '1.6'
|
125
55
|
- !ruby/object:Gem::Dependency
|
126
56
|
name: hoe-rubygems
|
127
57
|
requirement: !ruby/object:Gem::Requirement
|
128
58
|
requirements:
|
129
|
-
- - ~>
|
59
|
+
- - "~>"
|
130
60
|
- !ruby/object:Gem::Version
|
131
61
|
version: '1.0'
|
132
62
|
type: :development
|
133
63
|
prerelease: false
|
134
64
|
version_requirements: !ruby/object:Gem::Requirement
|
135
65
|
requirements:
|
136
|
-
- - ~>
|
66
|
+
- - "~>"
|
137
67
|
- !ruby/object:Gem::Version
|
138
68
|
version: '1.0'
|
139
69
|
- !ruby/object:Gem::Dependency
|
140
70
|
name: hoe-travis
|
141
71
|
requirement: !ruby/object:Gem::Requirement
|
142
72
|
requirements:
|
143
|
-
- - ~>
|
73
|
+
- - "~>"
|
144
74
|
- !ruby/object:Gem::Version
|
145
75
|
version: '1.2'
|
146
76
|
type: :development
|
147
77
|
prerelease: false
|
148
78
|
version_requirements: !ruby/object:Gem::Requirement
|
149
79
|
requirements:
|
150
|
-
- - ~>
|
80
|
+
- - "~>"
|
151
81
|
- !ruby/object:Gem::Version
|
152
82
|
version: '1.2'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.0'
|
90
|
+
- - "<"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '4'
|
93
|
+
type: :development
|
94
|
+
prerelease: false
|
95
|
+
version_requirements: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '2.0'
|
100
|
+
- - "<"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '4'
|
153
103
|
- !ruby/object:Gem::Dependency
|
154
104
|
name: rake
|
155
105
|
requirement: !ruby/object:Gem::Requirement
|
156
106
|
requirements:
|
157
|
-
- -
|
107
|
+
- - ">="
|
158
108
|
- !ruby/object:Gem::Version
|
159
109
|
version: '10.0'
|
110
|
+
- - "<"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '12'
|
160
113
|
type: :development
|
161
114
|
prerelease: false
|
162
115
|
version_requirements: !ruby/object:Gem::Requirement
|
163
116
|
requirements:
|
164
|
-
- -
|
117
|
+
- - ">="
|
165
118
|
- !ruby/object:Gem::Version
|
166
119
|
version: '10.0'
|
120
|
+
- - "<"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '12'
|
167
123
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
124
|
+
name: rdoc
|
169
125
|
requirement: !ruby/object:Gem::Requirement
|
170
126
|
requirements:
|
171
|
-
- -
|
127
|
+
- - ">="
|
172
128
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
129
|
+
version: '0'
|
174
130
|
type: :development
|
175
131
|
prerelease: false
|
176
132
|
version_requirements: !ruby/object:Gem::Requirement
|
177
133
|
requirements:
|
178
|
-
- -
|
134
|
+
- - ">="
|
179
135
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
136
|
+
version: '0'
|
181
137
|
- !ruby/object:Gem::Dependency
|
182
138
|
name: hoe
|
183
139
|
requirement: !ruby/object:Gem::Requirement
|
184
140
|
requirements:
|
185
|
-
- - ~>
|
141
|
+
- - "~>"
|
186
142
|
- !ruby/object:Gem::Version
|
187
|
-
version: '3.
|
143
|
+
version: '3.16'
|
188
144
|
type: :development
|
189
145
|
prerelease: false
|
190
146
|
version_requirements: !ruby/object:Gem::Requirement
|
191
147
|
requirements:
|
192
|
-
- - ~>
|
148
|
+
- - "~>"
|
193
149
|
- !ruby/object:Gem::Version
|
194
|
-
version: '3.
|
195
|
-
description:
|
196
|
-
using the
|
197
|
-
|
150
|
+
version: '3.16'
|
151
|
+
description: |-
|
152
|
+
Diff::LCS computes the difference between two Enumerable sequences using the
|
198
153
|
McIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities
|
199
|
-
|
200
154
|
to create a simple HTML diff output format and a standard diff-like tool.
|
201
155
|
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
Thanks to Paul Kunysch for fixing this issue.
|
208
|
-
|
209
|
-
|
210
|
-
Coincident with the release of diff-lcs 1.2.3, we reported an issue with
|
211
|
-
|
212
|
-
Rubinius in 1.9 mode
|
213
|
-
|
214
|
-
({rubinius/rubinius#2268}[https://github.com/rubinius/rubinius/issues/2268]).
|
215
|
-
|
216
|
-
We are happy to report that this issue has been resolved.'
|
156
|
+
This is release 1.3, providing a tentative fix to a long-standing issue related
|
157
|
+
to incorrect detection of a patch direction. Also modernizes the gem
|
158
|
+
infrastructure, testing infrastructure, and provides a warning-free experience
|
159
|
+
to Ruby 2.4 users.
|
217
160
|
email:
|
218
|
-
-
|
161
|
+
- halostatue@gmail.com
|
219
162
|
executables:
|
220
163
|
- htmldiff
|
221
164
|
- ldiff
|
222
165
|
extensions: []
|
223
166
|
extra_rdoc_files:
|
224
|
-
-
|
225
|
-
-
|
226
|
-
-
|
167
|
+
- Code-of-Conduct.md
|
168
|
+
- Contributing.md
|
169
|
+
- History.md
|
170
|
+
- License.md
|
227
171
|
- Manifest.txt
|
228
172
|
- README.rdoc
|
229
173
|
- docs/COPYING.txt
|
230
174
|
- docs/artistic.txt
|
231
175
|
files:
|
232
|
-
- .
|
233
|
-
- .
|
234
|
-
- .
|
235
|
-
- .
|
236
|
-
- .
|
237
|
-
- Contributing.rdoc
|
238
|
-
- Gemfile
|
239
|
-
- History.rdoc
|
240
|
-
- License.rdoc
|
176
|
+
- ".rspec"
|
177
|
+
- Code-of-Conduct.md
|
178
|
+
- Contributing.md
|
179
|
+
- History.md
|
180
|
+
- License.md
|
241
181
|
- Manifest.txt
|
242
182
|
- README.rdoc
|
243
183
|
- Rakefile
|
@@ -259,39 +199,42 @@ files:
|
|
259
199
|
- lib/diff/lcs/string.rb
|
260
200
|
- spec/change_spec.rb
|
261
201
|
- spec/diff_spec.rb
|
202
|
+
- spec/fixtures/ds1.csv
|
203
|
+
- spec/fixtures/ds2.csv
|
262
204
|
- spec/hunk_spec.rb
|
263
205
|
- spec/issues_spec.rb
|
264
206
|
- spec/lcs_spec.rb
|
207
|
+
- spec/ldiff_spec.rb
|
265
208
|
- spec/patch_spec.rb
|
266
209
|
- spec/sdiff_spec.rb
|
267
210
|
- spec/spec_helper.rb
|
268
211
|
- spec/traverse_balanced_spec.rb
|
269
212
|
- spec/traverse_sequences_spec.rb
|
270
|
-
homepage:
|
213
|
+
homepage: https://github.com/halostatue/diff-lcs
|
271
214
|
licenses:
|
272
215
|
- MIT
|
273
|
-
-
|
274
|
-
-
|
216
|
+
- Artistic-2.0
|
217
|
+
- GPL-2.0+
|
275
218
|
metadata: {}
|
276
219
|
post_install_message:
|
277
220
|
rdoc_options:
|
278
|
-
- --main
|
221
|
+
- "--main"
|
279
222
|
- README.rdoc
|
280
223
|
require_paths:
|
281
224
|
- lib
|
282
225
|
required_ruby_version: !ruby/object:Gem::Requirement
|
283
226
|
requirements:
|
284
|
-
- -
|
227
|
+
- - ">="
|
285
228
|
- !ruby/object:Gem::Version
|
286
|
-
version: '
|
229
|
+
version: '1.8'
|
287
230
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
288
231
|
requirements:
|
289
|
-
- -
|
232
|
+
- - ">="
|
290
233
|
- !ruby/object:Gem::Version
|
291
234
|
version: '0'
|
292
235
|
requirements: []
|
293
|
-
rubyforge_project:
|
294
|
-
rubygems_version: 2.
|
236
|
+
rubyforge_project:
|
237
|
+
rubygems_version: 2.5.1
|
295
238
|
signing_key:
|
296
239
|
specification_version: 4
|
297
240
|
summary: Diff::LCS computes the difference between two Enumerable sequences using
|