skippy 0.4.3.a → 0.5.0.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/.appveyor.yml +5 -2
- data/.rubocop.yml +157 -5
- data/.vscode/extensions.json +27 -0
- data/Gemfile +6 -10
- data/Rakefile +2 -0
- data/app/boot.rb +1 -0
- data/app/commands/debug.rb +2 -0
- data/app/commands/install.rb +2 -0
- data/app/commands/lib.rb +4 -2
- data/app/commands/new.rb +2 -0
- data/app/commands/sketchup.rb +2 -0
- data/app/commands/template.rb +2 -0
- data/app/resources/commands/example.rb +2 -0
- data/cucumber.yml +1 -0
- data/lib/skippy/app.rb +3 -1
- data/lib/skippy/cli.rb +7 -5
- data/lib/skippy/command.rb +2 -0
- data/lib/skippy/config.rb +2 -0
- data/lib/skippy/config_accessors.rb +2 -0
- data/lib/skippy/error.rb +2 -0
- data/lib/skippy/group.rb +2 -0
- data/lib/skippy/helpers/file.rb +2 -0
- data/lib/skippy/installer/git.rb +6 -5
- data/lib/skippy/installer/local.rb +2 -0
- data/lib/skippy/installer.rb +3 -1
- data/lib/skippy/lib_module.rb +2 -0
- data/lib/skippy/lib_source.rb +2 -0
- data/lib/skippy/library.rb +3 -1
- data/lib/skippy/library_manager.rb +5 -3
- data/lib/skippy/module_manager.rb +5 -3
- data/lib/skippy/namespace.rb +2 -0
- data/lib/skippy/os/common.rb +3 -1
- data/lib/skippy/os/mac.rb +2 -0
- data/lib/skippy/os/win.rb +3 -1
- data/lib/skippy/os.rb +2 -0
- data/lib/skippy/project.rb +5 -5
- data/lib/skippy/sketchup/app.rb +2 -0
- data/lib/skippy/version.rb +3 -1
- data/lib/skippy.rb +2 -0
- data/skippy.gemspec +3 -6
- metadata +19 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: caf9e8f9363445b164e56aacb76d61cdb1395532d6128dc173c6ac55900eae85
|
4
|
+
data.tar.gz: c122744a1c428a3cb22e73e35f217603e81c931397f60878189ec1c6c0805699
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f837fa5d0d6b7dc18570ba8037ba1cb25373dad59daaf0433e56799468600c99e9dc0df2e579fb667eed4dfdd5c56065e1f23519a349be240944ad49211cbd42
|
7
|
+
data.tar.gz: e022d61b5268000d120fb0226a996c665fbcc2f03a159c9d68b7defc959b31d8d791d58b234e8564b900aed08aef8c791131197e0c2bb13f333d4b8218492b5a
|
data/.appveyor.yml
CHANGED
@@ -15,8 +15,11 @@ environment:
|
|
15
15
|
|
16
16
|
install:
|
17
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="<
|
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)
|
20
23
|
- bundle config --local path vendor/bundle
|
21
24
|
- bundle install
|
22
25
|
- git submodule update --init --recursive
|
data/.rubocop.yml
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
2
2
|
|
3
|
+
require:
|
4
|
+
- rubocop-minitest
|
5
|
+
- rubocop-rake
|
6
|
+
|
3
7
|
AllCops:
|
4
8
|
Exclude:
|
5
9
|
- 'bin/**/*'
|
@@ -10,8 +14,9 @@ AllCops:
|
|
10
14
|
DisplayCopNames: true
|
11
15
|
|
12
16
|
|
13
|
-
Layout/
|
17
|
+
Layout/ArgumentAlignment:
|
14
18
|
EnforcedStyle: with_fixed_indentation
|
19
|
+
# IndentationWidth: 2
|
15
20
|
|
16
21
|
# It's ok to have more than one empty line to create a 'paragrapth'.
|
17
22
|
Layout/EmptyLines:
|
@@ -27,6 +32,7 @@ Layout/EmptyLinesAroundModuleBody:
|
|
27
32
|
|
28
33
|
# Normally one line in between, but two allowed for "paragraphs".
|
29
34
|
Layout/EmptyLineBetweenDefs:
|
35
|
+
AllowAdjacentOneLineDefs: true
|
30
36
|
NumberOfEmptyLines: [1, 2]
|
31
37
|
|
32
38
|
# Rely on Git to normalize end of lines.
|
@@ -37,6 +43,13 @@ Layout/EndOfLine:
|
|
37
43
|
Layout/EmptyLinesAroundBlockBody:
|
38
44
|
Enabled: false
|
39
45
|
|
46
|
+
Layout/LineLength:
|
47
|
+
Exclude:
|
48
|
+
- features/step_definitions/**/*
|
49
|
+
|
50
|
+
Layout/ParameterAlignment:
|
51
|
+
EnforcedStyle: with_fixed_indentation
|
52
|
+
|
40
53
|
|
41
54
|
Naming/RescuedExceptionsVariableName:
|
42
55
|
PreferredName: error
|
@@ -55,10 +68,6 @@ Metrics/ClassLength:
|
|
55
68
|
Metrics/CyclomaticComplexity:
|
56
69
|
Enabled: false
|
57
70
|
|
58
|
-
Metrics/LineLength:
|
59
|
-
Exclude:
|
60
|
-
- features/step_definitions/**/*
|
61
|
-
|
62
71
|
Metrics/MethodLength:
|
63
72
|
Exclude:
|
64
73
|
- test/**/*
|
@@ -68,6 +77,10 @@ Metrics/PerceivedComplexity:
|
|
68
77
|
Enabled: false
|
69
78
|
|
70
79
|
|
80
|
+
# Nah, sometimes easier to read with accessors having separate grouping.
|
81
|
+
Style/AccessorGrouping:
|
82
|
+
Enabled: false
|
83
|
+
|
71
84
|
# Prefer { ... } over do ... end except for control flow and
|
72
85
|
# method defintions. Unfortunatly, no cop configuration for this.
|
73
86
|
# https://github.com/chneukirchen/styleguide/blob/e60de37b478d3f892f6985a58d573016f33f0269/RUBY-STYLE#L63-L67
|
@@ -109,6 +122,13 @@ Style/IfUnlessModifier:
|
|
109
122
|
Style/ModuleFunction:
|
110
123
|
Enabled: false
|
111
124
|
|
125
|
+
# Excluding some files that copies the Thor implementation.
|
126
|
+
# TODO: Investigate if Thor changed their implementation.
|
127
|
+
Style/OptionalBooleanParameter:
|
128
|
+
Exclude:
|
129
|
+
- lib/skippy/cli.rb
|
130
|
+
- lib/skippy/command.rb
|
131
|
+
|
112
132
|
# %w and %i etc isn't really intuitive unless you are really familiar with the
|
113
133
|
# syntax. %w seems used often enough. But [:symbol, :foo] reads clearer than
|
114
134
|
# %i(symbol foo).
|
@@ -121,3 +141,135 @@ Style/TrailingCommaInArrayLiteral:
|
|
121
141
|
|
122
142
|
Style/TrailingCommaInHashLiteral:
|
123
143
|
EnforcedStyleForMultiline: consistent_comma
|
144
|
+
|
145
|
+
|
146
|
+
# Not testing computed values, but serialized values.
|
147
|
+
# Ignoring floating point tolerance is fine (and wanted) in this case.
|
148
|
+
Minitest/AssertInDelta:
|
149
|
+
Enabled: false
|
150
|
+
|
151
|
+
# Too many false positives.
|
152
|
+
Minitest/AssertWithExpectedArgument:
|
153
|
+
Enabled: false
|
154
|
+
|
155
|
+
# No such thing as too many assertions.
|
156
|
+
Minitest/MultipleAssertions:
|
157
|
+
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
|
@@ -0,0 +1,27 @@
|
|
1
|
+
{
|
2
|
+
// See http://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
|
3
|
+
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
|
4
|
+
// List of extensions which should be recommended for users of this workspace.
|
5
|
+
"recommendations": [
|
6
|
+
// Spell checking code and comments are important.
|
7
|
+
"streetsidesoftware.code-spell-checker",
|
8
|
+
|
9
|
+
// Will make VSCode pick up .editorconfig.
|
10
|
+
"editorconfig.editorconfig",
|
11
|
+
|
12
|
+
// Essential for Ruby syntax highlighting and debugging.
|
13
|
+
"rebornix.ruby",
|
14
|
+
|
15
|
+
// For code insight and auto-complete.
|
16
|
+
"castwide.solargraph",
|
17
|
+
|
18
|
+
// Test Explorer UI and adapter
|
19
|
+
"hbenl.vscode-test-explorer",
|
20
|
+
"matepek.vscode-catch2-test-adapter",
|
21
|
+
|
22
|
+
// Cucumber highlighting and more.
|
23
|
+
"alexkrechik.cucumberautocomplete"
|
24
|
+
],
|
25
|
+
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
|
26
|
+
"unwantedRecommendations": []
|
27
|
+
}
|
data/Gemfile
CHANGED
@@ -1,19 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
source 'https://rubygems.org'
|
2
4
|
|
3
5
|
# Specify your gem's dependencies in skippy.gemspec
|
4
6
|
gemspec
|
5
7
|
|
6
8
|
group :development do
|
7
|
-
# Original fork with bug-fix. Appear to be gone now.
|
8
|
-
# gem 'aruba', git: 'https://github.com/daynix/aruba.git', branch: 'd-win-fix'
|
9
|
-
# Backup fork of the bug fix:
|
10
|
-
gem 'aruba', git: 'https://github.com/thomthom/aruba.git',
|
11
|
-
branch: 'd-win-fix'
|
12
|
-
# TODO: This might be a newer fix:
|
13
|
-
# gem 'aruba', git: 'https://github.com/rbld/aruba.git',
|
14
|
-
# branch: 'aruba-win-fix'
|
15
9
|
gem 'pry'
|
16
|
-
gem 'rubocop', '~> 0
|
17
|
-
gem 'rubocop-
|
10
|
+
gem 'rubocop', '~> 1.0', require: false
|
11
|
+
gem 'rubocop-minitest', '~> 0.15', require: false
|
12
|
+
gem 'rubocop-performance', '~> 1.0', require: false
|
13
|
+
gem 'rubocop-rake', '~> 0.6', require: false
|
18
14
|
gem 'webmock', '~> 3.1'
|
19
15
|
end
|
data/Rakefile
CHANGED
data/app/boot.rb
CHANGED
data/app/commands/debug.rb
CHANGED
data/app/commands/install.rb
CHANGED
data/app/commands/lib.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'fileutils'
|
2
4
|
require 'json'
|
3
5
|
|
@@ -20,7 +22,7 @@ class Lib < Skippy::Command
|
|
20
22
|
say
|
21
23
|
say "#{library.name} (#{library.version})", [:bold, :yellow]
|
22
24
|
library.modules.each { |lib_module|
|
23
|
-
lib_info = " #{lib_module}"
|
25
|
+
lib_info = +" #{lib_module}"
|
24
26
|
lib_info << ' (installed)' if project.modules.installed?(lib_module)
|
25
27
|
say lib_info, :green
|
26
28
|
}
|
@@ -75,7 +77,7 @@ class Lib < Skippy::Command
|
|
75
77
|
private
|
76
78
|
|
77
79
|
def install_options(cli_options)
|
78
|
-
options = cli_options.
|
80
|
+
options = cli_options.transform_keys(&:to_sym)
|
79
81
|
# The CLI options "version" is internally a "requirement".
|
80
82
|
if options.key?(:version)
|
81
83
|
options[:requirement] = options[:version]
|
data/app/commands/new.rb
CHANGED
data/app/commands/sketchup.rb
CHANGED
data/app/commands/template.rb
CHANGED
data/cucumber.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
default: --publish-quiet
|
data/lib/skippy/app.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'pathname'
|
2
4
|
|
3
5
|
require 'skippy'
|
@@ -55,7 +57,7 @@ class Skippy::App
|
|
55
57
|
# Load the default skippy commands.
|
56
58
|
path_commands = File.join(path, 'commands')
|
57
59
|
commands_pattern = File.join(path_commands, '*.rb')
|
58
|
-
Dir.glob(commands_pattern) { |filename|
|
60
|
+
Dir.glob(commands_pattern).sort.each { |filename|
|
59
61
|
# noinspection RubyResolve
|
60
62
|
require filename
|
61
63
|
}
|
data/lib/skippy/cli.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'pathname'
|
2
4
|
|
3
5
|
require 'skippy/app'
|
@@ -57,7 +59,7 @@ class Skippy::CLI < Skippy::Command
|
|
57
59
|
end
|
58
60
|
end
|
59
61
|
|
60
|
-
# rubocop:disable Style/
|
62
|
+
# rubocop:disable Style/MissingRespondToMissing
|
61
63
|
# Verbatim copy from Thor::Runner:
|
62
64
|
# If a command is not found on Thor::Runner, method missing is invoked and
|
63
65
|
# Thor::Runner is then responsible for finding the command in all classes.
|
@@ -70,15 +72,15 @@ class Skippy::CLI < Skippy::Command
|
|
70
72
|
args.unshift(command) if command
|
71
73
|
klass.start(args, shell: shell)
|
72
74
|
end
|
73
|
-
# rubocop:enable Style/
|
75
|
+
# rubocop:enable Style/MissingRespondToMissing
|
74
76
|
|
75
77
|
# Verbatim copy from Thor::Runner:
|
76
78
|
desc 'list [SEARCH]',
|
77
79
|
"List the available #{$PROGRAM_NAME} commands (--substring means .*SEARCH)"
|
78
80
|
method_options substring: :boolean,
|
79
|
-
|
80
|
-
|
81
|
-
|
81
|
+
group: :string,
|
82
|
+
all: :boolean,
|
83
|
+
debug: :boolean
|
82
84
|
def list(search = '')
|
83
85
|
initialize_thorfiles
|
84
86
|
|
data/lib/skippy/command.rb
CHANGED
data/lib/skippy/config.rb
CHANGED
data/lib/skippy/error.rb
CHANGED
data/lib/skippy/group.rb
CHANGED
data/lib/skippy/helpers/file.rb
CHANGED
data/lib/skippy/installer/git.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'git'
|
2
4
|
require 'naturally'
|
3
5
|
require 'pathname'
|
@@ -27,13 +29,12 @@ class Skippy::GitLibraryInstaller < Skippy::LibraryInstaller
|
|
27
29
|
end
|
28
30
|
begin
|
29
31
|
checkout_branch(git, source.branch) if source.branch
|
30
|
-
checkout_tag(git, source.requirement) unless edge_version?(source.requirement)
|
32
|
+
checkout_tag(git, source.requirement) unless edge_version?(source.requirement)
|
31
33
|
rescue Skippy::Error
|
32
34
|
git.checkout(previous_commit) if previous_commit
|
33
35
|
raise
|
34
36
|
end
|
35
|
-
|
36
|
-
library
|
37
|
+
Skippy::Library.new(target, source: source)
|
37
38
|
end
|
38
39
|
|
39
40
|
private
|
@@ -55,7 +56,7 @@ class Skippy::GitLibraryInstaller < Skippy::LibraryInstaller
|
|
55
56
|
git = Git.open(target)
|
56
57
|
previous_commit = git.object('HEAD^').class
|
57
58
|
git.reset_hard
|
58
|
-
git.
|
59
|
+
git.fetch
|
59
60
|
[git, previous_commit]
|
60
61
|
end
|
61
62
|
|
@@ -107,7 +108,7 @@ class Skippy::GitLibraryInstaller < Skippy::LibraryInstaller
|
|
107
108
|
|
108
109
|
# @param [String] version
|
109
110
|
def edge_version?(version)
|
110
|
-
version
|
111
|
+
version&.casecmp('edge')&.zero?
|
111
112
|
end
|
112
113
|
|
113
114
|
# @param [String] version
|
data/lib/skippy/installer.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'skippy/lib_source'
|
2
4
|
require 'skippy/library'
|
3
5
|
require 'skippy/project'
|
@@ -28,7 +30,7 @@ class Skippy::LibraryInstaller
|
|
28
30
|
# @param [Symbol] type
|
29
31
|
# @param [String] message
|
30
32
|
def status(type, message)
|
31
|
-
@messager
|
33
|
+
@messager&.call(type, message)
|
32
34
|
end
|
33
35
|
|
34
36
|
# @param [String] message
|
data/lib/skippy/lib_module.rb
CHANGED
data/lib/skippy/lib_source.rb
CHANGED
data/lib/skippy/library.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'json'
|
2
4
|
require 'pathname'
|
3
5
|
|
@@ -12,7 +14,7 @@ class Skippy::Library
|
|
12
14
|
|
13
15
|
include Skippy::Helpers::File
|
14
16
|
|
15
|
-
CONFIG_FILENAME = 'skippy.json'
|
17
|
+
CONFIG_FILENAME = 'skippy.json'
|
16
18
|
|
17
19
|
attr_reader :path, :source, :requirement
|
18
20
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'git'
|
2
4
|
require 'json'
|
3
5
|
require 'naturally'
|
@@ -35,8 +37,8 @@ class Skippy::LibraryManager
|
|
35
37
|
end
|
36
38
|
|
37
39
|
# @yield [Skippy::Library]
|
38
|
-
def each
|
39
|
-
@libraries.each
|
40
|
+
def each(&block)
|
41
|
+
@libraries.each(&block)
|
40
42
|
self
|
41
43
|
end
|
42
44
|
|
@@ -85,7 +87,7 @@ class Skippy::LibraryManager
|
|
85
87
|
|
86
88
|
installer = get_installer(lib_source)
|
87
89
|
if block_given?
|
88
|
-
installer.on_status { |type, message|
|
90
|
+
installer.on_status { |type, message| # rubocop:disable Style/ExplicitBlockArgument
|
89
91
|
yield type, message
|
90
92
|
}
|
91
93
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'fileutils'
|
2
4
|
require 'json'
|
3
5
|
require 'pathname'
|
@@ -23,8 +25,8 @@ class Skippy::ModuleManager
|
|
23
25
|
end
|
24
26
|
|
25
27
|
# @yield [Skippy::LibModule]
|
26
|
-
def each
|
27
|
-
@modules.each
|
28
|
+
def each(&block)
|
29
|
+
@modules.each(&block)
|
28
30
|
self
|
29
31
|
end
|
30
32
|
|
@@ -41,7 +43,7 @@ class Skippy::ModuleManager
|
|
41
43
|
# @param [Skippy::LibModule, String] lib_module
|
42
44
|
def installed?(lib_module)
|
43
45
|
module_name = lib_module.name
|
44
|
-
modules = project
|
46
|
+
modules = project&.config&.get(:modules, [])
|
45
47
|
modules.any? { |mod| mod.casecmp(module_name).zero? }
|
46
48
|
end
|
47
49
|
|
data/lib/skippy/namespace.rb
CHANGED
data/lib/skippy/os/common.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class Skippy::OSCommon
|
2
4
|
|
3
5
|
# @param [String] command
|
@@ -15,7 +17,7 @@ class Skippy::OSCommon
|
|
15
17
|
end
|
16
18
|
|
17
19
|
# @param [String] path
|
18
|
-
def launch_app(path, *args)
|
20
|
+
def launch_app(path, *args)
|
19
21
|
raise NotImplementedError
|
20
22
|
end
|
21
23
|
|
data/lib/skippy/os/mac.rb
CHANGED
data/lib/skippy/os/win.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'skippy/os/common'
|
2
4
|
require 'skippy/sketchup/app'
|
3
5
|
|
4
6
|
class Skippy::OSWin < Skippy::OSCommon
|
5
7
|
|
6
|
-
#
|
8
|
+
# NOTE: This is not a good indication to 32bit bs 64bit. It's a naive
|
7
9
|
# assumption that will fail when SketchUp is installed to a
|
8
10
|
# non-standard location.
|
9
11
|
SYSTEM_32BIT = ENV['ProgramFiles(x86)'].nil? && ENV['ProgramW6432'].nil?
|
data/lib/skippy/os.rb
CHANGED
data/lib/skippy/project.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'json'
|
2
4
|
require 'pathname'
|
3
5
|
|
@@ -15,7 +17,7 @@ class Skippy::Project
|
|
15
17
|
|
16
18
|
include Skippy::Helpers::File
|
17
19
|
|
18
|
-
PROJECT_FILENAME = 'skippy.json'
|
20
|
+
PROJECT_FILENAME = 'skippy.json'
|
19
21
|
|
20
22
|
attr_reader :config
|
21
23
|
attr_reader :libraries
|
@@ -67,11 +69,9 @@ class Skippy::Project
|
|
67
69
|
|
68
70
|
# @yield [filename]
|
69
71
|
# @yieldparam [String] filename the path to custom Skippy command
|
70
|
-
def command_files
|
72
|
+
def command_files(&block)
|
71
73
|
files_pattern = File.join(path, 'skippy', '**', '*.rb')
|
72
|
-
Dir.glob(files_pattern)
|
73
|
-
yield filename
|
74
|
-
}
|
74
|
+
Dir.glob(files_pattern, &block)
|
75
75
|
end
|
76
76
|
|
77
77
|
# Checks if a project exist on disk. If not it's just transient.
|
data/lib/skippy/sketchup/app.rb
CHANGED
data/lib/skippy/version.rb
CHANGED
data/lib/skippy.rb
CHANGED
data/skippy.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.homepage = 'https://github.com/thomthom/skippy'
|
16
16
|
spec.license = 'MIT'
|
17
17
|
|
18
|
-
spec.required_ruby_version = '>= 2.
|
18
|
+
spec.required_ruby_version = '>= 2.3'
|
19
19
|
|
20
20
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
21
21
|
f.match(%r{^(test|spec|features)/})
|
@@ -26,13 +26,10 @@ 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 'thor', '
|
29
|
+
spec.add_dependency 'thor', '>= 0.19', '< 2.0'
|
30
30
|
|
31
31
|
spec.add_development_dependency 'bundler', '>= 1.15.0', '< 3.0'
|
32
32
|
spec.add_development_dependency 'rake', '~> 12.3.3'
|
33
33
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
34
|
-
|
35
|
-
# aruba build.
|
36
|
-
spec.add_development_dependency 'cucumber', '~> 2.3.0'
|
37
|
-
spec.add_development_dependency 'aruba', '~> 0.14.1'
|
34
|
+
spec.add_development_dependency 'aruba', '~> 1.0'
|
38
35
|
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.
|
4
|
+
version: 0.5.0.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: 2021-08
|
11
|
+
date: 2021-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: git
|
@@ -42,16 +42,22 @@ dependencies:
|
|
42
42
|
name: thor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0.19'
|
48
|
+
- - "<"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '2.0'
|
48
51
|
type: :runtime
|
49
52
|
prerelease: false
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
52
|
-
- - "
|
55
|
+
- - ">="
|
53
56
|
- !ruby/object:Gem::Version
|
54
57
|
version: '0.19'
|
58
|
+
- - "<"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '2.0'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: bundler
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,34 +106,20 @@ dependencies:
|
|
100
106
|
- - "~>"
|
101
107
|
- !ruby/object:Gem::Version
|
102
108
|
version: '5.0'
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: cucumber
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - "~>"
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: 2.3.0
|
110
|
-
type: :development
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: !ruby/object:Gem::Requirement
|
113
|
-
requirements:
|
114
|
-
- - "~>"
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: 2.3.0
|
117
109
|
- !ruby/object:Gem::Dependency
|
118
110
|
name: aruba
|
119
111
|
requirement: !ruby/object:Gem::Requirement
|
120
112
|
requirements:
|
121
113
|
- - "~>"
|
122
114
|
- !ruby/object:Gem::Version
|
123
|
-
version: 0
|
115
|
+
version: '1.0'
|
124
116
|
type: :development
|
125
117
|
prerelease: false
|
126
118
|
version_requirements: !ruby/object:Gem::Requirement
|
127
119
|
requirements:
|
128
120
|
- - "~>"
|
129
121
|
- !ruby/object:Gem::Version
|
130
|
-
version: 0
|
122
|
+
version: '1.0'
|
131
123
|
description: Automate common tasks for SketchUp extension development, including managing
|
132
124
|
library dependencies.
|
133
125
|
email:
|
@@ -153,6 +145,7 @@ files:
|
|
153
145
|
- ".idea/vcs.xml"
|
154
146
|
- ".rubocop.yml"
|
155
147
|
- ".rubocop_todo.yml"
|
148
|
+
- ".vscode/extensions.json"
|
156
149
|
- ".vscode/launch.json"
|
157
150
|
- ".vscode/settings.json"
|
158
151
|
- ".vscode/tasks.json"
|
@@ -187,6 +180,7 @@ files:
|
|
187
180
|
- bin/setup
|
188
181
|
- bin/skippy
|
189
182
|
- bin/thor
|
183
|
+
- cucumber.yml
|
190
184
|
- debug/skippy.bat
|
191
185
|
- exe/skippy
|
192
186
|
- fixtures/my_lib/modules/command.rb
|
@@ -246,7 +240,7 @@ homepage: https://github.com/thomthom/skippy
|
|
246
240
|
licenses:
|
247
241
|
- MIT
|
248
242
|
metadata: {}
|
249
|
-
post_install_message:
|
243
|
+
post_install_message:
|
250
244
|
rdoc_options: []
|
251
245
|
require_paths:
|
252
246
|
- lib
|
@@ -254,15 +248,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
254
248
|
requirements:
|
255
249
|
- - ">="
|
256
250
|
- !ruby/object:Gem::Version
|
257
|
-
version: '2.
|
251
|
+
version: '2.3'
|
258
252
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
259
253
|
requirements:
|
260
254
|
- - ">"
|
261
255
|
- !ruby/object:Gem::Version
|
262
256
|
version: 1.3.1
|
263
257
|
requirements: []
|
264
|
-
rubygems_version: 3.
|
265
|
-
signing_key:
|
258
|
+
rubygems_version: 3.2.15
|
259
|
+
signing_key:
|
266
260
|
specification_version: 4
|
267
261
|
summary: CLI development tool for SketchUp extensions.
|
268
262
|
test_files: []
|