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