compact_index 0.14.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53388525df0047c065e1c9197e9021550c69e988629f624e53dc17b6128af505
4
- data.tar.gz: 72e4f7887f5e43cf485f43f0e4d0d3c1789805707166afed428de0b9b63fde8a
3
+ metadata.gz: 16f8f692c98ab8d6ae34b927155f49a95e511e4afc2f96d24e3c118b732bc358
4
+ data.tar.gz: 61df3692189d4a8e57791c279c2c2b9288348fc68336258c45da8754f75efd38
5
5
  SHA512:
6
- metadata.gz: 48d42cebf94bc355e676dedb986beb08c4d512d50295d00a3337ad95f3f3e9f24001311b46ebfc17a1e9043f1af1e9ad6feefd5a846d92086af9bde3d4686432
7
- data.tar.gz: ffb5581d24c9089a0f06e7497369ed9b5064c7c826a99fcb0536f1d1026ccac83f6818a75774af5c4bb0e06dde7caa576bc4a3ed24f23856a693189f7fda39bb
6
+ metadata.gz: 5b93d34e2f4cd3daa936b724ba8d7e58a7be4dd74d1cf9d8aad7a14c7f8a53b34113d6ad8f761bd9224b4c5cc3d86d8c10195ad4ee0d0084357908a26bc0e115
7
+ data.tar.gz: e27b16a8482cf06415b3f470258e8e444d7d2fa5f0cd833a9a9fde2759e5bd47acfdfac62288cae46789fa0fe496859870b01d8cf5b1ed81f2dba4b45c194a65
@@ -0,0 +1,2 @@
1
+ custom: https://rubycentral.org/#/portal/signup
2
+ github: rubytogether
@@ -0,0 +1,8 @@
1
+ newPRWelcomeComment: |
2
+ Thanks for opening a pull request and helping make compact_index better! Someone from the RubyGems team will take a look at your pull request shortly and leave any feedback. Please make sure that your pull request has tests for any changes or added functionality.
3
+
4
+ We use GitHub Actions to test and make sure your change works functionally and uses acceptable conventions, you can review the current progress of GitHub Actions in the PR status window below.
5
+
6
+ If you have any questions or concerns that you wish to ask, feel free to leave a comment in this PR or join our #rubygems or #bundler channel on [Slack](http://slack.bundler.io/).
7
+
8
+ For more information about contributing to the RubyGems project feel free to review our [CONTRIBUTING](https://github.com/rubygems/rubygems/blob/master/CONTRIBUTING.md) guide
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
@@ -0,0 +1,24 @@
1
+ <!--
2
+ Thanks so much for the contribution!
3
+
4
+ Note that you must abide by the [code of conduct](https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md) to contribute to this project.
5
+
6
+ To make reviewing this PR a bit easier, please fill out answers to the following questions.
7
+ -->
8
+
9
+ ## What was the end-user or developer problem that led to this PR?
10
+
11
+ <!-- Write a clear and complete description of the problem -->
12
+
13
+ ## What is your fix for the problem, implemented in this PR?
14
+
15
+ <!-- Explain the fix being implemented. Include any diagnosis you run to
16
+ determine the cause of the issue and your conclusions. If you considered other
17
+ alternatives, explain why you end up choosing the current implementation -->
18
+
19
+ ## Make sure the following tasks are checked
20
+
21
+ - [ ] Describe the problem / feature
22
+ - [ ] Write [tests](https://github.com/rubygems/rubygems/blob/master/bundler/doc/development/PULL_REQUESTS.md#tests) for features and bug fixes
23
+ - [ ] Write code to solve the problem
24
+ - [ ] Make sure you follow the [current code style](https://github.com/rubygems/rubygems/blob/master/bundler/doc/development/PULL_REQUESTS.md#code-formatting) and [write meaningful commit messages without tags](https://github.com/rubygems/rubygems/blob/master/bundler/doc/development/PULL_REQUESTS.md#commit-messages)
@@ -0,0 +1,39 @@
1
+ ---
2
+ "on":
3
+ push:
4
+ tags:
5
+ - v*
6
+ name: Push Gem
7
+ jobs:
8
+ push:
9
+ runs-on: ubuntu-latest
10
+ permissions:
11
+ contents: write
12
+ id-token: write
13
+ steps:
14
+ - uses: rubygems/configure-rubygems-credentials@main
15
+ with:
16
+ role-to-assume: rg_oidc_akr_4dfqnvsems9z1dyszgd6
17
+ - uses: actions/checkout@v4
18
+ - name: Set remote URL
19
+ run: |
20
+ # Attribute commits to the last committer on HEAD
21
+ git config --global user.email "$(git log -1 --pretty=format:'%ae')"
22
+ git config --global user.name "$(git log -1 --pretty=format:'%an')"
23
+ git remote set-url origin "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY"
24
+ - name: Set up Ruby
25
+ uses: ruby/setup-ruby@v1
26
+ with:
27
+ bundler-cache: true
28
+ ruby-version: ruby
29
+ - name: Release
30
+ run: bundle exec rake release
31
+ - name: Wait for release to propagate
32
+ run: |
33
+ gem install rubygems-await
34
+ gem_tuple="$(ruby -rbundler/setup -rbundler -e '
35
+ spec = Bundler.definition.specs.find {|s| s.name == ARGV[0] }
36
+ raise "No spec for #{ARGV[0]}" unless spec
37
+ print [spec.name, spec.version, spec.platform].join(":")
38
+ ' "compact_index")"
39
+ gem await "${gem_tuple}"
@@ -0,0 +1,84 @@
1
+ name: rubygems
2
+
3
+ on:
4
+ pull_request:
5
+
6
+ push:
7
+ branches:
8
+ - master
9
+
10
+ concurrency:
11
+ group: ci-${{ github.ref }}-${{ github.workflow }}
12
+ cancel-in-progress: true
13
+
14
+ permissions: # added using https://github.com/step-security/secure-workflows
15
+ contents: read
16
+
17
+ jobs:
18
+ rubygems:
19
+ name: RubyGems on ${{ matrix.os.name }} (${{ matrix.ruby.name }})
20
+ runs-on: ${{ matrix.os.value }}
21
+ strategy:
22
+ fail-fast: false
23
+ matrix:
24
+ os:
25
+ - { name: Ubuntu, value: ubuntu-22.04 }
26
+ - { name: macOS, value: macos-12 }
27
+ - { name: Windows, value: windows-2022 }
28
+
29
+ ruby:
30
+ - { name: "3.0", value: 3.0.6 }
31
+ - { name: "3.1", value: 3.1.4 }
32
+ - { name: "3.2", value: 3.2.2 }
33
+
34
+ include:
35
+ - ruby: { name: "3.2", value: 3.2.2 }
36
+ os: { name: macOS, value: macos-12 }
37
+
38
+ - ruby: { name: jruby-9.4, value: jruby-9.4.2.0 }
39
+ os: { name: Ubuntu, value: ubuntu-22.04 }
40
+
41
+ - ruby: { name: truffleruby-22, value: truffleruby-22.3.0 }
42
+ os: { name: Ubuntu, value: ubuntu-22.04 }
43
+
44
+ - os: { name: Windows, value: windows-2022 }
45
+ ruby: { name: mswin, value: mswin }
46
+
47
+ - os: { name: Ubuntu, value: ubuntu-22.04 }
48
+ ruby: { name: ruby-head, value: ruby-head }
49
+
50
+ - os: { name: Ubuntu, value: ubuntu-22.04 }
51
+ ruby: { name: truffleruby-head, value: truffleruby-head }
52
+
53
+ steps:
54
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
55
+ - name: Setup ruby (Ubuntu/macOS)
56
+ uses: ruby/setup-ruby@8575951200e472d5f2d95c625da0c7bec8217c42 # v1.161.0
57
+ with:
58
+ ruby-version: ${{ matrix.ruby.value }}
59
+ bundler-cache: true
60
+ if: matrix.os.name != 'Windows'
61
+ - name: Setup ruby (Windows)
62
+ uses: ruby/setup-ruby-pkgs@c7f324bc4a9434f2ce3e55fa1cc19e41daecb231 # v1.33.1
63
+ with:
64
+ ruby-version: ${{ matrix.ruby.value }}
65
+ bundler-cache: true
66
+ mingw: clang
67
+ if: matrix.os.name == 'Windows'
68
+ - name: Configure bindgen
69
+ shell: pwsh
70
+ run: |
71
+ echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV
72
+ echo "BINDGEN_EXTRA_CLANG_ARGS=$((gcm clang).source -replace "bin\clang.exe","include")" >> $env:GITHUB_ENV
73
+ if: matrix.ruby.name == 'mswin'
74
+ - name: Run Test
75
+ run: bin/rake spec
76
+ if: "!startsWith(matrix.ruby.name, 'truffleruby') && !startsWith(matrix.ruby.name, 'jruby')"
77
+ - name: Run Test (JRuby)
78
+ run: JRUBY_OPTS=--debug bin/rake spec
79
+ if: startsWith(matrix.ruby.name, 'jruby')
80
+ - name: Run Test (Truffleruby)
81
+ run: TRUFFLERUBYOPT="--experimental-options --testing-rubygems" bin/rake spec
82
+ if: startsWith(matrix.ruby.name, 'truffleruby')
83
+
84
+ timeout-minutes: 20
@@ -0,0 +1,54 @@
1
+ # This workflow uses actions that are not certified by GitHub. They are provided
2
+ # by a third-party and are governed by separate terms of service, privacy
3
+ # policy, and support documentation.
4
+
5
+ name: Scorecards supply-chain security
6
+ on:
7
+ # For Branch-Protection check. Only the default branch is supported. See
8
+ # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
9
+ branch_protection_rule:
10
+ # To guarantee Maintained check is occasionally updated. See
11
+ # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
12
+ schedule:
13
+ - cron: '22 4 * * 2'
14
+
15
+ # Declare default permissions as read only.
16
+ permissions: read-all
17
+
18
+ jobs:
19
+ analysis:
20
+ name: Scorecards analysis
21
+ runs-on: ubuntu-latest
22
+ permissions:
23
+ # Needed to upload the results to code-scanning dashboard.
24
+ security-events: write
25
+ # Needed to publish results and get a badge (see publish_results below).
26
+ id-token: write
27
+
28
+ steps:
29
+ - name: "Checkout code"
30
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
31
+ with:
32
+ persist-credentials: false
33
+
34
+ - name: "Run analysis"
35
+ uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
36
+ with:
37
+ results_file: results.sarif
38
+ results_format: sarif
39
+ # (Optional) Read-only PAT token. Uncomment the `repo_token` line below if:
40
+ # - you want to enable the Branch-Protection check on a *public* repository, or
41
+ # - you are installing Scorecards on a *private* repository
42
+ # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
43
+ repo_token: ${{ secrets.SCORECARD_READ_TOKEN }}
44
+
45
+ # - Publish results to OpenSSF REST API for easy access by consumers
46
+ # - Allows the repository to include the Scorecard badge.
47
+ # - See https://github.com/ossf/scorecard-action#publishing-results.
48
+ publish_results: true
49
+
50
+ # Upload the results to GitHub's code scanning dashboard.
51
+ - name: "Upload to code-scanning"
52
+ uses: github/codeql-action/upload-sarif@cdcdbb579706841c47f7063dda365e292e5cad7a # v2.13.4
53
+ with:
54
+ sarif_file: results.sarif
@@ -0,0 +1,19 @@
1
+ name: spell
2
+
3
+ on:
4
+ pull_request:
5
+
6
+ push:
7
+ branches:
8
+ - main
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ spell:
15
+ name: Check spelling
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
19
+ - uses: codespell-project/actions-codespell@94259cd8be02ad2903ba34a22d9c13de21a74461 # v2.0
@@ -0,0 +1,30 @@
1
+ name: ubuntu-lint
2
+
3
+ on:
4
+ pull_request:
5
+
6
+ push:
7
+ branches:
8
+ - main
9
+
10
+ concurrency:
11
+ group: ci-${{ github.ref }}-${{ github.workflow }}
12
+ cancel-in-progress: true
13
+
14
+ permissions: # added using https://github.com/step-security/secure-workflows
15
+ contents: read
16
+
17
+ jobs:
18
+ ubuntu_lint:
19
+ name: Lint
20
+ runs-on: ubuntu-22.04
21
+ steps:
22
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
23
+ - name: Setup ruby
24
+ uses: ruby/setup-ruby@8575951200e472d5f2d95c625da0c7bec8217c42 # v1.161.0
25
+ with:
26
+ ruby-version: 3.2.2
27
+ bundler-cache: true
28
+ - name: Run Lint
29
+ run: bundle exec rake rubocop
30
+ timeout-minutes: 15
data/.rubocop-bundler.yml CHANGED
@@ -2,7 +2,7 @@ inherit_from:
2
2
  - .rubocop_todo.yml
3
3
 
4
4
  AllCops:
5
- TargetRubyVersion: 1.9
5
+ TargetRubyVersion: 3.0
6
6
  Exclude:
7
7
  - tmp/**/*
8
8
  - lib/bundler/vendor/**/*
@@ -14,22 +14,22 @@ AllCops:
14
14
  Lint/AssignmentInCondition:
15
15
  Enabled: false
16
16
 
17
- Lint/EndAlignment:
18
- EnforcedStyleAlignWith: variable
19
- AutoCorrect: true
20
-
21
17
  Lint/UnusedMethodArgument:
22
18
  Enabled: false
23
19
 
24
20
  # Style
25
21
 
22
+ Layout/EndAlignment:
23
+ EnforcedStyleAlignWith: variable
24
+ AutoCorrect: true
25
+
26
26
  Layout/AccessModifierIndentation:
27
27
  EnforcedStyle: outdent
28
28
 
29
29
  Style/Alias:
30
30
  EnforcedStyle: prefer_alias_method
31
31
 
32
- Layout/AlignParameters:
32
+ Layout/ParameterAlignment:
33
33
  EnforcedStyle: with_fixed_indentation
34
34
 
35
35
  Style/FrozenStringLiteralComment:
@@ -65,7 +65,10 @@ Style/StringLiteralsInInterpolation:
65
65
 
66
66
  # Having these make it easier to *not* forget to add one when adding a new
67
67
  # value and you can simply copy the previous line.
68
- Style/TrailingCommaInLiteral:
68
+ Style/TrailingCommaInHashLiteral:
69
+ EnforcedStyleForMultiline: comma
70
+
71
+ Style/TrailingCommaInArrayLiteral:
69
72
  EnforcedStyleForMultiline: comma
70
73
 
71
74
  Style/TrailingUnderscoreVariable:
data/.rubocop.yml CHANGED
@@ -1,6 +1,8 @@
1
1
  inherit_from: .rubocop-bundler.yml
2
+ require: rubocop-performance
2
3
 
3
4
  AllCops:
5
+ SuggestExtensions: false
4
6
  Exclude:
5
7
  - !ruby/regexp /(vendor|bundle|bin|db|tmp)\/.*/
6
8
 
@@ -11,3 +13,216 @@ Metrics/BlockLength:
11
13
 
12
14
  Style/FrozenStringLiteralComment:
13
15
  EnforcedStyle: always
16
+
17
+ Performance/UnfreezeString:
18
+ Enabled: false
19
+
20
+ Gemspec/DeprecatedAttributeAssignment: # new in 1.30
21
+ Enabled: true
22
+ Gemspec/DevelopmentDependencies: # new in 1.44
23
+ Enabled: true
24
+ Gemspec/RequireMFA: # new in 1.23
25
+ Enabled: true
26
+ Layout/LineContinuationLeadingSpace: # new in 1.31
27
+ Enabled: true
28
+ Layout/LineContinuationSpacing: # new in 1.31
29
+ Enabled: true
30
+ Layout/LineEndStringConcatenationIndentation: # new in 1.18
31
+ Enabled: true
32
+ Layout/SpaceBeforeBrackets: # new in 1.7
33
+ Enabled: true
34
+ Lint/AmbiguousAssignment: # new in 1.7
35
+ Enabled: true
36
+ Lint/AmbiguousOperatorPrecedence: # new in 1.21
37
+ Enabled: true
38
+ Lint/AmbiguousRange: # new in 1.19
39
+ Enabled: true
40
+ Lint/ConstantOverwrittenInRescue: # new in 1.31
41
+ Enabled: true
42
+ Lint/DeprecatedConstants: # new in 1.8
43
+ Enabled: true
44
+ Lint/DuplicateBranch: # new in 1.3
45
+ Enabled: true
46
+ Lint/DuplicateMagicComment: # new in 1.37
47
+ Enabled: true
48
+ Lint/DuplicateMatchPattern: # new in 1.50
49
+ Enabled: true
50
+ Lint/DuplicateRegexpCharacterClassElement: # new in 1.1
51
+ Enabled: true
52
+ Lint/EmptyBlock: # new in 1.1
53
+ Enabled: true
54
+ Lint/EmptyClass: # new in 1.3
55
+ Enabled: true
56
+ Style/RedundantEach: # new in 1.38
57
+ Enabled: true
58
+ Style/RedundantHeredocDelimiterQuotes: # new in 1.45
59
+ Enabled: true
60
+ Style/RedundantInitialize: # new in 1.27
61
+ Enabled: true
62
+ Style/RedundantLineContinuation: # new in 1.49
63
+ Enabled: true
64
+ Style/RedundantSelfAssignmentBranch: # new in 1.19
65
+ Enabled: true
66
+ Style/RedundantStringEscape: # new in 1.37
67
+ Enabled: true
68
+ Style/SelectByRegexp: # new in 1.22
69
+ Enabled: true
70
+ Style/StringChars: # new in 1.12
71
+ Enabled: true
72
+ Style/SwapValues: # new in 1.1
73
+ Enabled: true
74
+ Style/NumberedParametersLimit: # new in 1.22
75
+ Enabled: true
76
+ Style/ObjectThen: # new in 1.28
77
+ Enabled: true
78
+ Style/OpenStructUse: # new in 1.23
79
+ Enabled: true
80
+ Style/OperatorMethodCall: # new in 1.37
81
+ Enabled: true
82
+ Style/QuotedSymbols: # new in 1.16
83
+ Enabled: true
84
+ Style/RedundantArgument: # new in 1.4
85
+ Enabled: true
86
+ Style/RedundantConstantBase: # new in 1.40
87
+ Enabled: true
88
+ Style/RedundantDoubleSplatHashBraces: # new in 1.41
89
+ Enabled: true
90
+ Style/MapCompactWithConditionalBlock: # new in 1.30
91
+ Enabled: true
92
+ Style/MapToHash: # new in 1.24
93
+ Enabled: true
94
+ Style/MapToSet: # new in 1.42
95
+ Enabled: true
96
+ Style/MinMaxComparison: # new in 1.42
97
+ Enabled: true
98
+ Style/MultilineInPatternThen: # new in 1.16
99
+ Enabled: true
100
+ Style/NegatedIfElseCondition: # new in 1.2
101
+ Enabled: true
102
+ Style/NestedFileDirname: # new in 1.26
103
+ Enabled: true
104
+ Style/NilLambda: # new in 1.3
105
+ Enabled: true
106
+ Style/NumberedParameters: # new in 1.22
107
+ Enabled: true
108
+ Style/EnvHome: # new in 1.29
109
+ Enabled: true
110
+ Style/FetchEnvVar: # new in 1.28
111
+ Enabled: true
112
+ Style/FileEmpty: # new in 1.48
113
+ Enabled: true
114
+ Style/FileRead: # new in 1.24
115
+ Enabled: true
116
+ Style/FileWrite: # new in 1.24
117
+ Enabled: true
118
+ Style/HashConversion: # new in 1.10
119
+ Enabled: true
120
+ Style/HashExcept: # new in 1.7
121
+ Enabled: true
122
+ Style/IfWithBooleanLiteralBranches: # new in 1.9
123
+ Enabled: true
124
+ Style/InPatternThen: # new in 1.16
125
+ Enabled: true
126
+ Style/MagicCommentFormat: # new in 1.35
127
+ Enabled: true
128
+ Style/ArgumentsForwarding: # new in 1.1
129
+ Enabled: true
130
+ Style/ArrayIntersect: # new in 1.40
131
+ Enabled: true
132
+ Style/CollectionCompact: # new in 1.2
133
+ Enabled: true
134
+ Style/ComparableClamp: # new in 1.44
135
+ Enabled: true
136
+ Style/ConcatArrayLiterals: # new in 1.41
137
+ Enabled: true
138
+ Style/DataInheritance: # new in 1.49
139
+ Enabled: true
140
+ Style/DirEmpty: # new in 1.48
141
+ Enabled: true
142
+ Style/DocumentDynamicEvalDefinition: # new in 1.1
143
+ Enabled: true
144
+ Style/EmptyHeredoc: # new in 1.32
145
+ Enabled: true
146
+ Style/EndlessMethod: # new in 1.8
147
+ Enabled: true
148
+ Lint/ToEnumArguments: # new in 1.1
149
+ Enabled: true
150
+ Lint/TripleQuotes: # new in 1.9
151
+ Enabled: true
152
+ Lint/UnexpectedBlockArity: # new in 1.5
153
+ Enabled: true
154
+ Lint/UnmodifiedReduceAccumulator: # new in 1.1
155
+ Enabled: true
156
+ Lint/UselessRescue: # new in 1.43
157
+ Enabled: true
158
+ Lint/UselessRuby2Keywords: # new in 1.23
159
+ Enabled: true
160
+ Metrics/CollectionLiteralLength: # new in 1.47
161
+ Enabled: true
162
+ Naming/BlockForwarding: # new in 1.24
163
+ Enabled: true
164
+ Security/CompoundHash: # new in 1.28
165
+ Enabled: true
166
+ Security/IoMethods: # new in 1.22
167
+ Enabled: true
168
+ Lint/EmptyInPattern: # new in 1.16
169
+ Enabled: true
170
+ Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
171
+ Enabled: true
172
+ Lint/LambdaWithoutLiteralBlock: # new in 1.8
173
+ Enabled: true
174
+ Lint/NoReturnInBeginEndBlocks: # new in 1.2
175
+ Enabled: true
176
+ Lint/NonAtomicFileOperation: # new in 1.31
177
+ Enabled: true
178
+ Lint/NumberedParameterAssignment: # new in 1.9
179
+ Enabled: true
180
+ Lint/OrAssignmentToConstant: # new in 1.9
181
+ Enabled: true
182
+ Lint/RedundantDirGlobSort: # new in 1.8
183
+ Enabled: true
184
+ Lint/RefinementImportMethods: # new in 1.27
185
+ Enabled: true
186
+ Lint/RequireRangeParentheses: # new in 1.32
187
+ Enabled: true
188
+ Lint/RequireRelativeSelfPath: # new in 1.22
189
+ Enabled: true
190
+ Lint/SymbolConversion: # new in 1.9
191
+ Enabled: true
192
+
193
+ Performance/AncestorsInclude: # new in 1.7
194
+ Enabled: true
195
+ Performance/BigDecimalWithNumericArgument: # new in 1.7
196
+ Enabled: true
197
+ Performance/BlockGivenWithExplicitBlock: # new in 1.9
198
+ Enabled: true
199
+ Performance/CollectionLiteralInLoop: # new in 1.8
200
+ Enabled: true
201
+ Performance/ConcurrentMonotonicTime: # new in 1.12
202
+ Enabled: true
203
+ Performance/ConstantRegexp: # new in 1.9
204
+ Enabled: true
205
+ Performance/MapCompact: # new in 1.11
206
+ Enabled: true
207
+ Performance/MethodObjectAsBlock: # new in 1.9
208
+ Enabled: true
209
+ Performance/RedundantEqualityComparisonBlock: # new in 1.10
210
+ Enabled: true
211
+ Performance/RedundantSortBlock: # new in 1.7
212
+ Enabled: true
213
+ Performance/RedundantSplitRegexpArgument: # new in 1.10
214
+ Enabled: true
215
+ Performance/RedundantStringChars: # new in 1.7
216
+ Enabled: true
217
+ Performance/ReverseFirst: # new in 1.7
218
+ Enabled: true
219
+ Performance/SortReverse: # new in 1.7
220
+ Enabled: true
221
+ Performance/Squeeze: # new in 1.7
222
+ Enabled: true
223
+ Performance/StringIdentifierArgument: # new in 1.13
224
+ Enabled: true
225
+ Performance/StringInclude: # new in 1.7
226
+ Enabled: true
227
+ Performance/Sum: # new in 1.8
228
+ Enabled: true
data/.rubocop_todo.yml CHANGED
@@ -27,7 +27,7 @@ Lint/UselessAssignment:
27
27
  # Offense count: 36
28
28
  # Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
29
29
  # URISchemes: http, https
30
- Metrics/LineLength:
30
+ Layout/LineLength:
31
31
  Max: 122
32
32
 
33
33
  # Offense count: 1
data/CHANGELOG.md CHANGED
@@ -75,7 +75,7 @@ Features:
75
75
 
76
76
  Features:
77
77
 
78
- - Remove sort responsability from compact_index
78
+ - Remove sort responsibility from compact_index
79
79
  - Change interface for versions_file in order to receive sorted gems
80
80
 
81
81
 
@@ -123,7 +123,7 @@ Bugfixes:
123
123
 
124
124
  Bugfixes:
125
125
 
126
- - Drop unecessary dependencies
126
+ - Drop unnecessary dependencies
127
127
  - Remove unused files imported on V0.1.0
128
128
 
129
129
  ## 0.4.0 (July 10, 2015)
data/Gemfile CHANGED
@@ -5,11 +5,12 @@ source "https://rubygems.org"
5
5
  # Specify your gem's dependencies in compact_index.gemspec
6
6
  gemspec
7
7
 
8
- group :documentation do
8
+ group :documentation, :optional => true do
9
9
  gem "redcarpet", "~> 3.5"
10
10
  gem "yard", "~> 0.9"
11
11
  end
12
12
 
13
13
  group :development do
14
- gem "rubocop", "~> 0.49.0", :install_if => lambda { RUBY_VERSION >= "2.0" }
14
+ gem "rubocop", "~> 1.50.2"
15
+ gem "rubocop-performance", :require => false
15
16
  end
data/Gemfile.lock CHANGED
@@ -1,55 +1,70 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- compact_index (0.14.0)
4
+ compact_index (0.15.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- ast (2.4.0)
10
- diff-lcs (1.3)
11
- parallel (1.19.1)
12
- parser (2.7.1.1)
13
- ast (~> 2.4.0)
14
- powerpack (0.1.2)
15
- rainbow (2.2.2)
16
- rake
17
- rake (13.0.1)
18
- redcarpet (3.5.1)
19
- rspec (3.9.0)
20
- rspec-core (~> 3.9.0)
21
- rspec-expectations (~> 3.9.0)
22
- rspec-mocks (~> 3.9.0)
23
- rspec-core (3.9.1)
24
- rspec-support (~> 3.9.1)
25
- rspec-expectations (3.9.1)
9
+ ast (2.4.2)
10
+ diff-lcs (1.5.0)
11
+ json (2.7.1)
12
+ json (2.7.1-java)
13
+ parallel (1.23.0)
14
+ parser (3.2.2.1)
15
+ ast (~> 2.4.1)
16
+ rainbow (3.1.1)
17
+ rake (13.0.6)
18
+ redcarpet (3.6.0)
19
+ regexp_parser (2.8.0)
20
+ rexml (3.2.5)
21
+ rspec (3.12.0)
22
+ rspec-core (~> 3.12.0)
23
+ rspec-expectations (~> 3.12.0)
24
+ rspec-mocks (~> 3.12.0)
25
+ rspec-core (3.12.2)
26
+ rspec-support (~> 3.12.0)
27
+ rspec-expectations (3.12.3)
26
28
  diff-lcs (>= 1.2.0, < 2.0)
27
- rspec-support (~> 3.9.0)
28
- rspec-mocks (3.9.1)
29
+ rspec-support (~> 3.12.0)
30
+ rspec-mocks (3.12.5)
29
31
  diff-lcs (>= 1.2.0, < 2.0)
30
- rspec-support (~> 3.9.0)
31
- rspec-support (3.9.2)
32
- rubocop (0.49.1)
32
+ rspec-support (~> 3.12.0)
33
+ rspec-support (3.12.0)
34
+ rubocop (1.50.2)
35
+ json (~> 2.3)
33
36
  parallel (~> 1.10)
34
- parser (>= 2.3.3.1, < 3.0)
35
- powerpack (~> 0.1)
36
- rainbow (>= 1.99.1, < 3.0)
37
+ parser (>= 3.2.0.0)
38
+ rainbow (>= 2.2.2, < 4.0)
39
+ regexp_parser (>= 1.8, < 3.0)
40
+ rexml (>= 3.2.5, < 4.0)
41
+ rubocop-ast (>= 1.28.0, < 2.0)
37
42
  ruby-progressbar (~> 1.7)
38
- unicode-display_width (~> 1.0, >= 1.0.1)
39
- ruby-progressbar (1.10.1)
40
- unicode-display_width (1.7.0)
41
- yard (0.9.24)
43
+ unicode-display_width (>= 2.4.0, < 3.0)
44
+ rubocop-ast (1.28.0)
45
+ parser (>= 3.2.1.0)
46
+ rubocop-performance (1.16.0)
47
+ rubocop (>= 1.7.0, < 2.0)
48
+ rubocop-ast (>= 0.4.0)
49
+ ruby-progressbar (1.13.0)
50
+ unicode-display_width (2.4.2)
51
+ yard (0.9.34)
42
52
 
43
53
  PLATFORMS
54
+ arm64-darwin
55
+ java
44
56
  ruby
57
+ x86_64-darwin
58
+ x86_64-linux
45
59
 
46
60
  DEPENDENCIES
47
61
  compact_index!
48
62
  rake (~> 13.0)
49
63
  redcarpet (~> 3.5)
50
64
  rspec (~> 3)
51
- rubocop (~> 0.49.0)
65
+ rubocop (~> 1.50.2)
66
+ rubocop-performance
52
67
  yard (~> 0.9)
53
68
 
54
69
  BUNDLED WITH
55
- 2.1.4
70
+ 2.4.12
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Build Status](https://travis-ci.org/rubygems/compact_index.svg)](https://travis-ci.org/rubygems/compact_index)
1
+ [![Ruby CI](https://github.com/rubygems/compact_index/actions/workflows/ci.yml/badge.svg)](https://github.com/rubygems/compact_index/actions/workflows/ci.yml)
2
2
 
3
3
  # CompactIndex
4
4
 
@@ -29,7 +29,7 @@ CompactIndex.names(%W(a_test b_test c_test))
29
29
 
30
30
  ### `/versions`
31
31
 
32
- The body of this endpoint can be rendered calling the `CompactIndex.versions` method. It receives two paremeters: a `CompactIndex::VersionsFile` object and a set of extra gems that aren't in the file yet. The gems lists should be ordered consistently by the user.
32
+ The body of this endpoint can be rendered calling the `CompactIndex.versions` method. It receives two parameters: a `CompactIndex::VersionsFile` object and a set of extra gems that aren't in the file yet. The gems lists should be ordered consistently by the user.
33
33
 
34
34
  ```ruby
35
35
  gem 'compact_index'
data/Rakefile CHANGED
@@ -17,7 +17,7 @@ begin
17
17
  task :rubocop
18
18
  end
19
19
 
20
- task :default => [:rubocop, :spec]
20
+ task :default => %i[rubocop spec]
21
21
  rescue LoadError => e
22
22
  # rspec won't exist on production
23
23
  nil
data/bin/rake ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rake' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
12
+
13
+ bundle_binstub = File.expand_path("bundle", __dir__)
14
+
15
+ if File.file?(bundle_binstub)
16
+ if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
17
+ load(bundle_binstub)
18
+ else
19
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
20
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
21
+ end
22
+ end
23
+
24
+ require "rubygems"
25
+ require "bundler/setup"
26
+
27
+ load Gem.bin_path("rake", "rake")
data/bin/rubocop ADDED
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rubocop' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
12
+
13
+ bundle_binstub = File.expand_path("bundle", __dir__)
14
+
15
+ if File.file?(bundle_binstub)
16
+ if File.read(bundle_binstub, 300).include?("This file was generated by Bundler")
17
+ load(bundle_binstub)
18
+ else
19
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
20
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
21
+ end
22
+ end
23
+
24
+ require "rubygems"
25
+ require "bundler/setup"
26
+
27
+ load Gem.bin_path("rubocop", "rubocop")
@@ -1,7 +1,6 @@
1
- # coding: utf-8
2
1
  # frozen_string_literal: true
3
2
 
4
- lib = File.expand_path("../lib", __FILE__)
3
+ lib = File.expand_path("lib", __dir__)
5
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
5
  require "compact_index/version"
7
6
 
@@ -22,4 +21,7 @@ Gem::Specification.new do |spec|
22
21
 
23
22
  spec.add_development_dependency "rake", "~> 13.0"
24
23
  spec.add_development_dependency "rspec", "~> 3"
24
+
25
+ spec.metadata["rubygems_mfa_required"] = "true"
26
+ spec.required_ruby_version = ">= 3.0.0"
25
27
  end
@@ -7,7 +7,7 @@ Sequel.migration do
7
7
  String :name
8
8
  String :md5
9
9
 
10
- index [:name], :name => :index_checksums_on_name, :unqiue => true
10
+ index [:name], :name => :index_checksums_on_name, :unique => true
11
11
  end
12
12
  end
13
13
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CompactIndex
4
- Dependency = Struct.new(:gem, :version, :platform, :checksum) do
4
+ Dependency = Struct.new(:gem, :version, :platform, :checksum) do # rubocop:disable Lint/StructNewOverride
5
5
  def version_and_platform
6
6
  if platform.nil? || platform == "ruby"
7
- version.dup
7
+ version
8
8
  else
9
9
  "#{version}-#{platform}"
10
10
  end
@@ -1,12 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CompactIndex
4
- # rubocop:disable Metrics/BlockLength
5
4
  GemVersion = Struct.new(:number, :platform, :checksum, :info_checksum,
6
- :dependencies, :ruby_version, :rubygems_version) do
5
+ :dependencies, :ruby_version, :rubygems_version) do
7
6
  def number_and_platform
8
7
  if platform.nil? || platform == "ruby"
9
- number.dup
8
+ number
10
9
  else
11
10
  "#{number}-#{platform}"
12
11
  end
@@ -23,7 +22,7 @@ module CompactIndex
23
22
  end
24
23
 
25
24
  def to_line
26
- line = number_and_platform.dup << " " << deps_line << "|checksum:#{checksum}"
25
+ line = "#{number_and_platform} #{deps_line}|checksum:#{checksum}"
27
26
  line << ",ruby:#{ruby_version_line}" if ruby_version && ruby_version != ">= 0"
28
27
  line << ",rubygems:#{rubygems_version_line}" if rubygems_version && rubygems_version != ">= 0"
29
28
  line
@@ -41,13 +40,16 @@ module CompactIndex
41
40
 
42
41
  def deps_line
43
42
  return "" if dependencies.nil?
43
+
44
44
  dependencies.map do |d|
45
45
  [d[:gem], join_multiple(d.version_and_platform)].join(":")
46
46
  end.join(",")
47
47
  end
48
48
 
49
49
  def join_multiple(requirements)
50
- requirements.split(", ").sort.join("&")
50
+ requirements = requirements.split(", ")
51
+ requirements.sort!
52
+ requirements.join("&")
51
53
  end
52
54
  end
53
55
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CompactIndex
4
- VERSION = "0.14.0".freeze
4
+ VERSION = "0.15.0"
5
5
  end
@@ -24,11 +24,11 @@ module CompactIndex
24
24
  created_at_header(@path) || Time.at(0).to_datetime
25
25
  end
26
26
 
27
- def create(gems, ts = Time.now.iso8601)
27
+ def create(gems, timestamp = Time.now.iso8601)
28
28
  gems.sort!
29
29
 
30
30
  File.open(@path, "w") do |io|
31
- io.write "created_at: #{ts}\n---\n"
31
+ io.write "created_at: #{timestamp}\n---\n"
32
32
  io.write gem_lines(gems)
33
33
  end
34
34
  end
@@ -36,10 +36,10 @@ module CompactIndex
36
36
  private
37
37
 
38
38
  def gem_lines(gems)
39
- gems.reduce("".dup) do |lines, gem|
39
+ gems.reduce(+"") do |lines, gem|
40
40
  version_numbers = gem.versions.map(&:number_and_platform).join(",")
41
41
  lines << gem.name <<
42
- " ".freeze << version_numbers <<
42
+ " " << version_numbers <<
43
43
  " #{gem.versions.last.info_checksum}\n"
44
44
  end
45
45
  end
data/lib/compact_index.rb CHANGED
@@ -1,16 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "compact_index/gem"
4
- require "compact_index/gem_version"
5
- require "compact_index/dependency"
3
+ require_relative "compact_index/gem"
4
+ require_relative "compact_index/gem_version"
5
+ require_relative "compact_index/dependency"
6
6
 
7
- require "compact_index/version"
8
- require "compact_index/versions_file"
9
- require "compact_index/ext/date"
7
+ require_relative "compact_index/version"
8
+ require_relative "compact_index/versions_file"
10
9
 
11
10
  module CompactIndex
12
11
  # Formats a list of gem names, to be used on the /names endpoint.
13
- # @param gem_names [Array] array with gem names to be formated, in alphabetical order
12
+ # @param gem_names [Array] array with gem names to be formatted, in alphabetical order
14
13
  # @return [String] names on the specified format for new index /names endpoint. Example:
15
14
  # ```ruby
16
15
  # ---
@@ -19,7 +18,7 @@ module CompactIndex
19
18
  # other-gem
20
19
  # ```
21
20
  def self.names(gem_names)
22
- String.new("---\n") << gem_names.join("\n") << "\n"
21
+ gem_names.join("\n").prepend("---\n") << "\n"
23
22
  end
24
23
 
25
24
  # Returns the versions file content argumented with some extra gems
@@ -38,7 +37,7 @@ module CompactIndex
38
37
  # ])
39
38
  # ]
40
39
  # ```
41
- # @return [String] The formated output. Example:
40
+ # @return [String] The formatted output. Example:
42
41
  # ```ruby
43
42
  # created_at: 2001-01-01T01:01:01-01:01
44
43
  # ---
@@ -64,14 +63,14 @@ module CompactIndex
64
63
  # ]
65
64
  # ```
66
65
  #
67
- # @return [String] The formated output. Example:
66
+ # @return [String] The formatted output. Example:
68
67
  # ```ruby
69
68
  # --
70
69
  # 1.0.1 requirement:<2.0&>1.0|checksum:abc1
71
70
  # 1.0.2 requirement:<2.0&>1.0,requirement2:=1.1|checksum:abc2,ruby:>1.0,rubygems:>2.0
72
71
  # ```
73
72
  def self.info(versions)
74
- versions.inject("---\n".dup) do |output, version|
73
+ versions.inject(+"---\n") do |output, version|
75
74
  output << version.to_line << "\n"
76
75
  end
77
76
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: compact_index
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felipe Tanus
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-03 00:00:00.000000000 Z
11
+ date: 2023-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -45,12 +45,20 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
+ - ".github/FUNDING.yml"
49
+ - ".github/config.yml"
50
+ - ".github/dependabot.yml"
51
+ - ".github/pull_request_template.md"
52
+ - ".github/workflows/push_gem.yml"
53
+ - ".github/workflows/rubygems.yml"
54
+ - ".github/workflows/scorecards.yml"
55
+ - ".github/workflows/spell.yml"
56
+ - ".github/workflows/ubuntu-lint.yml"
48
57
  - ".gitignore"
49
58
  - ".rspec"
50
59
  - ".rubocop-bundler.yml"
51
60
  - ".rubocop.yml"
52
61
  - ".rubocop_todo.yml"
53
- - ".travis.yml"
54
62
  - ".yardopts"
55
63
  - CHANGELOG.md
56
64
  - CODE_OF_CONDUCT.md
@@ -60,6 +68,8 @@ files:
60
68
  - README.md
61
69
  - Rakefile
62
70
  - bin/console
71
+ - bin/rake
72
+ - bin/rubocop
63
73
  - bin/setup
64
74
  - compact_index.gemspec
65
75
  - db/migrations/01_rubygems_org_schema_dump.rb
@@ -71,7 +81,6 @@ files:
71
81
  - db/migrations/07_add_checksum_to_versions.rb
72
82
  - lib/compact_index.rb
73
83
  - lib/compact_index/dependency.rb
74
- - lib/compact_index/ext/date.rb
75
84
  - lib/compact_index/gem.rb
76
85
  - lib/compact_index/gem_version.rb
77
86
  - lib/compact_index/version.rb
@@ -79,7 +88,8 @@ files:
79
88
  homepage: https://github.com/rubygems/compact_index
80
89
  licenses:
81
90
  - MIT
82
- metadata: {}
91
+ metadata:
92
+ rubygems_mfa_required: 'true'
83
93
  post_install_message:
84
94
  rdoc_options: []
85
95
  require_paths:
@@ -88,14 +98,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
98
  requirements:
89
99
  - - ">="
90
100
  - !ruby/object:Gem::Version
91
- version: '0'
101
+ version: 3.0.0
92
102
  required_rubygems_version: !ruby/object:Gem::Requirement
93
103
  requirements:
94
104
  - - ">="
95
105
  - !ruby/object:Gem::Version
96
106
  version: '0'
97
107
  requirements: []
98
- rubygems_version: 3.2.3
108
+ rubygems_version: 3.4.10
99
109
  signing_key:
100
110
  specification_version: 4
101
111
  summary: Backend for compact index
data/.travis.yml DELETED
@@ -1,17 +0,0 @@
1
- language: ruby
2
-
3
- cache:
4
- bundler: true
5
- directories:
6
- - vendor/cache
7
-
8
- bundler_args: --jobs=3 --retry=3
9
-
10
- script:
11
- - bundle exec rake
12
-
13
- rvm:
14
- - "2.7.1"
15
- - "2.6.6"
16
- - "2.5.8"
17
- - "2.4.10"
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "date"
4
-
5
- # Ruby 1.8.7 makes Time#to_datetime private, but we need it
6
- unless Time.public_instance_methods.include? :to_datetime
7
- class Time
8
- public :to_datetime
9
- end
10
- end