diff-lcs 1.3 → 1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,10 +1,10 @@
1
- # -*- ruby encoding: utf-8 -*-
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe "Diff::LCS.traverse_sequences" do
6
- describe "callback with no finishers" do
7
- describe "over (seq1, seq2)" do
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,27 +13,27 @@ describe "Diff::LCS.traverse_sequences" do
13
13
  Diff::LCS.traverse_sequences(seq2, seq1, @callback_s2_s1)
14
14
  end
15
15
 
16
- it "has the correct LCS result on left-matches" do
16
+ it 'has the correct LCS result on left-matches' do
17
17
  expect(@callback_s1_s2.matched_a).to eq(correct_lcs)
18
18
  expect(@callback_s2_s1.matched_a).to eq(correct_lcs)
19
19
  end
20
20
 
21
- it "has the correct LCS result on right-matches" do
21
+ it 'has the correct LCS result on right-matches' do
22
22
  expect(@callback_s1_s2.matched_b).to eq(correct_lcs)
23
23
  expect(@callback_s2_s1.matched_b).to eq(correct_lcs)
24
24
  end
25
25
 
26
- it "has the correct skipped sequences with the left sequence" do
26
+ it 'has the correct skipped sequences with the left sequence' do
27
27
  expect(@callback_s1_s2.discards_a).to eq(skipped_seq1)
28
28
  expect(@callback_s2_s1.discards_a).to eq(skipped_seq2)
29
29
  end
30
30
 
31
- it "has the correct skipped sequences with the right sequence" do
31
+ it 'has the correct skipped sequences with the right sequence' do
32
32
  expect(@callback_s1_s2.discards_b).to eq(skipped_seq2)
33
33
  expect(@callback_s2_s1.discards_b).to eq(skipped_seq1)
34
34
  end
35
35
 
36
- it "does not have anything done markers from the left or right sequences" do
36
+ it 'does not have anything done markers from the left or right sequences' do
37
37
  expect(@callback_s1_s2.done_a).to be_empty
38
38
  expect(@callback_s1_s2.done_b).to be_empty
39
39
  expect(@callback_s2_s1.done_a).to be_empty
@@ -41,64 +41,64 @@ describe "Diff::LCS.traverse_sequences" do
41
41
  end
42
42
  end
43
43
 
44
- describe "over (hello, hello)" do
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 "has the correct LCS result on left-matches" do
50
+ it 'has the correct LCS result on left-matches' do
51
51
  expect(@callback.matched_a).to eq(hello.split(//))
52
52
  end
53
53
 
54
- it "has the correct LCS result on right-matches" do
54
+ it 'has the correct LCS result on right-matches' do
55
55
  expect(@callback.matched_b).to eq(hello.split(//))
56
56
  end
57
57
 
58
- it "has the correct skipped sequences with the left sequence", :only => true do
58
+ it 'has the correct skipped sequences with the left sequence', :only => true do
59
59
  expect(@callback.discards_a).to be_empty
60
60
  end
61
61
 
62
- it "has the correct skipped sequences with the right sequence" do
62
+ it 'has the correct skipped sequences with the right sequence' do
63
63
  expect(@callback.discards_b).to be_empty
64
64
  end
65
65
 
66
- it "does not have anything done markers from the left or right sequences" do
66
+ it 'does not have anything done markers from the left or right sequences' do
67
67
  expect(@callback.done_a).to be_empty
68
68
  expect(@callback.done_b).to be_empty
69
69
  end
70
70
  end
71
71
 
72
- describe "over (hello_ary, hello_ary)" do
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 "has the correct LCS result on left-matches" do
78
+ it 'has the correct LCS result on left-matches' do
79
79
  expect(@callback.matched_a).to eq(hello_ary)
80
80
  end
81
81
 
82
- it "has the correct LCS result on right-matches" do
82
+ it 'has the correct LCS result on right-matches' do
83
83
  expect(@callback.matched_b).to eq(hello_ary)
84
84
  end
85
85
 
86
- it "has the correct skipped sequences with the left sequence" do
86
+ it 'has the correct skipped sequences with the left sequence' do
87
87
  expect(@callback.discards_a).to be_empty
88
88
  end
89
89
 
90
- it "has the correct skipped sequences with the right sequence" do
90
+ it 'has the correct skipped sequences with the right sequence' do
91
91
  expect(@callback.discards_b).to be_empty
92
92
  end
93
93
 
94
- it "does not have anything done markers from the left or right sequences" do
94
+ it 'does not have anything done markers from the left or right sequences' do
95
95
  expect(@callback.done_a).to be_empty
96
96
  expect(@callback.done_b).to be_empty
97
97
  end
98
98
  end
99
99
  end
100
100
 
101
- describe "callback with finisher" do
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,28 +106,28 @@ describe "Diff::LCS.traverse_sequences" do
106
106
  Diff::LCS.traverse_sequences(seq2, seq1, @callback_s2_s1)
107
107
  end
108
108
 
109
- it "has the correct LCS result on left-matches" do
109
+ it 'has the correct LCS result on left-matches' do
110
110
  expect(@callback_s1_s2.matched_a).to eq(correct_lcs)
111
111
  expect(@callback_s2_s1.matched_a).to eq(correct_lcs)
112
112
  end
113
113
 
114
- it "has the correct LCS result on right-matches" do
114
+ it 'has the correct LCS result on right-matches' do
115
115
  expect(@callback_s1_s2.matched_b).to eq(correct_lcs)
116
116
  expect(@callback_s2_s1.matched_b).to eq(correct_lcs)
117
117
  end
118
118
 
119
- it "has the correct skipped sequences for the left sequence" do
119
+ it 'has the correct skipped sequences for the left sequence' do
120
120
  expect(@callback_s1_s2.discards_a).to eq(skipped_seq1)
121
121
  expect(@callback_s2_s1.discards_a).to eq(skipped_seq2)
122
122
  end
123
123
 
124
- it "has the correct skipped sequences for the right sequence" do
124
+ it 'has the correct skipped sequences for the right sequence' do
125
125
  expect(@callback_s1_s2.discards_b).to eq(skipped_seq2)
126
126
  expect(@callback_s2_s1.discards_b).to eq(skipped_seq1)
127
127
  end
128
128
 
129
- it "has done markers differently-sized sequences" do
130
- expect(@callback_s1_s2.done_a).to eq([[ "p", 9, "s", 10 ]])
129
+ it 'has done markers differently-sized sequences' do
130
+ expect(@callback_s1_s2.done_a).to eq([['p', 9, 's', 10]])
131
131
  expect(@callback_s1_s2.done_b).to be_empty
132
132
 
133
133
  # 20110731 I don't yet understand why this particular behaviour
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diff-lcs
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.3'
4
+ version: '1.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Austin Ziegler
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-18 00:00:00.000000000 Z
11
+ date: 2020-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hoe-doofus
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: '10.0'
110
110
  - - "<"
111
111
  - !ruby/object:Gem::Version
112
- version: '12'
112
+ version: '14'
113
113
  type: :development
114
114
  prerelease: false
115
115
  version_requirements: !ruby/object:Gem::Requirement
@@ -119,7 +119,7 @@ dependencies:
119
119
  version: '10.0'
120
120
  - - "<"
121
121
  - !ruby/object:Gem::Version
122
- version: '12'
122
+ version: '14'
123
123
  - !ruby/object:Gem::Dependency
124
124
  name: rdoc
125
125
  requirement: !ruby/object:Gem::Requirement
@@ -140,23 +140,27 @@ dependencies:
140
140
  requirements:
141
141
  - - "~>"
142
142
  - !ruby/object:Gem::Version
143
- version: '3.16'
143
+ version: '3.22'
144
144
  type: :development
145
145
  prerelease: false
146
146
  version_requirements: !ruby/object:Gem::Requirement
147
147
  requirements:
148
148
  - - "~>"
149
149
  - !ruby/object:Gem::Version
150
- version: '3.16'
150
+ version: '3.22'
151
151
  description: |-
152
152
  Diff::LCS computes the difference between two Enumerable sequences using the
153
153
  McIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities
154
154
  to create a simple HTML diff output format and a standard diff-like tool.
155
155
 
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.
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.
159
+
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.
160
164
  email:
161
165
  - halostatue@gmail.com
162
166
  executables:
@@ -189,6 +193,7 @@ files:
189
193
  - lib/diff-lcs.rb
190
194
  - lib/diff/lcs.rb
191
195
  - lib/diff/lcs/array.rb
196
+ - lib/diff/lcs/backports.rb
192
197
  - lib/diff/lcs/block.rb
193
198
  - lib/diff/lcs/callbacks.rb
194
199
  - lib/diff/lcs/change.rb
@@ -199,8 +204,15 @@ files:
199
204
  - lib/diff/lcs/string.rb
200
205
  - spec/change_spec.rb
201
206
  - spec/diff_spec.rb
207
+ - spec/fixtures/aX
208
+ - spec/fixtures/bXaX
202
209
  - spec/fixtures/ds1.csv
203
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
204
216
  - spec/hunk_spec.rb
205
217
  - spec/issues_spec.rb
206
218
  - spec/lcs_spec.rb
@@ -215,8 +227,11 @@ licenses:
215
227
  - MIT
216
228
  - Artistic-2.0
217
229
  - GPL-2.0+
218
- metadata: {}
219
- post_install_message:
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:
220
235
  rdoc_options:
221
236
  - "--main"
222
237
  - README.rdoc
@@ -233,9 +248,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
248
  - !ruby/object:Gem::Version
234
249
  version: '0'
235
250
  requirements: []
236
- rubyforge_project:
237
- rubygems_version: 2.5.1
238
- signing_key:
251
+ rubygems_version: 3.0.3
252
+ signing_key:
239
253
  specification_version: 4
240
254
  summary: Diff::LCS computes the difference between two Enumerable sequences using
241
255
  the McIlroy-Hunt longest common subsequence (LCS) algorithm