diff-lcs 1.3 → 1.5.1

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 (56) hide show
  1. checksums.yaml +5 -5
  2. data/Contributing.md +86 -48
  3. data/History.md +370 -159
  4. data/License.md +6 -4
  5. data/Manifest.txt +23 -1
  6. data/README.rdoc +10 -10
  7. data/Rakefile +109 -36
  8. data/bin/htmldiff +9 -6
  9. data/bin/ldiff +4 -1
  10. data/lib/diff/lcs/array.rb +2 -2
  11. data/lib/diff/lcs/backports.rb +9 -0
  12. data/lib/diff/lcs/block.rb +5 -5
  13. data/lib/diff/lcs/callbacks.rb +22 -17
  14. data/lib/diff/lcs/change.rb +42 -49
  15. data/lib/diff/lcs/htmldiff.rb +21 -12
  16. data/lib/diff/lcs/hunk.rb +160 -73
  17. data/lib/diff/lcs/internals.rb +57 -56
  18. data/lib/diff/lcs/ldiff.rb +63 -57
  19. data/lib/diff/lcs/string.rb +1 -1
  20. data/lib/diff/lcs.rb +226 -210
  21. data/lib/diff-lcs.rb +2 -2
  22. data/spec/change_spec.rb +58 -34
  23. data/spec/diff_spec.rb +13 -9
  24. data/spec/fixtures/aX +1 -0
  25. data/spec/fixtures/bXaX +1 -0
  26. data/spec/fixtures/ldiff/output.diff +4 -0
  27. data/spec/fixtures/ldiff/output.diff-c +7 -0
  28. data/spec/fixtures/ldiff/output.diff-e +3 -0
  29. data/spec/fixtures/ldiff/output.diff-f +3 -0
  30. data/spec/fixtures/ldiff/output.diff-u +5 -0
  31. data/spec/fixtures/ldiff/output.diff.chef +4 -0
  32. data/spec/fixtures/ldiff/output.diff.chef-c +15 -0
  33. data/spec/fixtures/ldiff/output.diff.chef-e +3 -0
  34. data/spec/fixtures/ldiff/output.diff.chef-f +3 -0
  35. data/spec/fixtures/ldiff/output.diff.chef-u +9 -0
  36. data/spec/fixtures/ldiff/output.diff.chef2 +7 -0
  37. data/spec/fixtures/ldiff/output.diff.chef2-c +20 -0
  38. data/spec/fixtures/ldiff/output.diff.chef2-d +7 -0
  39. data/spec/fixtures/ldiff/output.diff.chef2-e +7 -0
  40. data/spec/fixtures/ldiff/output.diff.chef2-f +7 -0
  41. data/spec/fixtures/ldiff/output.diff.chef2-u +16 -0
  42. data/spec/fixtures/new-chef +4 -0
  43. data/spec/fixtures/new-chef2 +17 -0
  44. data/spec/fixtures/old-chef +4 -0
  45. data/spec/fixtures/old-chef2 +14 -0
  46. data/spec/hunk_spec.rb +48 -37
  47. data/spec/issues_spec.rb +132 -21
  48. data/spec/lcs_spec.rb +3 -3
  49. data/spec/ldiff_spec.rb +74 -32
  50. data/spec/patch_spec.rb +14 -20
  51. data/spec/sdiff_spec.rb +83 -81
  52. data/spec/spec_helper.rb +146 -91
  53. data/spec/traverse_balanced_spec.rb +138 -136
  54. data/spec/traverse_sequences_spec.rb +7 -9
  55. metadata +76 -48
  56. data/autotest/discover.rb +0 -1
metadata CHANGED
@@ -1,85 +1,91 @@
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.5.1
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: 2024-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: hoe-doofus
14
+ name: hoe
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '3.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '5'
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '1.0'
29
+ version: '3.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5'
27
33
  - !ruby/object:Gem::Dependency
28
- name: hoe-gemspec2
34
+ name: hoe-doofus
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '1.1'
39
+ version: '1.0'
34
40
  type: :development
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '1.1'
46
+ version: '1.0'
41
47
  - !ruby/object:Gem::Dependency
42
- name: hoe-git
48
+ name: hoe-gemspec2
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '1.6'
53
+ version: '1.1'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '1.6'
60
+ version: '1.1'
55
61
  - !ruby/object:Gem::Dependency
56
- name: hoe-rubygems
62
+ name: hoe-git2
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '1.0'
67
+ version: '1.7'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '1.0'
74
+ version: '1.7'
69
75
  - !ruby/object:Gem::Dependency
70
- name: hoe-travis
76
+ name: hoe-rubygems
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '1.2'
81
+ version: '1.0'
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
86
  - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: '1.2'
88
+ version: '1.0'
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: rspec
85
91
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +115,7 @@ dependencies:
109
115
  version: '10.0'
110
116
  - - "<"
111
117
  - !ruby/object:Gem::Version
112
- version: '12'
118
+ version: '14'
113
119
  type: :development
114
120
  prerelease: false
115
121
  version_requirements: !ruby/object:Gem::Requirement
@@ -119,44 +125,41 @@ dependencies:
119
125
  version: '10.0'
120
126
  - - "<"
121
127
  - !ruby/object:Gem::Version
122
- version: '12'
128
+ version: '14'
123
129
  - !ruby/object:Gem::Dependency
124
130
  name: rdoc
125
131
  requirement: !ruby/object:Gem::Requirement
126
132
  requirements:
127
133
  - - ">="
128
134
  - !ruby/object:Gem::Version
129
- version: '0'
135
+ version: 6.3.1
136
+ - - "<"
137
+ - !ruby/object:Gem::Version
138
+ version: '7'
130
139
  type: :development
131
140
  prerelease: false
132
141
  version_requirements: !ruby/object:Gem::Requirement
133
142
  requirements:
134
143
  - - ">="
135
144
  - !ruby/object:Gem::Version
136
- version: '0'
137
- - !ruby/object:Gem::Dependency
138
- name: hoe
139
- requirement: !ruby/object:Gem::Requirement
140
- requirements:
141
- - - "~>"
142
- - !ruby/object:Gem::Version
143
- version: '3.16'
144
- type: :development
145
- prerelease: false
146
- version_requirements: !ruby/object:Gem::Requirement
147
- requirements:
148
- - - "~>"
145
+ version: 6.3.1
146
+ - - "<"
149
147
  - !ruby/object:Gem::Version
150
- version: '3.16'
148
+ version: '7'
151
149
  description: |-
152
150
  Diff::LCS computes the difference between two Enumerable sequences using the
153
151
  McIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities
154
152
  to create a simple HTML diff output format and a standard diff-like tool.
155
153
 
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.
154
+ This is release 1.4.3, providing a simple extension that allows for
155
+ Diff::LCS::Change objects to be treated implicitly as arrays and fixes a
156
+ number of formatting issues.
157
+
158
+ Ruby versions below 2.5 are soft-deprecated, which means that older versions
159
+ are no longer part of the CI test suite. If any changes have been introduced
160
+ that break those versions, bug reports and patches will be accepted, but it
161
+ will be up to the reporter to verify any fixes prior to release. The next
162
+ major release will completely break compatibility.
160
163
  email:
161
164
  - halostatue@gmail.com
162
165
  executables:
@@ -181,7 +184,6 @@ files:
181
184
  - Manifest.txt
182
185
  - README.rdoc
183
186
  - Rakefile
184
- - autotest/discover.rb
185
187
  - bin/htmldiff
186
188
  - bin/ldiff
187
189
  - docs/COPYING.txt
@@ -189,6 +191,7 @@ files:
189
191
  - lib/diff-lcs.rb
190
192
  - lib/diff/lcs.rb
191
193
  - lib/diff/lcs/array.rb
194
+ - lib/diff/lcs/backports.rb
192
195
  - lib/diff/lcs/block.rb
193
196
  - lib/diff/lcs/callbacks.rb
194
197
  - lib/diff/lcs/change.rb
@@ -199,8 +202,30 @@ files:
199
202
  - lib/diff/lcs/string.rb
200
203
  - spec/change_spec.rb
201
204
  - spec/diff_spec.rb
205
+ - spec/fixtures/aX
206
+ - spec/fixtures/bXaX
202
207
  - spec/fixtures/ds1.csv
203
208
  - spec/fixtures/ds2.csv
209
+ - spec/fixtures/ldiff/output.diff
210
+ - spec/fixtures/ldiff/output.diff-c
211
+ - spec/fixtures/ldiff/output.diff-e
212
+ - spec/fixtures/ldiff/output.diff-f
213
+ - spec/fixtures/ldiff/output.diff-u
214
+ - spec/fixtures/ldiff/output.diff.chef
215
+ - spec/fixtures/ldiff/output.diff.chef-c
216
+ - spec/fixtures/ldiff/output.diff.chef-e
217
+ - spec/fixtures/ldiff/output.diff.chef-f
218
+ - spec/fixtures/ldiff/output.diff.chef-u
219
+ - spec/fixtures/ldiff/output.diff.chef2
220
+ - spec/fixtures/ldiff/output.diff.chef2-c
221
+ - spec/fixtures/ldiff/output.diff.chef2-d
222
+ - spec/fixtures/ldiff/output.diff.chef2-e
223
+ - spec/fixtures/ldiff/output.diff.chef2-f
224
+ - spec/fixtures/ldiff/output.diff.chef2-u
225
+ - spec/fixtures/new-chef
226
+ - spec/fixtures/new-chef2
227
+ - spec/fixtures/old-chef
228
+ - spec/fixtures/old-chef2
204
229
  - spec/hunk_spec.rb
205
230
  - spec/issues_spec.rb
206
231
  - spec/lcs_spec.rb
@@ -214,9 +239,13 @@ homepage: https://github.com/halostatue/diff-lcs
214
239
  licenses:
215
240
  - MIT
216
241
  - Artistic-2.0
217
- - GPL-2.0+
218
- metadata: {}
219
- post_install_message:
242
+ - GPL-2.0-or-later
243
+ metadata:
244
+ homepage_uri: https://github.com/halostatue/diff-lcs
245
+ source_code_uri: https://github.com/halostatue/diff-lcs
246
+ bug_tracker_uri: https://github.com/halostatue/diff-lcs/issues
247
+ rubygems_mfa_required: 'true'
248
+ post_install_message:
220
249
  rdoc_options:
221
250
  - "--main"
222
251
  - README.rdoc
@@ -233,9 +262,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
262
  - !ruby/object:Gem::Version
234
263
  version: '0'
235
264
  requirements: []
236
- rubyforge_project:
237
- rubygems_version: 2.5.1
238
- signing_key:
265
+ rubygems_version: 3.5.3
266
+ signing_key:
239
267
  specification_version: 4
240
268
  summary: Diff::LCS computes the difference between two Enumerable sequences using
241
269
  the McIlroy-Hunt longest common subsequence (LCS) algorithm
data/autotest/discover.rb DELETED
@@ -1 +0,0 @@
1
- Autotest.add_discovery { "rspec2" }