diff-lcs 1.2.3 → 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 +7 -0
- 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 -9
- data/README.rdoc +18 -21
- data/Rakefile +37 -19
- data/lib/diff/lcs.rb +5 -85
- data/lib/diff/lcs/change.rb +8 -4
- data/lib/diff/lcs/htmldiff.rb +2 -2
- data/lib/diff/lcs/internals.rb +15 -8
- data/lib/diff/lcs/ldiff.rb +14 -42
- data/spec/diff_spec.rb +18 -12
- 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 +16 -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 +84 -180
- 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
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
|
|
@@ -199,4 +199,16 @@ describe "Diff::LCS.sdiff" do
|
|
199
199
|
|
200
200
|
it_has_behavior "compare sequences correctly"
|
201
201
|
end
|
202
|
+
|
203
|
+
describe "using [[1,2]] & []" do
|
204
|
+
let(:s1) { [ [ 1, 2 ] ] }
|
205
|
+
let(:s2) { [] }
|
206
|
+
let(:result) {
|
207
|
+
[
|
208
|
+
[ '-', [ 0, [ 1, 2 ] ], [ 0, nil ] ]
|
209
|
+
]
|
210
|
+
}
|
211
|
+
|
212
|
+
it_has_behavior "compare sequences correctly"
|
213
|
+
end
|
202
214
|
end
|
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,290 +1,189 @@
|
|
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.3'
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Austin Ziegler
|
9
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: 2017-01-18 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
|
-
requirements:
|
164
|
-
- - ~>
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '1.0'
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: hoe-travis
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
96
|
requirements:
|
172
|
-
- -
|
97
|
+
- - ">="
|
173
98
|
- !ruby/object:Gem::Version
|
174
|
-
version: '
|
175
|
-
|
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: '12'
|
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: '12'
|
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.16'
|
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.16'
|
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
|
|
238
|
-
|
239
|
-
|
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.'
|
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.
|
257
160
|
email:
|
258
|
-
-
|
161
|
+
- halostatue@gmail.com
|
259
162
|
executables:
|
260
163
|
- htmldiff
|
261
164
|
- ldiff
|
262
165
|
extensions: []
|
263
166
|
extra_rdoc_files:
|
264
|
-
-
|
265
|
-
-
|
266
|
-
-
|
167
|
+
- Code-of-Conduct.md
|
168
|
+
- Contributing.md
|
169
|
+
- History.md
|
170
|
+
- License.md
|
267
171
|
- Manifest.txt
|
268
172
|
- README.rdoc
|
269
173
|
- docs/COPYING.txt
|
270
174
|
- docs/artistic.txt
|
271
175
|
files:
|
272
|
-
- .
|
273
|
-
- .
|
274
|
-
- .
|
275
|
-
- .
|
276
|
-
- .
|
277
|
-
- Contributing.rdoc
|
278
|
-
- Gemfile
|
279
|
-
- History.rdoc
|
280
|
-
- License.rdoc
|
176
|
+
- ".rspec"
|
177
|
+
- Code-of-Conduct.md
|
178
|
+
- Contributing.md
|
179
|
+
- History.md
|
180
|
+
- License.md
|
281
181
|
- Manifest.txt
|
282
182
|
- README.rdoc
|
283
183
|
- Rakefile
|
284
184
|
- autotest/discover.rb
|
285
185
|
- bin/htmldiff
|
286
186
|
- bin/ldiff
|
287
|
-
- diff-lcs.gemspec
|
288
187
|
- docs/COPYING.txt
|
289
188
|
- docs/artistic.txt
|
290
189
|
- lib/diff-lcs.rb
|
@@ -300,39 +199,44 @@ files:
|
|
300
199
|
- lib/diff/lcs/string.rb
|
301
200
|
- spec/change_spec.rb
|
302
201
|
- spec/diff_spec.rb
|
202
|
+
- spec/fixtures/ds1.csv
|
203
|
+
- spec/fixtures/ds2.csv
|
303
204
|
- spec/hunk_spec.rb
|
304
205
|
- spec/issues_spec.rb
|
305
206
|
- spec/lcs_spec.rb
|
207
|
+
- spec/ldiff_spec.rb
|
306
208
|
- spec/patch_spec.rb
|
307
209
|
- spec/sdiff_spec.rb
|
308
210
|
- spec/spec_helper.rb
|
309
211
|
- spec/traverse_balanced_spec.rb
|
310
212
|
- spec/traverse_sequences_spec.rb
|
311
|
-
homepage:
|
312
|
-
licenses:
|
213
|
+
homepage: https://github.com/halostatue/diff-lcs
|
214
|
+
licenses:
|
215
|
+
- MIT
|
216
|
+
- Artistic-2.0
|
217
|
+
- GPL-2.0+
|
218
|
+
metadata: {}
|
313
219
|
post_install_message:
|
314
220
|
rdoc_options:
|
315
|
-
- --main
|
221
|
+
- "--main"
|
316
222
|
- README.rdoc
|
317
223
|
require_paths:
|
318
224
|
- lib
|
319
225
|
required_ruby_version: !ruby/object:Gem::Requirement
|
320
|
-
none: false
|
321
226
|
requirements:
|
322
|
-
- -
|
227
|
+
- - ">="
|
323
228
|
- !ruby/object:Gem::Version
|
324
|
-
version: '
|
229
|
+
version: '1.8'
|
325
230
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
326
|
-
none: false
|
327
231
|
requirements:
|
328
|
-
- -
|
232
|
+
- - ">="
|
329
233
|
- !ruby/object:Gem::Version
|
330
234
|
version: '0'
|
331
235
|
requirements: []
|
332
|
-
rubyforge_project:
|
333
|
-
rubygems_version:
|
236
|
+
rubyforge_project:
|
237
|
+
rubygems_version: 2.5.1
|
334
238
|
signing_key:
|
335
|
-
specification_version:
|
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: []
|