diff-lcs 1.2.3 → 1.4.1
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 +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
@@ -1,10 +1,10 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
describe
|
6
|
-
describe
|
7
|
-
describe
|
5
|
+
describe 'Diff::LCS.traverse_sequences' do
|
6
|
+
describe 'callback with no finishers' do
|
7
|
+
describe 'over (seq1, seq2)' do
|
8
8
|
before(:each) do
|
9
9
|
@callback_s1_s2 = simple_callback_no_finishers
|
10
10
|
Diff::LCS.traverse_sequences(seq1, seq2, @callback_s1_s2)
|
@@ -13,92 +13,92 @@ 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
|
|
44
|
-
describe
|
44
|
+
describe 'over (hello, hello)' do
|
45
45
|
before(:each) do
|
46
46
|
@callback = simple_callback_no_finishers
|
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
|
|
72
|
-
describe
|
72
|
+
describe 'over (hello_ary, hello_ary)' do
|
73
73
|
before(:each) do
|
74
74
|
@callback = simple_callback_no_finishers
|
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
|
100
100
|
|
101
|
-
describe
|
101
|
+
describe 'callback with finisher' do
|
102
102
|
before(:each) do
|
103
103
|
@callback_s1_s2 = simple_callback
|
104
104
|
Diff::LCS.traverse_sequences(seq1, seq2, @callback_s1_s2)
|
@@ -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,295 +1,185 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diff-lcs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.4.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Austin Ziegler
|
9
|
-
autorequire:
|
8
|
+
autorequire:
|
10
9
|
bindir: bin
|
11
|
-
cert_chain:
|
12
|
-
-
|
13
|
-
|
14
|
-
MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZhdXN0
|
15
|
-
|
16
|
-
aW4xGTAXBgoJkiaJk/IsZAEZFglydWJ5Zm9yZ2UxEzARBgoJkiaJk/IsZAEZFgNv
|
17
|
-
|
18
|
-
cmcwHhcNMTMwMjA0MDMzMzI3WhcNMTQwMjA0MDMzMzI3WjBBMQ8wDQYDVQQDDAZh
|
19
|
-
|
20
|
-
dXN0aW4xGTAXBgoJkiaJk/IsZAEZFglydWJ5Zm9yZ2UxEzARBgoJkiaJk/IsZAEZ
|
21
|
-
|
22
|
-
FgNvcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2mPNf4L37GhKI
|
23
|
-
|
24
|
-
SPCYsvYWXA2/R9u5+pyUnbJ2R1o2CiRq2ZA/AIzY6N3hGnsgoWnh5RzvgTN1Lt08
|
25
|
-
|
26
|
-
DNIrsIG2VDYk/JVt6f9J6zZ8EQHbznWa3cWYoCFaaICdk7jV1n/42hg70jEDYXl9
|
27
|
-
|
28
|
-
gDOl0k6JmyF/rtfFu/OIkFGWeFYIuFHvRuLyUbw66+QDTOzKb3t8o55Ihgy1GVwT
|
29
|
-
|
30
|
-
i6pkDs8LhZWXdOD+921l2Z1NZGZa9KNbJIg6vtgYKU98jQ5qr9iY3ikBAspHrFas
|
31
|
-
|
32
|
-
K6USvGgAg8fCD5YiotBEvCBMYtfqmfrhpdU2p+gvTgeLW1Kaevwqd7ngQmFUrFG1
|
33
|
-
|
34
|
-
eUJSURv5AgMBAAGjOTA3MAkGA1UdEwQCMAAwHQYDVR0OBBYEFAtJKMp6YYNqlgR3
|
35
|
-
|
36
|
-
9TiZLWqvLagSMAsGA1UdDwQEAwIEsDANBgkqhkiG9w0BAQUFAAOCAQEApTPkvDm8
|
37
|
-
|
38
|
-
7gJlUT4FfumXPvtuqP67LxUtGE8syvR0A4As+0P/wylLJFUOsGTTdZYtThhxCSJG
|
39
|
-
|
40
|
-
+7KG2FfIcH4Zz2d97arZGAzBoi8iPht2/UtSl1fCcUI5vmJa1MiXZT2oqdW7Wydq
|
41
|
-
|
42
|
-
rAZcBPlrYYuiwtGI0yqIOgBfXSZCWWsJsuyTKELep6mCLgz0YZUfmvKr8W/Ab3ax
|
43
|
-
|
44
|
-
DuLzH92LSRjZJyjyAUpw/Vc2rM4giiP5jtByrb1Y1dGnQhHTMHf1GfucWm7Nw/V9
|
45
|
-
|
46
|
-
twEPVw8+0f88JQucxOTmTF1NbLFpiRwQUZ1zoZbNg2e7mShc/eexnVLWKFKxRoP6
|
47
|
-
|
48
|
-
KPj3WoD+spB8fA==
|
49
|
-
|
50
|
-
-----END CERTIFICATE-----
|
51
|
-
|
52
|
-
'
|
53
|
-
date: 2013-04-12 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-06-23 00:00:00.000000000 Z
|
54
12
|
dependencies:
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rubyforge
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
|
-
requirements:
|
60
|
-
- - ! '>='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 2.0.4
|
63
|
-
type: :development
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
|
-
requirements:
|
68
|
-
- - ! '>='
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: 2.0.4
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: rdoc
|
73
|
-
requirement: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
|
-
requirements:
|
76
|
-
- - ~>
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: '3.10'
|
79
|
-
type: :development
|
80
|
-
prerelease: false
|
81
|
-
version_requirements: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
|
-
requirements:
|
84
|
-
- - ~>
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: '3.10'
|
87
|
-
- !ruby/object:Gem::Dependency
|
88
|
-
name: hoe-bundler
|
89
|
-
requirement: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
|
-
requirements:
|
92
|
-
- - ~>
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: '1.2'
|
95
|
-
type: :development
|
96
|
-
prerelease: false
|
97
|
-
version_requirements: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
|
-
requirements:
|
100
|
-
- - ~>
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '1.2'
|
103
13
|
- !ruby/object:Gem::Dependency
|
104
14
|
name: hoe-doofus
|
105
15
|
requirement: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
16
|
requirements:
|
108
|
-
- - ~>
|
17
|
+
- - "~>"
|
109
18
|
- !ruby/object:Gem::Version
|
110
19
|
version: '1.0'
|
111
20
|
type: :development
|
112
21
|
prerelease: false
|
113
22
|
version_requirements: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
23
|
requirements:
|
116
|
-
- - ~>
|
24
|
+
- - "~>"
|
117
25
|
- !ruby/object:Gem::Version
|
118
26
|
version: '1.0'
|
119
27
|
- !ruby/object:Gem::Dependency
|
120
|
-
name: hoe-
|
28
|
+
name: hoe-gemspec2
|
121
29
|
requirement: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
30
|
requirements:
|
124
|
-
- - ~>
|
31
|
+
- - "~>"
|
125
32
|
- !ruby/object:Gem::Version
|
126
|
-
version: '1.
|
33
|
+
version: '1.1'
|
127
34
|
type: :development
|
128
35
|
prerelease: false
|
129
36
|
version_requirements: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
37
|
requirements:
|
132
|
-
- - ~>
|
38
|
+
- - "~>"
|
133
39
|
- !ruby/object:Gem::Version
|
134
|
-
version: '1.
|
40
|
+
version: '1.1'
|
135
41
|
- !ruby/object:Gem::Dependency
|
136
42
|
name: hoe-git
|
137
43
|
requirement: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
44
|
requirements:
|
140
|
-
- - ~>
|
45
|
+
- - "~>"
|
141
46
|
- !ruby/object:Gem::Version
|
142
|
-
version: '1.
|
47
|
+
version: '1.6'
|
143
48
|
type: :development
|
144
49
|
prerelease: false
|
145
50
|
version_requirements: !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
51
|
requirements:
|
148
|
-
- - ~>
|
52
|
+
- - "~>"
|
149
53
|
- !ruby/object:Gem::Version
|
150
|
-
version: '1.
|
54
|
+
version: '1.6'
|
151
55
|
- !ruby/object:Gem::Dependency
|
152
56
|
name: hoe-rubygems
|
153
57
|
requirement: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
58
|
requirements:
|
156
|
-
- - ~>
|
59
|
+
- - "~>"
|
157
60
|
- !ruby/object:Gem::Version
|
158
61
|
version: '1.0'
|
159
62
|
type: :development
|
160
63
|
prerelease: false
|
161
64
|
version_requirements: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
65
|
requirements:
|
164
|
-
- - ~>
|
66
|
+
- - "~>"
|
165
67
|
- !ruby/object:Gem::Version
|
166
68
|
version: '1.0'
|
167
69
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
70
|
+
name: rspec
|
169
71
|
requirement: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
72
|
requirements:
|
172
|
-
- -
|
73
|
+
- - ">="
|
173
74
|
- !ruby/object:Gem::Version
|
174
|
-
version: '
|
75
|
+
version: '2.0'
|
76
|
+
- - "<"
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '4'
|
175
79
|
type: :development
|
176
80
|
prerelease: false
|
177
81
|
version_requirements: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
82
|
requirements:
|
180
|
-
- -
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '2.0'
|
86
|
+
- - "<"
|
181
87
|
- !ruby/object:Gem::Version
|
182
|
-
version: '
|
88
|
+
version: '4'
|
183
89
|
- !ruby/object:Gem::Dependency
|
184
90
|
name: rake
|
185
91
|
requirement: !ruby/object:Gem::Requirement
|
186
|
-
none: false
|
187
92
|
requirements:
|
188
|
-
- -
|
93
|
+
- - ">="
|
189
94
|
- !ruby/object:Gem::Version
|
190
95
|
version: '10.0'
|
96
|
+
- - "<"
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '14'
|
191
99
|
type: :development
|
192
100
|
prerelease: false
|
193
101
|
version_requirements: !ruby/object:Gem::Requirement
|
194
|
-
none: false
|
195
102
|
requirements:
|
196
|
-
- -
|
103
|
+
- - ">="
|
197
104
|
- !ruby/object:Gem::Version
|
198
105
|
version: '10.0'
|
106
|
+
- - "<"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '14'
|
199
109
|
- !ruby/object:Gem::Dependency
|
200
|
-
name:
|
110
|
+
name: rdoc
|
201
111
|
requirement: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
112
|
requirements:
|
204
|
-
- -
|
113
|
+
- - ">="
|
205
114
|
- !ruby/object:Gem::Version
|
206
|
-
version: '
|
115
|
+
version: '0'
|
207
116
|
type: :development
|
208
117
|
prerelease: false
|
209
118
|
version_requirements: !ruby/object:Gem::Requirement
|
210
|
-
none: false
|
211
119
|
requirements:
|
212
|
-
- -
|
120
|
+
- - ">="
|
213
121
|
- !ruby/object:Gem::Version
|
214
|
-
version: '
|
122
|
+
version: '0'
|
215
123
|
- !ruby/object:Gem::Dependency
|
216
124
|
name: hoe
|
217
125
|
requirement: !ruby/object:Gem::Requirement
|
218
|
-
none: false
|
219
126
|
requirements:
|
220
|
-
- - ~>
|
127
|
+
- - "~>"
|
221
128
|
- !ruby/object:Gem::Version
|
222
|
-
version: '3.
|
129
|
+
version: '3.22'
|
223
130
|
type: :development
|
224
131
|
prerelease: false
|
225
132
|
version_requirements: !ruby/object:Gem::Requirement
|
226
|
-
none: false
|
227
133
|
requirements:
|
228
|
-
- - ~>
|
134
|
+
- - "~>"
|
229
135
|
- !ruby/object:Gem::Version
|
230
|
-
version: '3.
|
231
|
-
description:
|
232
|
-
using the
|
233
|
-
|
136
|
+
version: '3.22'
|
137
|
+
description: |-
|
138
|
+
Diff::LCS computes the difference between two Enumerable sequences using the
|
234
139
|
McIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities
|
235
|
-
|
236
140
|
to create a simple HTML diff output format and a standard diff-like tool.
|
237
141
|
|
142
|
+
This is release 1.4, providing a simple extension that allows for
|
143
|
+
Diff::LCS::Change objects to be treated implicitly as arrays. Ruby versions
|
144
|
+
below 2.5 are soft-deprecated.
|
238
145
|
|
239
|
-
This
|
240
|
-
|
241
|
-
|
242
|
-
|
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.'
|
146
|
+
This means that older versions are no longer part of the CI test suite. If any
|
147
|
+
changes have been introduced that break those versions, bug reports and patches
|
148
|
+
will be accepted, but it will be up to the reporter to verify any fixes prior
|
149
|
+
to release. A future release will completely break compatibility.
|
257
150
|
email:
|
258
|
-
-
|
151
|
+
- halostatue@gmail.com
|
259
152
|
executables:
|
260
153
|
- htmldiff
|
261
154
|
- ldiff
|
262
155
|
extensions: []
|
263
156
|
extra_rdoc_files:
|
264
|
-
-
|
265
|
-
-
|
266
|
-
-
|
157
|
+
- Code-of-Conduct.md
|
158
|
+
- Contributing.md
|
159
|
+
- History.md
|
160
|
+
- License.md
|
267
161
|
- Manifest.txt
|
268
162
|
- README.rdoc
|
269
163
|
- docs/COPYING.txt
|
270
164
|
- docs/artistic.txt
|
271
165
|
files:
|
272
|
-
- .
|
273
|
-
- .
|
274
|
-
- .
|
275
|
-
- .
|
276
|
-
- .
|
277
|
-
- Contributing.rdoc
|
278
|
-
- Gemfile
|
279
|
-
- History.rdoc
|
280
|
-
- License.rdoc
|
166
|
+
- ".rspec"
|
167
|
+
- Code-of-Conduct.md
|
168
|
+
- Contributing.md
|
169
|
+
- History.md
|
170
|
+
- License.md
|
281
171
|
- Manifest.txt
|
282
172
|
- README.rdoc
|
283
173
|
- Rakefile
|
284
174
|
- autotest/discover.rb
|
285
175
|
- bin/htmldiff
|
286
176
|
- bin/ldiff
|
287
|
-
- diff-lcs.gemspec
|
288
177
|
- docs/COPYING.txt
|
289
178
|
- docs/artistic.txt
|
290
179
|
- lib/diff-lcs.rb
|
291
180
|
- lib/diff/lcs.rb
|
292
181
|
- lib/diff/lcs/array.rb
|
182
|
+
- lib/diff/lcs/backports.rb
|
293
183
|
- lib/diff/lcs/block.rb
|
294
184
|
- lib/diff/lcs/callbacks.rb
|
295
185
|
- lib/diff/lcs/change.rb
|
@@ -300,39 +190,53 @@ files:
|
|
300
190
|
- lib/diff/lcs/string.rb
|
301
191
|
- spec/change_spec.rb
|
302
192
|
- spec/diff_spec.rb
|
193
|
+
- spec/fixtures/aX
|
194
|
+
- spec/fixtures/bXaX
|
195
|
+
- spec/fixtures/ds1.csv
|
196
|
+
- spec/fixtures/ds2.csv
|
197
|
+
- spec/fixtures/ldiff/output.diff
|
198
|
+
- spec/fixtures/ldiff/output.diff-c
|
199
|
+
- spec/fixtures/ldiff/output.diff-e
|
200
|
+
- spec/fixtures/ldiff/output.diff-f
|
201
|
+
- spec/fixtures/ldiff/output.diff-u
|
303
202
|
- spec/hunk_spec.rb
|
304
203
|
- spec/issues_spec.rb
|
305
204
|
- spec/lcs_spec.rb
|
205
|
+
- spec/ldiff_spec.rb
|
306
206
|
- spec/patch_spec.rb
|
307
207
|
- spec/sdiff_spec.rb
|
308
208
|
- spec/spec_helper.rb
|
309
209
|
- spec/traverse_balanced_spec.rb
|
310
210
|
- spec/traverse_sequences_spec.rb
|
311
|
-
homepage:
|
312
|
-
licenses:
|
313
|
-
|
211
|
+
homepage: https://github.com/halostatue/diff-lcs
|
212
|
+
licenses:
|
213
|
+
- MIT
|
214
|
+
- Artistic-2.0
|
215
|
+
- GPL-2.0+
|
216
|
+
metadata:
|
217
|
+
homepage_uri: https://github.com/halostatue/diff-lcs
|
218
|
+
source_code_uri: https://github.com/halostatue/diff-lcs
|
219
|
+
bug_tracker_uri: https://github.com/halostatue/diff-lcs/issues
|
220
|
+
post_install_message:
|
314
221
|
rdoc_options:
|
315
|
-
- --main
|
222
|
+
- "--main"
|
316
223
|
- README.rdoc
|
317
224
|
require_paths:
|
318
225
|
- lib
|
319
226
|
required_ruby_version: !ruby/object:Gem::Requirement
|
320
|
-
none: false
|
321
227
|
requirements:
|
322
|
-
- -
|
228
|
+
- - ">="
|
323
229
|
- !ruby/object:Gem::Version
|
324
|
-
version: '
|
230
|
+
version: '1.8'
|
325
231
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
326
|
-
none: false
|
327
232
|
requirements:
|
328
|
-
- -
|
233
|
+
- - ">="
|
329
234
|
- !ruby/object:Gem::Version
|
330
235
|
version: '0'
|
331
236
|
requirements: []
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
specification_version: 3
|
237
|
+
rubygems_version: 3.0.3
|
238
|
+
signing_key:
|
239
|
+
specification_version: 4
|
336
240
|
summary: Diff::LCS computes the difference between two Enumerable sequences using
|
337
241
|
the McIlroy-Hunt longest common subsequence (LCS) algorithm
|
338
242
|
test_files: []
|