skippy 0.4.1.a → 0.5.1.a
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|