diff-lcs 1.2.5 → 1.4.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.
Files changed (55) hide show
  1. checksums.yaml +6 -14
  2. data/.rspec +0 -1
  3. data/Code-of-Conduct.md +74 -0
  4. data/Contributing.md +84 -0
  5. data/History.md +278 -0
  6. data/{License.rdoc → License.md} +0 -0
  7. data/Manifest.txt +15 -8
  8. data/README.rdoc +18 -19
  9. data/Rakefile +41 -25
  10. data/autotest/discover.rb +3 -1
  11. data/bin/htmldiff +7 -4
  12. data/bin/ldiff +4 -1
  13. data/lib/diff-lcs.rb +1 -1
  14. data/lib/diff/lcs.rb +181 -254
  15. data/lib/diff/lcs/array.rb +1 -1
  16. data/lib/diff/lcs/backports.rb +9 -0
  17. data/lib/diff/lcs/block.rb +2 -2
  18. data/lib/diff/lcs/callbacks.rb +15 -12
  19. data/lib/diff/lcs/change.rb +33 -36
  20. data/lib/diff/lcs/htmldiff.rb +17 -16
  21. data/lib/diff/lcs/hunk.rb +67 -52
  22. data/lib/diff/lcs/internals.rb +43 -40
  23. data/lib/diff/lcs/ldiff.rb +44 -64
  24. data/lib/diff/lcs/string.rb +1 -1
  25. data/spec/change_spec.rb +31 -7
  26. data/spec/diff_spec.rb +24 -20
  27. data/spec/fixtures/aX +1 -0
  28. data/spec/fixtures/bXaX +1 -0
  29. data/spec/fixtures/ds1.csv +50 -0
  30. data/spec/fixtures/ds2.csv +51 -0
  31. data/spec/fixtures/ldiff/output.diff +4 -0
  32. data/spec/fixtures/ldiff/output.diff-c +7 -0
  33. data/spec/fixtures/ldiff/output.diff-e +3 -0
  34. data/spec/fixtures/ldiff/output.diff-f +3 -0
  35. data/spec/fixtures/ldiff/output.diff-u +5 -0
  36. data/spec/hunk_spec.rb +37 -37
  37. data/spec/issues_spec.rb +91 -17
  38. data/spec/lcs_spec.rb +24 -22
  39. data/spec/ldiff_spec.rb +86 -0
  40. data/spec/patch_spec.rb +182 -180
  41. data/spec/sdiff_spec.rb +91 -91
  42. data/spec/spec_helper.rb +143 -58
  43. data/spec/traverse_balanced_spec.rb +177 -177
  44. data/spec/traverse_sequences_spec.rb +63 -63
  45. metadata +87 -143
  46. checksums.yaml.gz.sig +0 -0
  47. data.tar.gz.sig +0 -3
  48. data/.autotest +0 -3
  49. data/.gemtest +0 -0
  50. data/.hoerc +0 -2
  51. data/.travis.yml +0 -22
  52. data/Contributing.rdoc +0 -64
  53. data/Gemfile +0 -20
  54. data/History.rdoc +0 -152
  55. metadata.gz.sig +0 -2
@@ -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,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 "should have the correct LCS result on left-matches" do
17
- @callback_s1_s2.matched_a.should == correct_lcs
18
- @callback_s2_s1.matched_a.should == correct_lcs
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 "should have the correct LCS result on right-matches" do
22
- @callback_s1_s2.matched_b.should == correct_lcs
23
- @callback_s2_s1.matched_b.should == correct_lcs
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 "should have the correct skipped sequences with the left sequence" do
27
- @callback_s1_s2.discards_a.should == skipped_seq1
28
- @callback_s2_s1.discards_a.should == skipped_seq2
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 "should have the correct skipped sequences with the right sequence" do
32
- @callback_s1_s2.discards_b.should == skipped_seq2
33
- @callback_s2_s1.discards_b.should == skipped_seq1
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 "should not have anything done markers from the left or right sequences" do
37
- @callback_s1_s2.done_a.should be_empty
38
- @callback_s1_s2.done_b.should be_empty
39
- @callback_s2_s1.done_a.should be_empty
40
- @callback_s2_s1.done_b.should be_empty
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 "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 "should have the correct LCS result on left-matches" do
51
- @callback.matched_a.should == hello.split(//)
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 "should have the correct LCS result on right-matches" do
55
- @callback.matched_b.should == hello.split(//)
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 "should have the correct skipped sequences with the left sequence", :only => true do
59
- @callback.discards_a.should be_empty
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 "should have the correct skipped sequences with the right sequence" do
63
- @callback.discards_b.should be_empty
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 "should not have anything done markers from the left or right sequences" do
67
- @callback.done_a.should be_empty
68
- @callback.done_b.should be_empty
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 "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 "should have the correct LCS result on left-matches" do
79
- @callback.matched_a.should == hello_ary
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 "should have the correct LCS result on right-matches" do
83
- @callback.matched_b.should == hello_ary
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 "should have the correct skipped sequences with the left sequence" do
87
- @callback.discards_a.should be_empty
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 "should have the correct skipped sequences with the right sequence" do
91
- @callback.discards_b.should be_empty
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 "should not have anything done markers from the left or right sequences" do
95
- @callback.done_a.should be_empty
96
- @callback.done_b.should be_empty
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 "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,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 "should have the correct LCS result on left-matches" do
110
- @callback_s1_s2.matched_a.should == correct_lcs
111
- @callback_s2_s1.matched_a.should == correct_lcs
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 "should have the correct LCS result on right-matches" do
115
- @callback_s1_s2.matched_b.should == correct_lcs
116
- @callback_s2_s1.matched_b.should == correct_lcs
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 "should have the correct skipped sequences for the left sequence" do
120
- @callback_s1_s2.discards_a.should == skipped_seq1
121
- @callback_s2_s1.discards_a.should == skipped_seq2
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 "should have the correct skipped sequences for the right sequence" do
125
- @callback_s1_s2.discards_b.should == skipped_seq2
126
- @callback_s2_s1.discards_b.should == skipped_seq1
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 "should have done markers differently-sized sequences" do
130
- @callback_s1_s2.done_a.should == [[ "p", 9, "s", 10 ]]
131
- @callback_s1_s2.done_b.should be_empty
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.should be_empty
136
- @callback_s2_s1.done_b.should be_empty
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,243 +1,174 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diff-lcs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.5
4
+ version: 1.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Austin Ziegler
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - !binary |-
12
- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUROakNDQWg2Z0F3SUJB
13
- Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREJCTVE4d0RRWURWUVFEREFaaGRY
14
- TjAKYVc0eEdUQVhCZ29Ka2lhSmsvSXNaQUVaRmdseWRXSjVabTl5WjJVeEV6
15
- QVJCZ29Ka2lhSmsvSXNaQUVaRmdOdgpjbWN3SGhjTk1UTXdNakEwTURNek16
16
- STNXaGNOTVRRd01qQTBNRE16TXpJM1dqQkJNUTh3RFFZRFZRUUREQVpoCmRY
17
- TjBhVzR4R1RBWEJnb0praWFKay9Jc1pBRVpGZ2x5ZFdKNVptOXlaMlV4RXpB
18
- UkJnb0praWFKay9Jc1pBRVoKRmdOdmNtY3dnZ0VpTUEwR0NTcUdTSWIzRFFF
19
- QkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDMm1QTmY0TDM3R2hLSQpTUENZc3ZZ
20
- V1hBMi9SOXU1K3B5VW5iSjJSMW8yQ2lScTJaQS9BSXpZNk4zaEduc2dvV25o
21
- NVJ6dmdUTjFMdDA4CkROSXJzSUcyVkRZay9KVnQ2ZjlKNnpaOEVRSGJ6bldh
22
- M2NXWW9DRmFhSUNkazdqVjFuLzQyaGc3MGpFRFlYbDkKZ0RPbDBrNkpteUYv
23
- cnRmRnUvT0lrRkdXZUZZSXVGSHZSdUx5VWJ3NjYrUURUT3pLYjN0OG81NUlo
24
- Z3kxR1Z3VAppNnBrRHM4TGhaV1hkT0QrOTIxbDJaMU5aR1phOUtOYkpJZzZ2
25
- dGdZS1U5OGpRNXFyOWlZM2lrQkFzcEhyRmFzCks2VVN2R2dBZzhmQ0Q1WWlv
26
- dEJFdkNCTVl0ZnFtZnJocGRVMnArZ3ZUZ2VMVzFLYWV2d3FkN25nUW1GVXJG
27
- RzEKZVVKU1VSdjVBZ01CQUFHak9UQTNNQWtHQTFVZEV3UUNNQUF3SFFZRFZS
28
- ME9CQllFRkF0SktNcDZZWU5xbGdSMwo5VGlaTFdxdkxhZ1NNQXNHQTFVZER3
29
- UUVBd0lFc0RBTkJna3Foa2lHOXcwQkFRVUZBQU9DQVFFQXBUUGt2RG04Cjdn
30
- SmxVVDRGZnVtWFB2dHVxUDY3THhVdEdFOHN5dlIwQTRBcyswUC93eWxMSkZV
31
- T3NHVFRkWll0VGhoeENTSkcKKzdLRzJGZkljSDRaejJkOTdhclpHQXpCb2k4
32
- aVBodDIvVXRTbDFmQ2NVSTV2bUphMU1pWFpUMm9xZFc3V3lkcQpyQVpjQlBs
33
- cllZdWl3dEdJMHlxSU9nQmZYU1pDV1dzSnN1eVRLRUxlcDZtQ0xnejBZWlVm
34
- bXZLcjhXL0FiM2F4CkR1THpIOTJMU1JqWkp5anlBVXB3L1ZjMnJNNGdpaVA1
35
- anRCeXJiMVkxZEduUWhIVE1IZjFHZnVjV203TncvVjkKdHdFUFZ3OCswZjg4
36
- SlF1Y3hPVG1URjFOYkxGcGlSd1FVWjF6b1piTmcyZTdtU2hjL2VleG5WTFdL
37
- Rkt4Um9QNgpLUGozV29EK3NwQjhmQT09Ci0tLS0tRU5EIENFUlRJRklDQVRF
38
- LS0tLS0K
39
- date: 2013-11-08 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2020-06-29 00:00:00.000000000 Z
40
12
  dependencies:
41
- - !ruby/object:Gem::Dependency
42
- name: rubyforge
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ! '>='
46
- - !ruby/object:Gem::Version
47
- version: 2.0.4
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: 2.0.4
55
- - !ruby/object:Gem::Dependency
56
- name: rdoc
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: '4.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- version: '4.0'
69
- - !ruby/object:Gem::Dependency
70
- name: hoe-bundler
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
13
  - !ruby/object:Gem::Dependency
84
14
  name: hoe-doofus
85
15
  requirement: !ruby/object:Gem::Requirement
86
16
  requirements:
87
- - - ~>
17
+ - - "~>"
88
18
  - !ruby/object:Gem::Version
89
19
  version: '1.0'
90
20
  type: :development
91
21
  prerelease: false
92
22
  version_requirements: !ruby/object:Gem::Requirement
93
23
  requirements:
94
- - - ~>
24
+ - - "~>"
95
25
  - !ruby/object:Gem::Version
96
26
  version: '1.0'
97
27
  - !ruby/object:Gem::Dependency
98
28
  name: hoe-gemspec2
99
29
  requirement: !ruby/object:Gem::Requirement
100
30
  requirements:
101
- - - ~>
31
+ - - "~>"
102
32
  - !ruby/object:Gem::Version
103
33
  version: '1.1'
104
34
  type: :development
105
35
  prerelease: false
106
36
  version_requirements: !ruby/object:Gem::Requirement
107
37
  requirements:
108
- - - ~>
38
+ - - "~>"
109
39
  - !ruby/object:Gem::Version
110
40
  version: '1.1'
111
41
  - !ruby/object:Gem::Dependency
112
42
  name: hoe-git
113
43
  requirement: !ruby/object:Gem::Requirement
114
44
  requirements:
115
- - - ~>
45
+ - - "~>"
116
46
  - !ruby/object:Gem::Version
117
- version: '1.5'
47
+ version: '1.6'
118
48
  type: :development
119
49
  prerelease: false
120
50
  version_requirements: !ruby/object:Gem::Requirement
121
51
  requirements:
122
- - - ~>
52
+ - - "~>"
123
53
  - !ruby/object:Gem::Version
124
- version: '1.5'
54
+ version: '1.6'
125
55
  - !ruby/object:Gem::Dependency
126
56
  name: hoe-rubygems
127
57
  requirement: !ruby/object:Gem::Requirement
128
58
  requirements:
129
- - - ~>
59
+ - - "~>"
130
60
  - !ruby/object:Gem::Version
131
61
  version: '1.0'
132
62
  type: :development
133
63
  prerelease: false
134
64
  version_requirements: !ruby/object:Gem::Requirement
135
65
  requirements:
136
- - - ~>
66
+ - - "~>"
137
67
  - !ruby/object:Gem::Version
138
68
  version: '1.0'
139
69
  - !ruby/object:Gem::Dependency
140
- name: hoe-travis
70
+ name: rspec
141
71
  requirement: !ruby/object:Gem::Requirement
142
72
  requirements:
143
- - - ~>
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '2.0'
76
+ - - "<"
144
77
  - !ruby/object:Gem::Version
145
- version: '1.2'
78
+ version: '4'
146
79
  type: :development
147
80
  prerelease: false
148
81
  version_requirements: !ruby/object:Gem::Requirement
149
82
  requirements:
150
- - - ~>
83
+ - - ">="
151
84
  - !ruby/object:Gem::Version
152
- version: '1.2'
85
+ version: '2.0'
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: '4'
153
89
  - !ruby/object:Gem::Dependency
154
90
  name: rake
155
91
  requirement: !ruby/object:Gem::Requirement
156
92
  requirements:
157
- - - ~>
93
+ - - ">="
158
94
  - !ruby/object:Gem::Version
159
95
  version: '10.0'
96
+ - - "<"
97
+ - !ruby/object:Gem::Version
98
+ version: '14'
160
99
  type: :development
161
100
  prerelease: false
162
101
  version_requirements: !ruby/object:Gem::Requirement
163
102
  requirements:
164
- - - ~>
103
+ - - ">="
165
104
  - !ruby/object:Gem::Version
166
105
  version: '10.0'
106
+ - - "<"
107
+ - !ruby/object:Gem::Version
108
+ version: '14'
167
109
  - !ruby/object:Gem::Dependency
168
- name: rspec
110
+ name: rdoc
169
111
  requirement: !ruby/object:Gem::Requirement
170
112
  requirements:
171
- - - ~>
113
+ - - ">="
172
114
  - !ruby/object:Gem::Version
173
- version: '2.0'
115
+ version: '0'
174
116
  type: :development
175
117
  prerelease: false
176
118
  version_requirements: !ruby/object:Gem::Requirement
177
119
  requirements:
178
- - - ~>
120
+ - - ">="
179
121
  - !ruby/object:Gem::Version
180
- version: '2.0'
122
+ version: '0'
181
123
  - !ruby/object:Gem::Dependency
182
124
  name: hoe
183
125
  requirement: !ruby/object:Gem::Requirement
184
126
  requirements:
185
- - - ~>
127
+ - - "~>"
186
128
  - !ruby/object:Gem::Version
187
- version: '3.7'
129
+ version: '3.22'
188
130
  type: :development
189
131
  prerelease: false
190
132
  version_requirements: !ruby/object:Gem::Requirement
191
133
  requirements:
192
- - - ~>
134
+ - - "~>"
193
135
  - !ruby/object:Gem::Version
194
- version: '3.7'
195
- description: ! 'Diff::LCS computes the difference between two Enumerable sequences
196
- using the
197
-
136
+ version: '3.22'
137
+ description: |-
138
+ Diff::LCS computes the difference between two Enumerable sequences using the
198
139
  McIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities
199
-
200
140
  to create a simple HTML diff output format and a standard diff-like tool.
201
141
 
142
+ This is release 1.4.3, providing a simple extension that allows for
143
+ Diff::LCS::Change objects to be treated implicitly as arrays and fixes a
144
+ number of formatting issues.
202
145
 
203
- This is release 1.2.4, fixing a bug introduced after diff-lcs 1.1.3 that did
204
-
205
- not properly prune common sequences at the beginning of a comparison set.
206
-
207
- Thanks to Paul Kunysch for fixing this issue.
208
-
209
-
210
- Coincident with the release of diff-lcs 1.2.3, we reported an issue with
211
-
212
- Rubinius in 1.9 mode
213
-
214
- ({rubinius/rubinius#2268}[https://github.com/rubinius/rubinius/issues/2268]).
215
-
216
- We are happy to report that this issue has been resolved.'
146
+ Ruby versions below 2.5 are soft-deprecated, which means that older versions
147
+ are no longer part of the CI test suite. If any changes have been introduced
148
+ that break those versions, bug reports and patches will be accepted, but it
149
+ will be up to the reporter to verify any fixes prior to release. The next
150
+ major release will completely break compatibility.
217
151
  email:
218
- - austin@rubyforge.org
152
+ - halostatue@gmail.com
219
153
  executables:
220
154
  - htmldiff
221
155
  - ldiff
222
156
  extensions: []
223
157
  extra_rdoc_files:
224
- - Contributing.rdoc
225
- - History.rdoc
226
- - License.rdoc
158
+ - Code-of-Conduct.md
159
+ - Contributing.md
160
+ - History.md
161
+ - License.md
227
162
  - Manifest.txt
228
163
  - README.rdoc
229
164
  - docs/COPYING.txt
230
165
  - docs/artistic.txt
231
166
  files:
232
- - .autotest
233
- - .gemtest
234
- - .hoerc
235
- - .rspec
236
- - .travis.yml
237
- - Contributing.rdoc
238
- - Gemfile
239
- - History.rdoc
240
- - License.rdoc
167
+ - ".rspec"
168
+ - Code-of-Conduct.md
169
+ - Contributing.md
170
+ - History.md
171
+ - License.md
241
172
  - Manifest.txt
242
173
  - README.rdoc
243
174
  - Rakefile
@@ -249,6 +180,7 @@ files:
249
180
  - lib/diff-lcs.rb
250
181
  - lib/diff/lcs.rb
251
182
  - lib/diff/lcs/array.rb
183
+ - lib/diff/lcs/backports.rb
252
184
  - lib/diff/lcs/block.rb
253
185
  - lib/diff/lcs/callbacks.rb
254
186
  - lib/diff/lcs/change.rb
@@ -259,40 +191,52 @@ files:
259
191
  - lib/diff/lcs/string.rb
260
192
  - spec/change_spec.rb
261
193
  - spec/diff_spec.rb
194
+ - spec/fixtures/aX
195
+ - spec/fixtures/bXaX
196
+ - spec/fixtures/ds1.csv
197
+ - spec/fixtures/ds2.csv
198
+ - spec/fixtures/ldiff/output.diff
199
+ - spec/fixtures/ldiff/output.diff-c
200
+ - spec/fixtures/ldiff/output.diff-e
201
+ - spec/fixtures/ldiff/output.diff-f
202
+ - spec/fixtures/ldiff/output.diff-u
262
203
  - spec/hunk_spec.rb
263
204
  - spec/issues_spec.rb
264
205
  - spec/lcs_spec.rb
206
+ - spec/ldiff_spec.rb
265
207
  - spec/patch_spec.rb
266
208
  - spec/sdiff_spec.rb
267
209
  - spec/spec_helper.rb
268
210
  - spec/traverse_balanced_spec.rb
269
211
  - spec/traverse_sequences_spec.rb
270
- homepage: http://diff-lcs.rubyforge.org/
212
+ homepage: https://github.com/halostatue/diff-lcs
271
213
  licenses:
272
214
  - MIT
273
- - Perl Artistic v2
274
- - GNU GPL v2
275
- metadata: {}
276
- post_install_message:
215
+ - Artistic-2.0
216
+ - GPL-2.0+
217
+ metadata:
218
+ homepage_uri: https://github.com/halostatue/diff-lcs
219
+ source_code_uri: https://github.com/halostatue/diff-lcs
220
+ bug_tracker_uri: https://github.com/halostatue/diff-lcs/issues
221
+ post_install_message:
277
222
  rdoc_options:
278
- - --main
223
+ - "--main"
279
224
  - README.rdoc
280
225
  require_paths:
281
226
  - lib
282
227
  required_ruby_version: !ruby/object:Gem::Requirement
283
228
  requirements:
284
- - - ! '>='
229
+ - - ">="
285
230
  - !ruby/object:Gem::Version
286
- version: '0'
231
+ version: '1.8'
287
232
  required_rubygems_version: !ruby/object:Gem::Requirement
288
233
  requirements:
289
- - - ! '>='
234
+ - - ">="
290
235
  - !ruby/object:Gem::Version
291
236
  version: '0'
292
237
  requirements: []
293
- rubyforge_project: diff-lcs
294
- rubygems_version: 2.0.7
295
- signing_key:
238
+ rubygems_version: 3.0.3
239
+ signing_key:
296
240
  specification_version: 4
297
241
  summary: Diff::LCS computes the difference between two Enumerable sequences using
298
242
  the McIlroy-Hunt longest common subsequence (LCS) algorithm