diff-lcs 1.3 → 1.4.2

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.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