skippy 0.5.1.a → 0.5.2.a
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.
- checksums.yaml +4 -4
- data/.github/workflows/tests.yaml +48 -0
- data/.rubocop.yml +200 -119
- data/Gemfile +32 -3
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/Rakefile +6 -5
- data/lib/skippy/installer/git.rb +1 -1
- data/lib/skippy/lib_source.rb +3 -0
- data/lib/skippy/library_manager.rb +4 -1
- data/lib/skippy/module_manager.rb +1 -0
- data/lib/skippy/os/common.rb +7 -1
- data/lib/skippy/os/win.rb +4 -4
- data/lib/skippy/sorted_set.rb +5 -0
- data/lib/skippy/version.rb +1 -1
- data/skippy.gemspec +1 -5
- metadata +19 -66
- data/.appveyor.yml +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 423e62ba2d2d86ded8b930c691abb77aaa60edc5e8b09d87503a07ccecaba82e
|
4
|
+
data.tar.gz: 4d6b05eeef6270d4318207a94139d8d23ce24c60cc84bba24b2456413ed3ba49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 548ceecce83de44a42adbd25e37e5393ff17982dd7fe4b2992545627d4234ec5613a06c3a9a0536fb25d2c648f6947cb14044f1831772b99b65cccfb58686ab0
|
7
|
+
data.tar.gz: ef603bdd88ca617da508651cd7700c376e86629f47d6808718dab0b8f6067d55eb645f698f1adfa6fab907375f0abdca3007f4d7059f7a401ab4bd07d61bc265
|
@@ -0,0 +1,48 @@
|
|
1
|
+
name: Tests
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ main, master, dev/github-actions ]
|
6
|
+
paths-ignore:
|
7
|
+
- '**.md'
|
8
|
+
pull_request:
|
9
|
+
paths-ignore:
|
10
|
+
- '**.md'
|
11
|
+
workflow_dispatch:
|
12
|
+
|
13
|
+
permissions:
|
14
|
+
contents: read # to fetch code (actions/checkout)
|
15
|
+
|
16
|
+
jobs:
|
17
|
+
tests:
|
18
|
+
name: >-
|
19
|
+
OS ${{ matrix.os }}, Ruby ${{ matrix.ruby }}
|
20
|
+
env:
|
21
|
+
CI: true
|
22
|
+
|
23
|
+
runs-on: ${{ matrix.os }}
|
24
|
+
if: |
|
25
|
+
!( contains(github.event.pull_request.title, '[ci skip]')
|
26
|
+
|| contains(github.event.pull_request.title, '[skip ci]'))
|
27
|
+
strategy:
|
28
|
+
fail-fast: false
|
29
|
+
matrix:
|
30
|
+
os: [ macos-12, windows-2022 ]
|
31
|
+
ruby: [ 2.5, 2.7, 3.1 ]
|
32
|
+
|
33
|
+
steps:
|
34
|
+
- name: Checkout source
|
35
|
+
uses: actions/checkout@v3
|
36
|
+
with:
|
37
|
+
submodules: recursive
|
38
|
+
|
39
|
+
- name: Setup Ruby
|
40
|
+
uses: ruby/setup-ruby-pkgs@v1
|
41
|
+
with:
|
42
|
+
ruby-version: ${{ matrix.ruby }}
|
43
|
+
bundler-cache: true
|
44
|
+
timeout-minutes: 10
|
45
|
+
|
46
|
+
- name: Run tests
|
47
|
+
timeout-minutes: 10
|
48
|
+
run: bundle exec rake test
|
data/.rubocop.yml
CHANGED
@@ -5,14 +5,207 @@ require:
|
|
5
5
|
- rubocop-rake
|
6
6
|
|
7
7
|
AllCops:
|
8
|
+
DisplayCopNames: true
|
9
|
+
DisplayStyleGuide: true
|
10
|
+
ExtraDetails: true
|
11
|
+
TargetRubyVersion: 2.5
|
8
12
|
Exclude:
|
9
13
|
- 'bin/**/*'
|
10
14
|
- 'exe/**/*'
|
11
15
|
- 'fixtures/**/*'
|
12
16
|
- 'tmp/**/*'
|
13
17
|
- 'vendor/**/*'
|
14
|
-
DisplayCopNames: true
|
15
18
|
|
19
|
+
################################################################################
|
20
|
+
# Enabling new cops:
|
21
|
+
|
22
|
+
Gemspec/DeprecatedAttributeAssignment: # new in 1.30
|
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
|
+
Lint/ConstantOverwrittenInRescue: # new in 1.31
|
31
|
+
Enabled: true
|
32
|
+
Lint/DuplicateMagicComment: # new in 1.37
|
33
|
+
Enabled: true
|
34
|
+
Lint/NonAtomicFileOperation: # new in 1.31
|
35
|
+
Enabled: true
|
36
|
+
Lint/RefinementImportMethods: # new in 1.27
|
37
|
+
Enabled: true
|
38
|
+
Lint/RequireRangeParentheses: # new in 1.32
|
39
|
+
Enabled: true
|
40
|
+
Lint/UselessRuby2Keywords: # new in 1.23
|
41
|
+
Enabled: true
|
42
|
+
Naming/BlockForwarding: # new in 1.24
|
43
|
+
Enabled: true
|
44
|
+
Security/CompoundHash: # new in 1.28
|
45
|
+
Enabled: true
|
46
|
+
Style/ArrayIntersect: # new in 1.40
|
47
|
+
Enabled: true
|
48
|
+
Style/EmptyHeredoc: # new in 1.32
|
49
|
+
Enabled: true
|
50
|
+
Style/EnvHome: # new in 1.29
|
51
|
+
Enabled: true
|
52
|
+
Style/FetchEnvVar: # new in 1.28
|
53
|
+
Enabled: true
|
54
|
+
Style/FileRead: # new in 1.24
|
55
|
+
Enabled: true
|
56
|
+
Style/FileWrite: # new in 1.24
|
57
|
+
Enabled: true
|
58
|
+
Style/MagicCommentFormat: # new in 1.35
|
59
|
+
Enabled: true
|
60
|
+
Style/MapCompactWithConditionalBlock: # new in 1.30
|
61
|
+
Enabled: true
|
62
|
+
Style/MapToHash: # new in 1.24
|
63
|
+
Enabled: true
|
64
|
+
Style/NestedFileDirname: # new in 1.26
|
65
|
+
Enabled: true
|
66
|
+
Style/ObjectThen: # new in 1.28
|
67
|
+
Enabled: true
|
68
|
+
Style/OpenStructUse: # new in 1.23
|
69
|
+
Enabled: true
|
70
|
+
Style/OperatorMethodCall: # new in 1.37
|
71
|
+
Enabled: true
|
72
|
+
Style/RedundantConstantBase: # new in 1.40
|
73
|
+
Enabled: true
|
74
|
+
Style/RedundantEach: # new in 1.38
|
75
|
+
Enabled: true
|
76
|
+
Style/RedundantInitialize: # new in 1.27
|
77
|
+
Enabled: true
|
78
|
+
Style/RedundantStringEscape: # new in 1.37
|
79
|
+
Enabled: true
|
80
|
+
|
81
|
+
Layout/LineEndStringConcatenationIndentation: # new in 1.18
|
82
|
+
Enabled: true
|
83
|
+
Layout/SpaceBeforeBrackets: # new in 1.7
|
84
|
+
Enabled: true
|
85
|
+
Lint/AmbiguousAssignment: # new in 1.7
|
86
|
+
Enabled: true
|
87
|
+
Lint/AmbiguousOperatorPrecedence: # new in 1.21
|
88
|
+
Enabled: true
|
89
|
+
Lint/AmbiguousRange: # new in 1.19
|
90
|
+
Enabled: true
|
91
|
+
Lint/DeprecatedConstants: # new in 1.8
|
92
|
+
Enabled: true
|
93
|
+
Lint/DuplicateBranch: # new in 1.3
|
94
|
+
Enabled: true
|
95
|
+
Lint/DuplicateRegexpCharacterClassElement: # new in 1.1
|
96
|
+
Enabled: true
|
97
|
+
Lint/EmptyBlock: # new in 1.1
|
98
|
+
Enabled: true
|
99
|
+
Lint/EmptyClass: # new in 1.3
|
100
|
+
Enabled: true
|
101
|
+
Lint/EmptyInPattern: # new in 1.16
|
102
|
+
Enabled: true
|
103
|
+
Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
|
104
|
+
Enabled: true
|
105
|
+
Lint/LambdaWithoutLiteralBlock: # new in 1.8
|
106
|
+
Enabled: true
|
107
|
+
Lint/NoReturnInBeginEndBlocks: # new in 1.2
|
108
|
+
Enabled: true
|
109
|
+
Lint/NumberedParameterAssignment: # new in 1.9
|
110
|
+
Enabled: true
|
111
|
+
Lint/OrAssignmentToConstant: # new in 1.9
|
112
|
+
Enabled: true
|
113
|
+
Lint/RedundantDirGlobSort: # new in 1.8
|
114
|
+
Enabled: true
|
115
|
+
Lint/RequireRelativeSelfPath: # new in 1.22
|
116
|
+
Enabled: true
|
117
|
+
Lint/SymbolConversion: # new in 1.9
|
118
|
+
Enabled: true
|
119
|
+
Lint/ToEnumArguments: # new in 1.1
|
120
|
+
Enabled: true
|
121
|
+
Lint/TripleQuotes: # new in 1.9
|
122
|
+
Enabled: true
|
123
|
+
Lint/UnexpectedBlockArity: # new in 1.5
|
124
|
+
Enabled: true
|
125
|
+
Lint/UnmodifiedReduceAccumulator: # new in 1.1
|
126
|
+
Enabled: true
|
127
|
+
Security/IoMethods: # new in 1.22
|
128
|
+
Enabled: true
|
129
|
+
Style/ArgumentsForwarding: # new in 1.1
|
130
|
+
Enabled: true
|
131
|
+
Style/CollectionCompact: # new in 1.2
|
132
|
+
Enabled: true
|
133
|
+
Style/DocumentDynamicEvalDefinition: # new in 1.1
|
134
|
+
Enabled: true
|
135
|
+
Style/EndlessMethod: # new in 1.8
|
136
|
+
Enabled: true
|
137
|
+
Style/HashConversion: # new in 1.10
|
138
|
+
Enabled: true
|
139
|
+
Style/HashExcept: # new in 1.7
|
140
|
+
Enabled: true
|
141
|
+
Style/IfWithBooleanLiteralBranches: # new in 1.9
|
142
|
+
Enabled: true
|
143
|
+
Style/InPatternThen: # new in 1.16
|
144
|
+
Enabled: true
|
145
|
+
Style/MultilineInPatternThen: # new in 1.16
|
146
|
+
Enabled: true
|
147
|
+
Style/NegatedIfElseCondition: # new in 1.2
|
148
|
+
Enabled: true
|
149
|
+
Style/NilLambda: # new in 1.3
|
150
|
+
Enabled: true
|
151
|
+
Style/NumberedParameters: # new in 1.22
|
152
|
+
Enabled: true
|
153
|
+
Style/NumberedParametersLimit: # new in 1.22
|
154
|
+
Enabled: true
|
155
|
+
Style/QuotedSymbols: # new in 1.16
|
156
|
+
Enabled: true
|
157
|
+
Style/RedundantArgument: # new in 1.4
|
158
|
+
Enabled: true
|
159
|
+
Style/RedundantSelfAssignmentBranch: # new in 1.19
|
160
|
+
Enabled: true
|
161
|
+
Style/SelectByRegexp: # new in 1.22
|
162
|
+
Enabled: true
|
163
|
+
Style/StringChars: # new in 1.12
|
164
|
+
Enabled: true
|
165
|
+
Style/SwapValues: # new in 1.1
|
166
|
+
Enabled: true
|
167
|
+
|
168
|
+
Minitest/AssertionInLifecycleHook: # new in 0.10
|
169
|
+
Enabled: true
|
170
|
+
Minitest/AssertKindOf: # new in 0.10
|
171
|
+
Enabled: true
|
172
|
+
Minitest/AssertOutput: # new in 0.10
|
173
|
+
Enabled: true
|
174
|
+
Minitest/AssertPathExists: # new in 0.10
|
175
|
+
Enabled: true
|
176
|
+
Minitest/AssertSilent: # new in 0.10
|
177
|
+
Enabled: true
|
178
|
+
Minitest/LiteralAsActualArgument: # new in 0.10
|
179
|
+
Enabled: true
|
180
|
+
Minitest/RefuteInDelta: # new in 0.10
|
181
|
+
Enabled: true
|
182
|
+
Minitest/RefuteKindOf: # new in 0.10
|
183
|
+
Enabled: true
|
184
|
+
Minitest/RefutePathExists: # new in 0.10
|
185
|
+
Enabled: true
|
186
|
+
Minitest/TestMethodName: # new in 0.10
|
187
|
+
Enabled: true
|
188
|
+
Minitest/UnreachableAssertion: # new in 0.14
|
189
|
+
Enabled: true
|
190
|
+
Minitest/UnspecifiedException: # new in 0.10
|
191
|
+
Enabled: true
|
192
|
+
Minitest/AssertPredicate: # new in 0.18
|
193
|
+
Enabled: true
|
194
|
+
Minitest/AssertRaisesCompoundBody: # new in 0.21
|
195
|
+
Enabled: true
|
196
|
+
Minitest/AssertRaisesWithRegexpArgument: # new in 0.22
|
197
|
+
Enabled: true
|
198
|
+
Minitest/DuplicateTestRun: # new in 0.19
|
199
|
+
Enabled: true
|
200
|
+
Minitest/RefutePredicate: # new in 0.18
|
201
|
+
Enabled: true
|
202
|
+
Minitest/SkipEnsure: # new in 0.20
|
203
|
+
Enabled: true
|
204
|
+
Minitest/SkipWithoutReason: # new in 0.24
|
205
|
+
Enabled: true
|
206
|
+
|
207
|
+
################################################################################
|
208
|
+
# Overrides:
|
16
209
|
|
17
210
|
Layout/ArgumentAlignment:
|
18
211
|
EnforcedStyle: with_fixed_indentation
|
@@ -122,6 +315,9 @@ Style/IfUnlessModifier:
|
|
122
315
|
Style/ModuleFunction:
|
123
316
|
Enabled: false
|
124
317
|
|
318
|
+
Style/MultilineIfModifier:
|
319
|
+
Enabled: false
|
320
|
+
|
125
321
|
# Excluding some files that copies the Thor implementation.
|
126
322
|
# TODO: Investigate if Thor changed their implementation.
|
127
323
|
Style/OptionalBooleanParameter:
|
@@ -152,124 +348,9 @@ Minitest/AssertInDelta:
|
|
152
348
|
Minitest/AssertWithExpectedArgument:
|
153
349
|
Enabled: false
|
154
350
|
|
351
|
+
Minitest/EmptyLineBeforeAssertionMethods:
|
352
|
+
Enabled: false
|
353
|
+
|
155
354
|
# No such thing as too many assertions.
|
156
355
|
Minitest/MultipleAssertions:
|
157
356
|
Enabled: false
|
158
|
-
|
159
|
-
|
160
|
-
################################################################################
|
161
|
-
# Enabling new cops:
|
162
|
-
|
163
|
-
Gemspec/DateAssignment: # new in 1.10
|
164
|
-
Enabled: true
|
165
|
-
Layout/LineEndStringConcatenationIndentation: # new in 1.18
|
166
|
-
Enabled: true
|
167
|
-
Layout/SpaceBeforeBrackets: # new in 1.7
|
168
|
-
Enabled: true
|
169
|
-
Lint/AmbiguousAssignment: # new in 1.7
|
170
|
-
Enabled: true
|
171
|
-
Lint/AmbiguousOperatorPrecedence: # new in 1.21
|
172
|
-
Enabled: true
|
173
|
-
Lint/AmbiguousRange: # new in 1.19
|
174
|
-
Enabled: true
|
175
|
-
Lint/DeprecatedConstants: # new in 1.8
|
176
|
-
Enabled: true
|
177
|
-
Lint/DuplicateBranch: # new in 1.3
|
178
|
-
Enabled: true
|
179
|
-
Lint/DuplicateRegexpCharacterClassElement: # new in 1.1
|
180
|
-
Enabled: true
|
181
|
-
Lint/EmptyBlock: # new in 1.1
|
182
|
-
Enabled: true
|
183
|
-
Lint/EmptyClass: # new in 1.3
|
184
|
-
Enabled: true
|
185
|
-
Lint/EmptyInPattern: # new in 1.16
|
186
|
-
Enabled: true
|
187
|
-
Lint/IncompatibleIoSelectWithFiberScheduler: # new in 1.21
|
188
|
-
Enabled: true
|
189
|
-
Lint/LambdaWithoutLiteralBlock: # new in 1.8
|
190
|
-
Enabled: true
|
191
|
-
Lint/NoReturnInBeginEndBlocks: # new in 1.2
|
192
|
-
Enabled: true
|
193
|
-
Lint/NumberedParameterAssignment: # new in 1.9
|
194
|
-
Enabled: true
|
195
|
-
Lint/OrAssignmentToConstant: # new in 1.9
|
196
|
-
Enabled: true
|
197
|
-
Lint/RedundantDirGlobSort: # new in 1.8
|
198
|
-
Enabled: true
|
199
|
-
Lint/RequireRelativeSelfPath: # new in 1.22
|
200
|
-
Enabled: true
|
201
|
-
Lint/SymbolConversion: # new in 1.9
|
202
|
-
Enabled: true
|
203
|
-
Lint/ToEnumArguments: # new in 1.1
|
204
|
-
Enabled: true
|
205
|
-
Lint/TripleQuotes: # new in 1.9
|
206
|
-
Enabled: true
|
207
|
-
Lint/UnexpectedBlockArity: # new in 1.5
|
208
|
-
Enabled: true
|
209
|
-
Lint/UnmodifiedReduceAccumulator: # new in 1.1
|
210
|
-
Enabled: true
|
211
|
-
Security/IoMethods: # new in 1.22
|
212
|
-
Enabled: true
|
213
|
-
Style/ArgumentsForwarding: # new in 1.1
|
214
|
-
Enabled: true
|
215
|
-
Style/CollectionCompact: # new in 1.2
|
216
|
-
Enabled: true
|
217
|
-
Style/DocumentDynamicEvalDefinition: # new in 1.1
|
218
|
-
Enabled: true
|
219
|
-
Style/EndlessMethod: # new in 1.8
|
220
|
-
Enabled: true
|
221
|
-
Style/HashConversion: # new in 1.10
|
222
|
-
Enabled: true
|
223
|
-
Style/HashExcept: # new in 1.7
|
224
|
-
Enabled: true
|
225
|
-
Style/IfWithBooleanLiteralBranches: # new in 1.9
|
226
|
-
Enabled: true
|
227
|
-
Style/InPatternThen: # new in 1.16
|
228
|
-
Enabled: true
|
229
|
-
Style/MultilineInPatternThen: # new in 1.16
|
230
|
-
Enabled: true
|
231
|
-
Style/NegatedIfElseCondition: # new in 1.2
|
232
|
-
Enabled: true
|
233
|
-
Style/NilLambda: # new in 1.3
|
234
|
-
Enabled: true
|
235
|
-
Style/NumberedParameters: # new in 1.22
|
236
|
-
Enabled: true
|
237
|
-
Style/NumberedParametersLimit: # new in 1.22
|
238
|
-
Enabled: true
|
239
|
-
Style/QuotedSymbols: # new in 1.16
|
240
|
-
Enabled: true
|
241
|
-
Style/RedundantArgument: # new in 1.4
|
242
|
-
Enabled: true
|
243
|
-
Style/RedundantSelfAssignmentBranch: # new in 1.19
|
244
|
-
Enabled: true
|
245
|
-
Style/SelectByRegexp: # new in 1.22
|
246
|
-
Enabled: true
|
247
|
-
Style/StringChars: # new in 1.12
|
248
|
-
Enabled: true
|
249
|
-
Style/SwapValues: # new in 1.1
|
250
|
-
Enabled: true
|
251
|
-
|
252
|
-
Minitest/AssertionInLifecycleHook: # new in 0.10
|
253
|
-
Enabled: true
|
254
|
-
Minitest/AssertKindOf: # new in 0.10
|
255
|
-
Enabled: true
|
256
|
-
Minitest/AssertOutput: # new in 0.10
|
257
|
-
Enabled: true
|
258
|
-
Minitest/AssertPathExists: # new in 0.10
|
259
|
-
Enabled: true
|
260
|
-
Minitest/AssertSilent: # new in 0.10
|
261
|
-
Enabled: true
|
262
|
-
Minitest/LiteralAsActualArgument: # new in 0.10
|
263
|
-
Enabled: true
|
264
|
-
Minitest/RefuteInDelta: # new in 0.10
|
265
|
-
Enabled: true
|
266
|
-
Minitest/RefuteKindOf: # new in 0.10
|
267
|
-
Enabled: true
|
268
|
-
Minitest/RefutePathExists: # new in 0.10
|
269
|
-
Enabled: true
|
270
|
-
Minitest/TestMethodName: # new in 0.10
|
271
|
-
Enabled: true
|
272
|
-
Minitest/UnreachableAssertion: # new in 0.14
|
273
|
-
Enabled: true
|
274
|
-
Minitest/UnspecifiedException: # new in 0.10
|
275
|
-
Enabled: true
|
data/Gemfile
CHANGED
@@ -5,11 +5,40 @@ source 'https://rubygems.org'
|
|
5
5
|
# Specify your gem's dependencies in skippy.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
+
# Even if Bundler is told to install only one of these groups, it appear to
|
9
|
+
# process the gem requirements of all groups. This would cause Bundler to fail
|
10
|
+
# on CI builds where the Ruby version was older than what some of the gems in
|
11
|
+
# the skipped groups required. To work around that the groups are conditionally
|
12
|
+
# evaluated such that in CI environment only the minimal set of gems are
|
13
|
+
# processed by Bundler.
|
14
|
+
IS_CI_ENVIRONMENT = ENV.key?('CI')
|
15
|
+
|
8
16
|
group :development do
|
9
|
-
gem '
|
17
|
+
gem 'debase', '~> 0.2' # VSCode debugging
|
18
|
+
gem 'pry' # TODO: What was this used for?
|
19
|
+
gem 'ruby-debug-ide', '~> 0.7' # VSCode debugging
|
20
|
+
gem 'solargraph' # VSCode IDE support
|
21
|
+
end unless IS_CI_ENVIRONMENT
|
22
|
+
|
23
|
+
group :test do
|
24
|
+
gem 'minitest', '~> 5.15.0' # Regression in 5.16.0 causing failure on Ruby 2.7
|
25
|
+
gem 'minitest-reporters', '~> 1.5'
|
26
|
+
gem 'rake', '~> 13.0'
|
27
|
+
gem 'webmock', '~> 3.1'
|
28
|
+
end
|
29
|
+
|
30
|
+
group :integration_test do
|
31
|
+
gem 'aruba', '~> 2.0'
|
32
|
+
end unless IS_CI_ENVIRONMENT
|
33
|
+
|
34
|
+
# group :documentation do
|
35
|
+
# gem 'commonmarker', '~> 0.23'
|
36
|
+
# gem 'yard', '~> 0.9'
|
37
|
+
# end unless IS_CI_ENVIRONMENT
|
38
|
+
|
39
|
+
group :analysis do
|
10
40
|
gem 'rubocop', '~> 1.0', require: false
|
11
41
|
gem 'rubocop-minitest', '~> 0.15', require: false
|
12
42
|
gem 'rubocop-performance', '~> 1.0', require: false
|
13
43
|
gem 'rubocop-rake', '~> 0.6', require: false
|
14
|
-
|
15
|
-
end
|
44
|
+
end unless IS_CI_ENVIRONMENT
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Skippy
|
2
2
|
|
3
|
-
[](https://badge.fury.io/rb/skippy)
|
3
|
+
[](https://badge.fury.io/rb/skippy) 
|
4
4
|
|
5
5
|
Skippy is a Command Line Interface which aims to automate common developer tasks for SketchUp Ruby extension development.
|
6
6
|
|
data/Rakefile
CHANGED
@@ -3,13 +3,14 @@
|
|
3
3
|
require 'bundler/gem_tasks'
|
4
4
|
require 'rake/testtask'
|
5
5
|
|
6
|
-
Rake::TestTask.new(:test) do |
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
Rake::TestTask.new(:test) do |task|
|
7
|
+
task.libs << 'test'
|
8
|
+
# task.libs << "test/helpers"
|
9
|
+
task.libs << 'lib'
|
10
|
+
task.test_files = FileList['test/**/*_test.rb']
|
10
11
|
# Turning off because Rake 11 >= turns warning on by default.
|
11
12
|
# TODO: Clean up the warnings coming from this project and enable.
|
12
|
-
|
13
|
+
task.warning = false
|
13
14
|
end
|
14
15
|
|
15
16
|
task default: :test
|
data/lib/skippy/installer/git.rb
CHANGED
@@ -85,7 +85,7 @@ class Skippy::GitLibraryInstaller < Skippy::LibraryInstaller
|
|
85
85
|
target = path.join(source.lib_path)
|
86
86
|
library = Skippy::Library.new(target)
|
87
87
|
unless library.version.casecmp(tag.name).zero?
|
88
|
-
warning "skippy.json version (#{library.version}) differ from "\
|
88
|
+
warning "skippy.json version (#{library.version}) differ from " \
|
89
89
|
"tagged version (#{tag.name})"
|
90
90
|
end
|
91
91
|
nil
|
data/lib/skippy/lib_source.rb
CHANGED
@@ -7,6 +7,7 @@ require 'uri'
|
|
7
7
|
|
8
8
|
require 'skippy/error'
|
9
9
|
require 'skippy/library'
|
10
|
+
require 'skippy/os'
|
10
11
|
|
11
12
|
class Skippy::LibrarySource
|
12
13
|
|
@@ -93,6 +94,8 @@ class Skippy::LibrarySource
|
|
93
94
|
|
94
95
|
# @param [String] source
|
95
96
|
def resolve(source)
|
97
|
+
os = Skippy::OS.new
|
98
|
+
source = os.normalize_path(source)
|
96
99
|
if git_source?(source)
|
97
100
|
resolve_from_git_uri(source)
|
98
101
|
elsif lib_name?(source)
|
@@ -13,6 +13,7 @@ require 'skippy/error'
|
|
13
13
|
require 'skippy/lib_source'
|
14
14
|
require 'skippy/library'
|
15
15
|
require 'skippy/project'
|
16
|
+
require 'skippy/sorted_set'
|
16
17
|
|
17
18
|
module Skippy
|
18
19
|
|
@@ -107,7 +108,7 @@ class Skippy::LibraryManager
|
|
107
108
|
raise Skippy::Project::ProjectNotSavedError unless project.exist?
|
108
109
|
|
109
110
|
library = lib.is_a?(Skippy::Library) ? lib : find_library(lib)
|
110
|
-
raise Skippy::LibraryNotFound,
|
111
|
+
raise Skippy::LibraryNotFound, "Library not found: #{lib}" if library.nil?
|
111
112
|
|
112
113
|
# Uninstall modules first - using the module manager.
|
113
114
|
vendor_path = project.modules.vendor_path
|
@@ -151,6 +152,8 @@ class Skippy::LibraryManager
|
|
151
152
|
rescue Skippy::Library::LibraryNotFoundError => error
|
152
153
|
# TODO: Revisit how to handle this.
|
153
154
|
warn "Unable to load library: #{error.message}"
|
155
|
+
warn "Project: #{project.path}"
|
156
|
+
warn lib_config.inspect
|
154
157
|
nil
|
155
158
|
end
|
156
159
|
}.compact
|
data/lib/skippy/os/common.rb
CHANGED
@@ -28,8 +28,14 @@ class Skippy::OSCommon
|
|
28
28
|
# @param [String] path
|
29
29
|
# @return [Integer, nil]
|
30
30
|
def sketchup_version_from_path(path)
|
31
|
-
match = File.basename(path).match(/[0-9.]+/)
|
31
|
+
match = File.basename(normalize_path(path)).match(/[0-9.]+/)
|
32
32
|
match ? match[0].to_i : nil
|
33
33
|
end
|
34
34
|
|
35
|
+
# @param [String] path
|
36
|
+
# @return [String]
|
37
|
+
def normalize_path(path)
|
38
|
+
path.tr('\\', '/')
|
39
|
+
end
|
40
|
+
|
35
41
|
end
|
data/lib/skippy/os/win.rb
CHANGED
@@ -11,7 +11,7 @@ class Skippy::OSWin < Skippy::OSCommon
|
|
11
11
|
SYSTEM_32BIT = ENV['ProgramFiles(x86)'].nil? && ENV['ProgramW6432'].nil?
|
12
12
|
SYSTEM_64BIT = !SYSTEM_32BIT
|
13
13
|
|
14
|
-
PROGRAM_FILES_64BIT = File.expand_path(ENV
|
14
|
+
PROGRAM_FILES_64BIT = File.expand_path(ENV.fetch('ProgramW6432'))
|
15
15
|
|
16
16
|
# @param [String] executable_path
|
17
17
|
def launch_app(executable_path, *args)
|
@@ -49,10 +49,10 @@ class Skippy::OSWin < Skippy::OSCommon
|
|
49
49
|
def program_files_paths
|
50
50
|
paths = []
|
51
51
|
if SYSTEM_64BIT
|
52
|
-
paths << File.expand_path(ENV
|
53
|
-
paths << File.expand_path(ENV
|
52
|
+
paths << File.expand_path(ENV.fetch('ProgramFiles(x86)'))
|
53
|
+
paths << File.expand_path(ENV.fetch('ProgramW6432'))
|
54
54
|
else
|
55
|
-
paths << File.expand_path(ENV
|
55
|
+
paths << File.expand_path(ENV.fetch('ProgramFiles'))
|
56
56
|
end
|
57
57
|
paths
|
58
58
|
end
|
data/lib/skippy/version.rb
CHANGED
data/skippy.gemspec
CHANGED
@@ -26,10 +26,6 @@ Gem::Specification.new do |spec|
|
|
26
26
|
|
27
27
|
spec.add_dependency 'git', '~> 1.3'
|
28
28
|
spec.add_dependency 'naturally', '~> 2.1'
|
29
|
+
spec.add_dependency 'sorted_set', '~> 1.0'
|
29
30
|
spec.add_dependency 'thor', '>= 0.19', '< 2.0'
|
30
|
-
|
31
|
-
spec.add_development_dependency 'bundler', '>= 1.15.0', '< 3.0'
|
32
|
-
spec.add_development_dependency 'rake', '~> 12.3.3'
|
33
|
-
spec.add_development_dependency 'minitest', '~> 5.0'
|
34
|
-
spec.add_development_dependency 'aruba', '~> 1.0'
|
35
31
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skippy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2.a
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Thomassen
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: git
|
@@ -39,87 +39,39 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: sorted_set
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0.19'
|
48
|
-
- - "<"
|
45
|
+
- - "~>"
|
49
46
|
- !ruby/object:Gem::Version
|
50
|
-
version: '
|
47
|
+
version: '1.0'
|
51
48
|
type: :runtime
|
52
49
|
prerelease: false
|
53
50
|
version_requirements: !ruby/object:Gem::Requirement
|
54
51
|
requirements:
|
55
|
-
- - "
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '0.19'
|
58
|
-
- - "<"
|
52
|
+
- - "~>"
|
59
53
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
54
|
+
version: '1.0'
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
56
|
+
name: thor
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
64
58
|
requirements:
|
65
59
|
- - ">="
|
66
60
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
61
|
+
version: '0.19'
|
68
62
|
- - "<"
|
69
63
|
- !ruby/object:Gem::Version
|
70
|
-
version: '
|
71
|
-
type: :
|
64
|
+
version: '2.0'
|
65
|
+
type: :runtime
|
72
66
|
prerelease: false
|
73
67
|
version_requirements: !ruby/object:Gem::Requirement
|
74
68
|
requirements:
|
75
69
|
- - ">="
|
76
70
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
71
|
+
version: '0.19'
|
78
72
|
- - "<"
|
79
73
|
- !ruby/object:Gem::Version
|
80
|
-
version: '
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: rake
|
83
|
-
requirement: !ruby/object:Gem::Requirement
|
84
|
-
requirements:
|
85
|
-
- - "~>"
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: 12.3.3
|
88
|
-
type: :development
|
89
|
-
prerelease: false
|
90
|
-
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
requirements:
|
92
|
-
- - "~>"
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: 12.3.3
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: minitest
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
98
|
-
requirements:
|
99
|
-
- - "~>"
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '5.0'
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
requirements:
|
106
|
-
- - "~>"
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: '5.0'
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
name: aruba
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
112
|
-
requirements:
|
113
|
-
- - "~>"
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
version: '1.0'
|
116
|
-
type: :development
|
117
|
-
prerelease: false
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
119
|
-
requirements:
|
120
|
-
- - "~>"
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version: '1.0'
|
74
|
+
version: '2.0'
|
123
75
|
description: Automate common tasks for SketchUp extension development, including managing
|
124
76
|
library dependencies.
|
125
77
|
email:
|
@@ -129,8 +81,8 @@ executables:
|
|
129
81
|
extensions: []
|
130
82
|
extra_rdoc_files: []
|
131
83
|
files:
|
132
|
-
- ".appveyor.yml"
|
133
84
|
- ".editorconfig"
|
85
|
+
- ".github/workflows/tests.yaml"
|
134
86
|
- ".gitignore"
|
135
87
|
- ".gitmodules"
|
136
88
|
- ".idea/.rakeTasks"
|
@@ -234,13 +186,14 @@ files:
|
|
234
186
|
- lib/skippy/os/win.rb
|
235
187
|
- lib/skippy/project.rb
|
236
188
|
- lib/skippy/sketchup/app.rb
|
189
|
+
- lib/skippy/sorted_set.rb
|
237
190
|
- lib/skippy/version.rb
|
238
191
|
- skippy.gemspec
|
239
192
|
homepage: https://github.com/thomthom/skippy
|
240
193
|
licenses:
|
241
194
|
- MIT
|
242
195
|
metadata: {}
|
243
|
-
post_install_message:
|
196
|
+
post_install_message:
|
244
197
|
rdoc_options: []
|
245
198
|
require_paths:
|
246
199
|
- lib
|
@@ -255,8 +208,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
255
208
|
- !ruby/object:Gem::Version
|
256
209
|
version: 1.3.1
|
257
210
|
requirements: []
|
258
|
-
rubygems_version: 3.
|
259
|
-
signing_key:
|
211
|
+
rubygems_version: 3.1.6
|
212
|
+
signing_key:
|
260
213
|
specification_version: 4
|
261
214
|
summary: CLI development tool for SketchUp extensions.
|
262
215
|
test_files: []
|
data/.appveyor.yml
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
version: "{build}-{branch}"
|
2
|
-
|
3
|
-
branches:
|
4
|
-
only:
|
5
|
-
- master
|
6
|
-
- dev-appveyor
|
7
|
-
|
8
|
-
cache:
|
9
|
-
- vendor/bundle
|
10
|
-
|
11
|
-
environment:
|
12
|
-
matrix:
|
13
|
-
- RUBY_VERSION: 25
|
14
|
-
- RUBY_VERSION: 26
|
15
|
-
|
16
|
-
install:
|
17
|
-
- set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
|
18
|
-
# - gem update --no-document --system 2.7.8
|
19
|
-
# - gem install bundler --no-document --version="<3.0.0"
|
20
|
-
#
|
21
|
-
# https://github.com/ruby/psych/issues/519
|
22
|
-
- gem uninstall psych # Workaround bug. (https://stackoverflow.com/a/69088551)
|
23
|
-
- bundle config --local path vendor/bundle
|
24
|
-
- bundle install
|
25
|
-
- git submodule update --init --recursive
|
26
|
-
|
27
|
-
build: off
|
28
|
-
|
29
|
-
before_test:
|
30
|
-
- ruby -v
|
31
|
-
- gem -v
|
32
|
-
- bundle -v
|
33
|
-
|
34
|
-
test_script:
|
35
|
-
- bundle exec rake
|