diff-lcs 1.3 → 1.4.2

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.
@@ -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.2
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-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hoe-doofus
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
69
- - !ruby/object:Gem::Dependency
70
- name: hoe-travis
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
69
  - !ruby/object:Gem::Dependency
84
70
  name: rspec
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +95,7 @@ dependencies:
109
95
  version: '10.0'
110
96
  - - "<"
111
97
  - !ruby/object:Gem::Version
112
- version: '12'
98
+ version: '14'
113
99
  type: :development
114
100
  prerelease: false
115
101
  version_requirements: !ruby/object:Gem::Requirement
@@ -119,7 +105,7 @@ dependencies:
119
105
  version: '10.0'
120
106
  - - "<"
121
107
  - !ruby/object:Gem::Version
122
- version: '12'
108
+ version: '14'
123
109
  - !ruby/object:Gem::Dependency
124
110
  name: rdoc
125
111
  requirement: !ruby/object:Gem::Requirement
@@ -140,23 +126,27 @@ dependencies:
140
126
  requirements:
141
127
  - - "~>"
142
128
  - !ruby/object:Gem::Version
143
- version: '3.16'
129
+ version: '3.22'
144
130
  type: :development
145
131
  prerelease: false
146
132
  version_requirements: !ruby/object:Gem::Requirement
147
133
  requirements:
148
134
  - - "~>"
149
135
  - !ruby/object:Gem::Version
150
- version: '3.16'
136
+ version: '3.22'
151
137
  description: |-
152
138
  Diff::LCS computes the difference between two Enumerable sequences using the
153
139
  McIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities
154
140
  to create a simple HTML diff output format and a standard diff-like tool.
155
141
 
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.
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.
145
+
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.
160
150
  email:
161
151
  - halostatue@gmail.com
162
152
  executables:
@@ -189,6 +179,7 @@ files:
189
179
  - lib/diff-lcs.rb
190
180
  - lib/diff/lcs.rb
191
181
  - lib/diff/lcs/array.rb
182
+ - lib/diff/lcs/backports.rb
192
183
  - lib/diff/lcs/block.rb
193
184
  - lib/diff/lcs/callbacks.rb
194
185
  - lib/diff/lcs/change.rb
@@ -199,8 +190,15 @@ files:
199
190
  - lib/diff/lcs/string.rb
200
191
  - spec/change_spec.rb
201
192
  - spec/diff_spec.rb
193
+ - spec/fixtures/aX
194
+ - spec/fixtures/bXaX
202
195
  - spec/fixtures/ds1.csv
203
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
204
202
  - spec/hunk_spec.rb
205
203
  - spec/issues_spec.rb
206
204
  - spec/lcs_spec.rb
@@ -215,8 +213,11 @@ licenses:
215
213
  - MIT
216
214
  - Artistic-2.0
217
215
  - GPL-2.0+
218
- metadata: {}
219
- post_install_message:
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:
220
221
  rdoc_options:
221
222
  - "--main"
222
223
  - README.rdoc
@@ -233,9 +234,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
234
  - !ruby/object:Gem::Version
234
235
  version: '0'
235
236
  requirements: []
236
- rubyforge_project:
237
- rubygems_version: 2.5.1
238
- signing_key:
237
+ rubygems_version: 3.0.3
238
+ signing_key:
239
239
  specification_version: 4
240
240
  summary: Diff::LCS computes the difference between two Enumerable sequences using
241
241
  the McIlroy-Hunt longest common subsequence (LCS) algorithm