skippy 0.4.1.a → 0.5.1.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 +35 -0
- data/.rubocop.yml +168 -6
- data/.vscode/extensions.json +27 -0
- data/Gemfile +6 -9
- data/README.md +2 -2
- data/Rakefile +5 -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 +3 -0
- data/app/commands/sketchup.rb +8 -1
- 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 +4 -1
- data/lib/skippy/cli.rb +10 -10
- data/lib/skippy/command.rb +7 -0
- data/lib/skippy/config.rb +6 -0
- data/lib/skippy/config_accessors.rb +4 -0
- data/lib/skippy/error.rb +2 -0
- data/lib/skippy/group.rb +2 -0
- data/lib/skippy/helpers/file.rb +3 -0
- data/lib/skippy/installer/git.rb +8 -4
- data/lib/skippy/installer/local.rb +2 -0
- data/lib/skippy/installer.rb +3 -1
- data/lib/skippy/lib_module.rb +3 -0
- data/lib/skippy/lib_source.rb +3 -0
- data/lib/skippy/library.rb +5 -1
- data/lib/skippy/library_manager.rb +13 -3
- data/lib/skippy/module_manager.rb +14 -4
- data/lib/skippy/namespace.rb +4 -0
- data/lib/skippy/os/common.rb +10 -1
- data/lib/skippy/os/mac.rb +6 -2
- data/lib/skippy/os/win.rb +7 -3
- data/lib/skippy/os.rb +2 -0
- data/lib/skippy/project.rb +9 -7
- data/lib/skippy/sketchup/app.rb +2 -0
- data/lib/skippy/version.rb +3 -1
- data/lib/skippy.rb +2 -0
- data/skippy.gemspec +5 -8
- metadata +29 -29
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'
|
@@ -32,8 +34,7 @@ class Skippy::GitLibraryInstaller < Skippy::LibraryInstaller
|
|
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
|
|
@@ -67,6 +68,7 @@ class Skippy::GitLibraryInstaller < Skippy::LibraryInstaller
|
|
67
68
|
unless branches.include?(branch)
|
68
69
|
raise Skippy::BranchNotFound, "Found no branch named: '#{branch}'"
|
69
70
|
end
|
71
|
+
|
70
72
|
git.checkout(branch)
|
71
73
|
nil
|
72
74
|
end
|
@@ -77,6 +79,7 @@ class Skippy::GitLibraryInstaller < Skippy::LibraryInstaller
|
|
77
79
|
tags = Naturally.sort_by(git.tags, :name)
|
78
80
|
tag = latest_version?(version) ? tags.last : resolve_tag(tags, version)
|
79
81
|
raise Skippy::TagNotFound, "Found no version: '#{version}'" if tag.nil?
|
82
|
+
|
80
83
|
git.checkout(tag)
|
81
84
|
# Verify the library version with the tagged version.
|
82
85
|
target = path.join(source.lib_path)
|
@@ -97,6 +100,7 @@ class Skippy::GitLibraryInstaller < Skippy::LibraryInstaller
|
|
97
100
|
requirement = Gem::Requirement.new(version)
|
98
101
|
tags.reverse.find { |tag|
|
99
102
|
next false unless Gem::Version.correct?(tag.name)
|
103
|
+
|
100
104
|
tag_version = Gem::Version.new(tag.name)
|
101
105
|
requirement.satisfied_by?(tag_version)
|
102
106
|
}
|
@@ -104,7 +108,7 @@ class Skippy::GitLibraryInstaller < Skippy::LibraryInstaller
|
|
104
108
|
|
105
109
|
# @param [String] version
|
106
110
|
def edge_version?(version)
|
107
|
-
version
|
111
|
+
version&.casecmp('edge')&.zero?
|
108
112
|
end
|
109
113
|
|
110
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
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'pathname'
|
2
4
|
|
3
5
|
require 'skippy/library'
|
@@ -13,6 +15,7 @@ class Skippy::LibModule
|
|
13
15
|
def initialize(library, path)
|
14
16
|
@path = Pathname.new(path)
|
15
17
|
raise ModuleNotFoundError, @path.to_s unless @path.file?
|
18
|
+
|
16
19
|
@library = library
|
17
20
|
end
|
18
21
|
|
data/lib/skippy/lib_source.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'digest'
|
2
4
|
require 'net/http'
|
3
5
|
require 'pathname'
|
@@ -40,6 +42,7 @@ class Skippy::LibrarySource
|
|
40
42
|
# @return [String, nil]
|
41
43
|
def requirement
|
42
44
|
return nil if @options[:requirement].nil?
|
45
|
+
|
43
46
|
# Normalize the version requirement pattern.
|
44
47
|
parts = Gem::Requirement.parse(@options[:requirement])
|
45
48
|
# .parse will from '1.2.3' return ['=', '1.2.3']. Don't need that.
|
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
|
|
@@ -28,8 +30,10 @@ class Skippy::Library
|
|
28
30
|
@path = Pathname.new(path)
|
29
31
|
raise LibraryNotFoundError, @path.to_s unless @path.directory?
|
30
32
|
raise LibraryNotFoundError, config_file.to_s unless config_file.exist?
|
33
|
+
|
31
34
|
@config = Skippy::Config.load(config_file)
|
32
35
|
raise LibraryNotFoundError, 'Not a Skippy Library' unless @config[:library]
|
36
|
+
|
33
37
|
@source = source
|
34
38
|
end
|
35
39
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'git'
|
2
4
|
require 'json'
|
3
5
|
require 'naturally'
|
@@ -29,13 +31,14 @@ class Skippy::LibraryManager
|
|
29
31
|
# @param [Skippy::Project] project
|
30
32
|
def initialize(project)
|
31
33
|
raise TypeError, 'expected a Project' unless project.is_a?(Skippy::Project)
|
34
|
+
|
32
35
|
@project = project
|
33
36
|
@libraries = SortedSet.new(discover_libraries)
|
34
37
|
end
|
35
38
|
|
36
39
|
# @yield [Skippy::Library]
|
37
|
-
def each
|
38
|
-
@libraries.each
|
40
|
+
def each(&block)
|
41
|
+
@libraries.each(&block)
|
39
42
|
self
|
40
43
|
end
|
41
44
|
|
@@ -56,8 +59,10 @@ class Skippy::LibraryManager
|
|
56
59
|
if library_name.nil? || module_name.nil?
|
57
60
|
raise ArgumentError, 'expected a module path'
|
58
61
|
end
|
62
|
+
|
59
63
|
library = find_library(library_name)
|
60
64
|
return nil if library.nil?
|
65
|
+
|
61
66
|
library.modules.find { |mod| mod.basename.casecmp(module_name).zero? }
|
62
67
|
end
|
63
68
|
|
@@ -77,11 +82,12 @@ class Skippy::LibraryManager
|
|
77
82
|
# @return [Skippy::Library]
|
78
83
|
def install(source, options = {})
|
79
84
|
raise Skippy::Project::ProjectNotSavedError unless project.exist?
|
85
|
+
|
80
86
|
lib_source = Skippy::LibrarySource.new(project, source, options)
|
81
87
|
|
82
88
|
installer = get_installer(lib_source)
|
83
89
|
if block_given?
|
84
|
-
installer.on_status { |type, message|
|
90
|
+
installer.on_status { |type, message| # rubocop:disable Style/ExplicitBlockArgument
|
85
91
|
yield type, message
|
86
92
|
}
|
87
93
|
end
|
@@ -99,8 +105,10 @@ class Skippy::LibraryManager
|
|
99
105
|
# @return [Skippy::Library]
|
100
106
|
def uninstall(lib)
|
101
107
|
raise Skippy::Project::ProjectNotSavedError unless project.exist?
|
108
|
+
|
102
109
|
library = lib.is_a?(Skippy::Library) ? lib : find_library(lib)
|
103
110
|
raise Skippy::LibraryNotFound, 'Library not found' if library.nil?
|
111
|
+
|
104
112
|
# Uninstall modules first - using the module manager.
|
105
113
|
vendor_path = project.modules.vendor_path
|
106
114
|
vendor_module_path = vendor_path.join(library.name)
|
@@ -113,9 +121,11 @@ class Skippy::LibraryManager
|
|
113
121
|
vendor_path.rmdir
|
114
122
|
end
|
115
123
|
raise 'Unable to remove vendor modules' if vendor_module_path.exist?
|
124
|
+
|
116
125
|
# Now the library itself is safe to remove.
|
117
126
|
library.path.rmtree if library.path.exist?
|
118
127
|
raise 'Unable to remove library' if library.path.exist?
|
128
|
+
|
119
129
|
@libraries.delete(library)
|
120
130
|
library
|
121
131
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'fileutils'
|
2
4
|
require 'json'
|
3
5
|
require 'pathname'
|
@@ -17,13 +19,14 @@ class Skippy::ModuleManager
|
|
17
19
|
# @param [Skippy::Project] project
|
18
20
|
def initialize(project)
|
19
21
|
raise TypeError, 'expected a Project' unless project.is_a?(Skippy::Project)
|
22
|
+
|
20
23
|
@project = project
|
21
24
|
@modules = SortedSet.new(discover_modules)
|
22
25
|
end
|
23
26
|
|
24
27
|
# @yield [Skippy::LibModule]
|
25
|
-
def each
|
26
|
-
@modules.each
|
28
|
+
def each(&block)
|
29
|
+
@modules.each(&block)
|
27
30
|
self
|
28
31
|
end
|
29
32
|
|
@@ -40,7 +43,7 @@ class Skippy::ModuleManager
|
|
40
43
|
# @param [Skippy::LibModule, String] lib_module
|
41
44
|
def installed?(lib_module)
|
42
45
|
module_name = lib_module.name
|
43
|
-
modules = project
|
46
|
+
modules = project&.config&.get(:modules, [])
|
44
47
|
modules.any? { |mod| mod.casecmp(module_name).zero? }
|
45
48
|
end
|
46
49
|
|
@@ -48,6 +51,7 @@ class Skippy::ModuleManager
|
|
48
51
|
# @return [Skippy::LibModule]
|
49
52
|
def use(module_name)
|
50
53
|
raise Skippy::Project::ProjectNotSavedError unless project.exist?
|
54
|
+
|
51
55
|
lib_module = project.libraries.find_module_or_fail(module_name)
|
52
56
|
|
53
57
|
source = lib_module.path
|
@@ -63,6 +67,7 @@ class Skippy::ModuleManager
|
|
63
67
|
# @return [Array<Skippy::LibModule>]
|
64
68
|
def update(library)
|
65
69
|
raise Skippy::Project::ProjectNotSavedError unless project.exist?
|
70
|
+
|
66
71
|
installed = select { |mod| mod.library.name.casecmp(library.name).zero? }
|
67
72
|
installed.each { |mod| use(mod.name) }
|
68
73
|
installed
|
@@ -72,6 +77,7 @@ class Skippy::ModuleManager
|
|
72
77
|
# @return [Skippy::LibModule]
|
73
78
|
def remove(module_name)
|
74
79
|
raise Skippy::Project::ProjectNotSavedError unless project.exist?
|
80
|
+
|
75
81
|
lib_module = project.libraries.find_module_or_fail(module_name)
|
76
82
|
|
77
83
|
target = vendor_path.join(lib_module.library.name, lib_module.path.basename)
|
@@ -103,9 +109,11 @@ class Skippy::ModuleManager
|
|
103
109
|
project.libraries.each { |library|
|
104
110
|
library_vendor_path = vendor_path.join(library.name)
|
105
111
|
next unless library_vendor_path.directory?
|
112
|
+
|
106
113
|
library_vendor_path.each_child { |module_file|
|
107
114
|
next unless module_file.file?
|
108
115
|
next unless module_file.extname.casecmp('.rb').zero?
|
116
|
+
|
109
117
|
modules << Skippy::LibModule.new(library, module_file)
|
110
118
|
}
|
111
119
|
}
|
@@ -122,6 +130,7 @@ class Skippy::ModuleManager
|
|
122
130
|
basename = source.basename('.*')
|
123
131
|
source_support_folder = source.parent.join(basename)
|
124
132
|
return unless source_support_folder.directory?
|
133
|
+
|
125
134
|
target_support_folder = target.parent.join(basename)
|
126
135
|
copy_directory(lib_module, source_support_folder, target_support_folder)
|
127
136
|
end
|
@@ -133,6 +142,7 @@ class Skippy::ModuleManager
|
|
133
142
|
Dir.glob("#{source_path}/**/*") { |filename|
|
134
143
|
source = Pathname.new(filename)
|
135
144
|
next unless source.file?
|
145
|
+
|
136
146
|
relative_path = source.relative_path_from(source_path)
|
137
147
|
target = target_path.join(relative_path)
|
138
148
|
copy_file(lib_module, source, target)
|
@@ -164,7 +174,7 @@ class Skippy::ModuleManager
|
|
164
174
|
content
|
165
175
|
end
|
166
176
|
|
167
|
-
LIB_REQUIRE_PATTERN = %r{(\brequire ["'])(modules)(/[^"']*["'])}
|
177
|
+
LIB_REQUIRE_PATTERN = %r{(\brequire ["'])(modules)(/[^"']*["'])}.freeze
|
168
178
|
|
169
179
|
# Transform the require statements to the target destination.
|
170
180
|
#
|
data/lib/skippy/namespace.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'skippy/error'
|
2
4
|
|
3
5
|
class Skippy::Namespace
|
@@ -6,6 +8,7 @@ class Skippy::Namespace
|
|
6
8
|
unless valid?(namespace)
|
7
9
|
raise Skippy::Error, "'#{namespace}' is not a valid Ruby namespace"
|
8
10
|
end
|
11
|
+
|
9
12
|
@namespace = namespace
|
10
13
|
end
|
11
14
|
|
@@ -24,6 +27,7 @@ class Skippy::Namespace
|
|
24
27
|
def short_name
|
25
28
|
items = to_a
|
26
29
|
return to_s unless items.size > 1
|
30
|
+
|
27
31
|
initials = items.first.scan(/[[:upper:]]/)
|
28
32
|
prefix = initials.size > 1 ? initials.join : items.first[0, 2]
|
29
33
|
"#{prefix}_#{items.last}"
|
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
|
|
@@ -23,4 +25,11 @@ class Skippy::OSCommon
|
|
23
25
|
raise NotImplementedError
|
24
26
|
end
|
25
27
|
|
28
|
+
# @param [String] path
|
29
|
+
# @return [Integer, nil]
|
30
|
+
def sketchup_version_from_path(path)
|
31
|
+
match = File.basename(path).match(/[0-9.]+/)
|
32
|
+
match ? match[0].to_i : nil
|
33
|
+
end
|
34
|
+
|
26
35
|
end
|
data/lib/skippy/os/mac.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'skippy/os/common'
|
2
4
|
require 'skippy/sketchup/app'
|
3
5
|
|
@@ -5,7 +7,7 @@ class Skippy::OSMac < Skippy::OSCommon
|
|
5
7
|
|
6
8
|
# @param [String] executable_path
|
7
9
|
def launch_app(executable_path, *args)
|
8
|
-
command =
|
10
|
+
command = +%(open -a "#{executable_path}")
|
9
11
|
unless args.empty?
|
10
12
|
command << " --args #{args.join(' ')}"
|
11
13
|
end
|
@@ -18,7 +20,9 @@ class Skippy::OSMac < Skippy::OSCommon
|
|
18
20
|
Dir.glob(pattern) { |path|
|
19
21
|
app = File.join(path, 'SketchUp.app')
|
20
22
|
debug_lib = File.join(app, 'Contents/Frameworks/SURubyDebugger.dylib')
|
21
|
-
version =
|
23
|
+
version = sketchup_version_from_path(path)
|
24
|
+
next unless version
|
25
|
+
|
22
26
|
apps << Skippy::SketchUpApp.from_hash(
|
23
27
|
executable: app,
|
24
28
|
version: version,
|
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?
|
@@ -13,7 +15,7 @@ class Skippy::OSWin < Skippy::OSCommon
|
|
13
15
|
|
14
16
|
# @param [String] executable_path
|
15
17
|
def launch_app(executable_path, *args)
|
16
|
-
command =
|
18
|
+
command = +%("#{executable_path}")
|
17
19
|
unless args.empty?
|
18
20
|
command << " #{args.join(' ')}"
|
19
21
|
end
|
@@ -28,7 +30,9 @@ class Skippy::OSWin < Skippy::OSCommon
|
|
28
30
|
Dir.glob(pattern) { |path|
|
29
31
|
exe = File.join(path, 'SketchUp.exe')
|
30
32
|
debug_dll = File.join(path, 'SURubyDebugger.dll')
|
31
|
-
version =
|
33
|
+
version = sketchup_version_from_path(path)
|
34
|
+
next unless version
|
35
|
+
|
32
36
|
apps << Skippy::SketchUpApp.from_hash(
|
33
37
|
executable: exe,
|
34
38
|
version: version,
|
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
|
@@ -36,6 +38,7 @@ class Skippy::Project
|
|
36
38
|
def self.current_or_fail
|
37
39
|
project = current
|
38
40
|
raise ProjectNotFoundError, project.filename unless project.exist?
|
41
|
+
|
39
42
|
project
|
40
43
|
end
|
41
44
|
|
@@ -66,11 +69,9 @@ class Skippy::Project
|
|
66
69
|
|
67
70
|
# @yield [filename]
|
68
71
|
# @yieldparam [String] filename the path to custom Skippy command
|
69
|
-
def command_files
|
72
|
+
def command_files(&block)
|
70
73
|
files_pattern = File.join(path, 'skippy', '**', '*.rb')
|
71
|
-
Dir.glob(files_pattern)
|
72
|
-
yield filename
|
73
|
-
}
|
74
|
+
Dir.glob(files_pattern, &block)
|
74
75
|
end
|
75
76
|
|
76
77
|
# Checks if a project exist on disk. If not it's just transient.
|
@@ -108,8 +109,8 @@ class Skippy::Project
|
|
108
109
|
end
|
109
110
|
|
110
111
|
# @return [String]
|
111
|
-
def to_json
|
112
|
-
JSON.pretty_generate(@config)
|
112
|
+
def to_json(*args)
|
113
|
+
JSON.pretty_generate(@config, *args)
|
113
114
|
end
|
114
115
|
|
115
116
|
private
|
@@ -141,6 +142,7 @@ class Skippy::Project
|
|
141
142
|
project_file = pathname.join(PROJECT_FILENAME)
|
142
143
|
return pathname if project_file.exist?
|
143
144
|
break if pathname.root?
|
145
|
+
|
144
146
|
pathname = pathname.parent
|
145
147
|
end
|
146
148
|
nil
|
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
|
-
spec.add_development_dependency 'bundler', '
|
32
|
-
spec.add_development_dependency 'rake', '~>
|
31
|
+
spec.add_development_dependency 'bundler', '>= 1.15.0', '< 3.0'
|
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.1.a
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Thomassen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: git
|
@@ -42,44 +42,56 @@ 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
|
58
64
|
requirements:
|
59
|
-
- - "
|
65
|
+
- - ">="
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
67
|
+
version: 1.15.0
|
68
|
+
- - "<"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '3.0'
|
62
71
|
type: :development
|
63
72
|
prerelease: false
|
64
73
|
version_requirements: !ruby/object:Gem::Requirement
|
65
74
|
requirements:
|
66
|
-
- - "
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.15.0
|
78
|
+
- - "<"
|
67
79
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
80
|
+
version: '3.0'
|
69
81
|
- !ruby/object:Gem::Dependency
|
70
82
|
name: rake
|
71
83
|
requirement: !ruby/object:Gem::Requirement
|
72
84
|
requirements:
|
73
85
|
- - "~>"
|
74
86
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
87
|
+
version: 12.3.3
|
76
88
|
type: :development
|
77
89
|
prerelease: false
|
78
90
|
version_requirements: !ruby/object:Gem::Requirement
|
79
91
|
requirements:
|
80
92
|
- - "~>"
|
81
93
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
94
|
+
version: 12.3.3
|
83
95
|
- !ruby/object:Gem::Dependency
|
84
96
|
name: minitest
|
85
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,34 +106,20 @@ dependencies:
|
|
94
106
|
- - "~>"
|
95
107
|
- !ruby/object:Gem::Version
|
96
108
|
version: '5.0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: cucumber
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 2.3.0
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 2.3.0
|
111
109
|
- !ruby/object:Gem::Dependency
|
112
110
|
name: aruba
|
113
111
|
requirement: !ruby/object:Gem::Requirement
|
114
112
|
requirements:
|
115
113
|
- - "~>"
|
116
114
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0
|
115
|
+
version: '1.0'
|
118
116
|
type: :development
|
119
117
|
prerelease: false
|
120
118
|
version_requirements: !ruby/object:Gem::Requirement
|
121
119
|
requirements:
|
122
120
|
- - "~>"
|
123
121
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0
|
122
|
+
version: '1.0'
|
125
123
|
description: Automate common tasks for SketchUp extension development, including managing
|
126
124
|
library dependencies.
|
127
125
|
email:
|
@@ -131,6 +129,7 @@ executables:
|
|
131
129
|
extensions: []
|
132
130
|
extra_rdoc_files: []
|
133
131
|
files:
|
132
|
+
- ".appveyor.yml"
|
134
133
|
- ".editorconfig"
|
135
134
|
- ".gitignore"
|
136
135
|
- ".gitmodules"
|
@@ -146,6 +145,7 @@ files:
|
|
146
145
|
- ".idea/vcs.xml"
|
147
146
|
- ".rubocop.yml"
|
148
147
|
- ".rubocop_todo.yml"
|
148
|
+
- ".vscode/extensions.json"
|
149
149
|
- ".vscode/launch.json"
|
150
150
|
- ".vscode/settings.json"
|
151
151
|
- ".vscode/tasks.json"
|
@@ -180,6 +180,7 @@ files:
|
|
180
180
|
- bin/setup
|
181
181
|
- bin/skippy
|
182
182
|
- bin/thor
|
183
|
+
- cucumber.yml
|
183
184
|
- debug/skippy.bat
|
184
185
|
- exe/skippy
|
185
186
|
- fixtures/my_lib/modules/command.rb
|
@@ -247,15 +248,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
247
248
|
requirements:
|
248
249
|
- - ">="
|
249
250
|
- !ruby/object:Gem::Version
|
250
|
-
version: '2.
|
251
|
+
version: '2.3'
|
251
252
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
252
253
|
requirements:
|
253
254
|
- - ">"
|
254
255
|
- !ruby/object:Gem::Version
|
255
256
|
version: 1.3.1
|
256
257
|
requirements: []
|
257
|
-
|
258
|
-
rubygems_version: 2.7.3
|
258
|
+
rubygems_version: 3.0.3
|
259
259
|
signing_key:
|
260
260
|
specification_version: 4
|
261
261
|
summary: CLI development tool for SketchUp extensions.
|