skippy 0.2.0.a → 0.3.0.a
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.gitmodules +3 -0
- data/.idea/.rakeTasks +6 -6
- data/.idea/codeStyleSettings.xml +8 -8
- data/.idea/encodings.xml +5 -5
- data/.idea/inspectionProfiles/Project_Default.xml +7 -7
- data/.idea/misc.xml +3 -3
- data/.idea/modules.xml +7 -7
- data/.idea/skippy.iml +89 -82
- data/.idea/vcs.xml +5 -5
- data/.rubocop.yml +93 -0
- data/.rubocop_todo.yml +24 -0
- data/.vscode/launch.json +51 -61
- data/.vscode/settings.json +41 -2
- data/.vscode/tasks.json +16 -16
- data/Gemfile +11 -2
- data/README.md +194 -15
- data/Rakefile +1 -1
- data/app/boot.rb +1 -1
- data/app/commands/install.rb +41 -0
- data/app/commands/lib.rb +42 -2
- data/app/commands/new.rb +22 -8
- data/app/commands/template.rb +2 -2
- data/bin/rubocop +17 -0
- data/bin/ruby-parse +17 -0
- data/bin/ruby-rewrite +17 -0
- data/debug/skippy.bat +2 -0
- data/fixtures/my_lib/{src → modules}/command.rb +0 -0
- data/fixtures/my_lib/{src → modules}/geometry.rb +0 -0
- data/fixtures/my_lib/modules/gl.rb +4 -0
- data/fixtures/my_lib/modules/gl/container.rb +8 -0
- data/fixtures/my_lib/modules/gl/control.rb +6 -0
- data/fixtures/my_lib/modules/gl/nested/nested.rb +8 -0
- data/fixtures/my_lib/{src → modules}/tool.rb +0 -0
- data/fixtures/my_lib/skippy.json +1 -1
- data/fixtures/my_project/skippy.json +2 -1
- data/fixtures/my_project/src/hello_world.rb +2 -2
- data/fixtures/my_project/src/hello_world/extension.json +9 -9
- data/fixtures/project_with_lib/.skippy/libs/my-lib/modules/command.rb +4 -0
- data/fixtures/project_with_lib/.skippy/libs/my-lib/modules/gl.rb +4 -0
- data/fixtures/project_with_lib/.skippy/libs/my-lib/modules/gl/container.rb +8 -0
- data/fixtures/project_with_lib/.skippy/libs/my-lib/modules/gl/control.rb +6 -0
- data/fixtures/project_with_lib/.skippy/libs/my-lib/skippy.json +5 -0
- data/fixtures/project_with_lib/.skippy/libs/my-other-lib/modules/something.rb +4 -0
- data/fixtures/project_with_lib/.skippy/libs/my-other-lib/skippy.json +5 -0
- data/fixtures/project_with_lib/skippy.json +25 -0
- data/fixtures/project_with_lib/skippy/commands/example.rb +14 -0
- data/fixtures/project_with_lib/src/hello_world.rb +47 -0
- data/fixtures/project_with_lib/src/hello_world/extension.json +10 -0
- data/fixtures/project_with_lib/src/hello_world/main.rb +21 -0
- data/fixtures/project_with_lib/src/hello_world/vendor/my-lib/command.rb +4 -0
- data/fixtures/project_with_lib/src/hello_world/vendor/my-other-lib/something.rb +4 -0
- data/lib/skippy.rb +2 -0
- data/lib/skippy/app.rb +2 -2
- data/lib/skippy/cli.rb +41 -20
- data/lib/skippy/command.rb +2 -4
- data/lib/skippy/config.rb +27 -22
- data/lib/skippy/config_accessors.rb +12 -12
- data/lib/skippy/group.rb +1 -3
- data/lib/skippy/helpers/file.rb +3 -3
- data/lib/skippy/installer.rb +49 -0
- data/lib/skippy/installer/git.rb +115 -0
- data/lib/skippy/installer/local.rb +19 -0
- data/lib/skippy/lib_module.rb +16 -16
- data/lib/skippy/lib_source.rb +139 -0
- data/lib/skippy/library.rb +50 -10
- data/lib/skippy/library_manager.rb +116 -18
- data/lib/skippy/module_manager.rb +104 -26
- data/lib/skippy/namespace.rb +17 -1
- data/lib/skippy/project.rb +34 -4
- data/lib/skippy/version.rb +3 -1
- data/skippy.gemspec +10 -5
- metadata +85 -29
- data/cSpell.json +0 -18
@@ -1,5 +1,7 @@
|
|
1
|
+
require 'fileutils'
|
1
2
|
require 'json'
|
2
3
|
require 'pathname'
|
4
|
+
require 'set'
|
3
5
|
|
4
6
|
require 'skippy/helpers/file'
|
5
7
|
require 'skippy/lib_module'
|
@@ -16,17 +18,12 @@ class Skippy::ModuleManager
|
|
16
18
|
def initialize(project)
|
17
19
|
raise TypeError, 'expected a Project' unless project.is_a?(Skippy::Project)
|
18
20
|
@project = project
|
21
|
+
@modules = SortedSet.new(discover_modules)
|
19
22
|
end
|
20
23
|
|
21
24
|
# @yield [Skippy::LibModule]
|
22
25
|
def each
|
23
|
-
|
24
|
-
library_path.each_child { |module_file|
|
25
|
-
next unless module_file.file?
|
26
|
-
next unless module_file.extname == '.rb'
|
27
|
-
yield Skippy::LibModule.new(module_file)
|
28
|
-
}
|
29
|
-
}
|
26
|
+
@modules.each { |lib_module| yield lib_module }
|
30
27
|
self
|
31
28
|
end
|
32
29
|
|
@@ -37,33 +34,52 @@ class Skippy::ModuleManager
|
|
37
34
|
# @param [String] module_name
|
38
35
|
# @return [Skippy::LibModule, nil]
|
39
36
|
def find_module(module_name)
|
40
|
-
find { |lib_module| lib_module.name
|
37
|
+
find { |lib_module| lib_module.name.casecmp(module_name).zero? }
|
41
38
|
end
|
42
39
|
|
43
40
|
# @param [Skippy::LibModule, String] lib_module
|
44
41
|
def installed?(lib_module)
|
45
|
-
module_name = lib_module.
|
46
|
-
|
47
|
-
|
42
|
+
module_name = lib_module.name
|
43
|
+
modules = project && project.config.get(:modules, [])
|
44
|
+
modules.any? { |mod| mod.casecmp(module_name).zero? }
|
48
45
|
end
|
49
46
|
|
50
47
|
# @param [String] module_name
|
51
48
|
# @return [Skippy::LibModule]
|
52
49
|
def use(module_name)
|
53
50
|
raise Skippy::Project::ProjectNotSavedError unless project.exist?
|
54
|
-
|
55
|
-
lib_module = project.libraries.find_module(module_name)
|
56
|
-
raise Skippy::LibModule::ModuleNotFoundError,
|
57
|
-
"module '#{module_name}' not found" if lib_module.nil?
|
51
|
+
lib_module = project.libraries.find_module_or_fail(module_name)
|
58
52
|
|
59
53
|
source = lib_module.path
|
60
|
-
target =
|
54
|
+
target = vendor_path.join(lib_module.library.name, lib_module.path.basename)
|
55
|
+
|
56
|
+
copy_module(lib_module, source, target)
|
57
|
+
@modules << lib_module
|
58
|
+
|
59
|
+
lib_module
|
60
|
+
end
|
61
|
+
|
62
|
+
# @param [Skippy::Library]
|
63
|
+
# @return [Array<Skippy::LibModule>]
|
64
|
+
def update(library)
|
65
|
+
raise Skippy::Project::ProjectNotSavedError unless project.exist?
|
66
|
+
installed = select { |mod| mod.library.name.casecmp(library.name).zero? }
|
67
|
+
installed.each { |mod| use(mod.name) }
|
68
|
+
installed
|
69
|
+
end
|
61
70
|
|
62
|
-
|
71
|
+
# @param [String] module_name
|
72
|
+
# @return [Skippy::LibModule]
|
73
|
+
def remove(module_name)
|
74
|
+
raise Skippy::Project::ProjectNotSavedError unless project.exist?
|
75
|
+
lib_module = project.libraries.find_module_or_fail(module_name)
|
63
76
|
|
64
|
-
|
77
|
+
target = vendor_path.join(lib_module.library.name, lib_module.path.basename)
|
78
|
+
support = vendor_path.join(lib_module.library.name, lib_module.basename)
|
79
|
+
target.delete if target.exist?
|
80
|
+
support.rmtree if support.directory?
|
65
81
|
|
66
|
-
|
82
|
+
@modules.delete_if { |mod| mod.name.casecmp(lib_module.name).zero? }
|
67
83
|
|
68
84
|
lib_module
|
69
85
|
end
|
@@ -72,22 +88,70 @@ class Skippy::ModuleManager
|
|
72
88
|
def length
|
73
89
|
to_a.length
|
74
90
|
end
|
75
|
-
alias
|
91
|
+
alias size length
|
76
92
|
|
77
93
|
# @return [Pathname]
|
78
|
-
def
|
79
|
-
project.
|
94
|
+
def vendor_path
|
95
|
+
project.extension_source.join(project.basename, 'vendor')
|
80
96
|
end
|
81
97
|
|
82
98
|
private
|
83
99
|
|
100
|
+
# @return [Array<Skippy::LibModule>]
|
101
|
+
def discover_modules
|
102
|
+
modules = []
|
103
|
+
project.libraries.each { |library|
|
104
|
+
library_vendor_path = vendor_path.join(library.name)
|
105
|
+
next unless library_vendor_path.directory?
|
106
|
+
library_vendor_path.each_child { |module_file|
|
107
|
+
next unless module_file.file?
|
108
|
+
next unless module_file.extname.casecmp('.rb').zero?
|
109
|
+
modules << Skippy::LibModule.new(library, module_file)
|
110
|
+
}
|
111
|
+
}
|
112
|
+
modules
|
113
|
+
end
|
114
|
+
|
115
|
+
# @param [Skippy::LibModule] lib_module
|
116
|
+
# @param [Pathname, String] source
|
117
|
+
# @param [Pathname, String] target
|
118
|
+
def copy_module(lib_module, source, target)
|
119
|
+
# Copy the main library file.
|
120
|
+
copy_file(lib_module, source, target)
|
121
|
+
# Copy optional support folder.
|
122
|
+
basename = source.basename('.*')
|
123
|
+
source_support_folder = source.parent.join(basename)
|
124
|
+
return unless source_support_folder.directory?
|
125
|
+
target_support_folder = target.parent.join(basename)
|
126
|
+
copy_directory(lib_module, source_support_folder, target_support_folder)
|
127
|
+
end
|
128
|
+
|
129
|
+
# @param [Skippy::LibModule] lib_module
|
84
130
|
# @param [Pathname, String] source
|
85
131
|
# @param [Pathname, String] target
|
86
|
-
def
|
132
|
+
def copy_directory(lib_module, source_path, target_path)
|
133
|
+
Dir.glob("#{source_path}/**/*") { |filename|
|
134
|
+
source = Pathname.new(filename)
|
135
|
+
next unless source.file?
|
136
|
+
relative_path = source.relative_path_from(source_path)
|
137
|
+
target = target_path.join(relative_path)
|
138
|
+
copy_file(lib_module, source, target)
|
139
|
+
}
|
140
|
+
end
|
141
|
+
|
142
|
+
# @param [Skippy::LibModule] lib_module
|
143
|
+
# @param [Pathname, String] source
|
144
|
+
# @param [Pathname, String] target
|
145
|
+
def copy_file(lib_module, source, target)
|
87
146
|
FileUtils.mkdir_p(target.parent)
|
88
|
-
|
89
|
-
|
90
|
-
|
147
|
+
if source.extname.casecmp('.rb').zero?
|
148
|
+
content = File.read(source)
|
149
|
+
transform_require(lib_module, content)
|
150
|
+
transform_module(content)
|
151
|
+
File.write(target, content)
|
152
|
+
else
|
153
|
+
File.copy(source, target)
|
154
|
+
end
|
91
155
|
end
|
92
156
|
|
93
157
|
# Transform the module content with `SkippyLib` placeholder replaced with
|
@@ -100,4 +164,18 @@ class Skippy::ModuleManager
|
|
100
164
|
content
|
101
165
|
end
|
102
166
|
|
167
|
+
LIB_REQUIRE_PATTERN = %r{(\brequire ["'])(modules)(/[^"']*["'])}
|
168
|
+
|
169
|
+
# Transform the require statements to the target destination.
|
170
|
+
#
|
171
|
+
# @param [Skippy::LibModule] lib_module
|
172
|
+
# @param [String] content
|
173
|
+
# @return [String]
|
174
|
+
def transform_require(lib_module, content)
|
175
|
+
relative_path = vendor_path.relative_path_from(project.extension_source)
|
176
|
+
target_path = relative_path.join(lib_module.library.name)
|
177
|
+
content.gsub!(LIB_REQUIRE_PATTERN, "\\1#{target_path}\\3")
|
178
|
+
content
|
179
|
+
end
|
180
|
+
|
103
181
|
end
|
data/lib/skippy/namespace.rb
CHANGED
@@ -13,6 +13,22 @@ class Skippy::Namespace
|
|
13
13
|
to_a.last
|
14
14
|
end
|
15
15
|
|
16
|
+
# Creates a compact string from the namespace. First part composed of the
|
17
|
+
# capitals from the first part followed by the last item of the namespace.
|
18
|
+
#
|
19
|
+
# The prefix will always have at least two characters.
|
20
|
+
#
|
21
|
+
# If the namespace isn't nested it will just return the namespace string.
|
22
|
+
#
|
23
|
+
# @return [String]
|
24
|
+
def short_name
|
25
|
+
items = to_a
|
26
|
+
return to_s unless items.size > 1
|
27
|
+
initials = items.first.scan(/[[:upper:]]/)
|
28
|
+
prefix = initials.size > 1 ? initials.join : items.first[0, 2]
|
29
|
+
"#{prefix}_#{items.last}"
|
30
|
+
end
|
31
|
+
|
16
32
|
def open
|
17
33
|
@open ||= to_a.map { |part| "module #{part}" }.join("\n")
|
18
34
|
end
|
@@ -38,7 +54,7 @@ class Skippy::Namespace
|
|
38
54
|
end
|
39
55
|
|
40
56
|
def to_underscore
|
41
|
-
basename_words(basename).map
|
57
|
+
basename_words(basename).map(&:downcase).join('_')
|
42
58
|
end
|
43
59
|
|
44
60
|
private
|
data/lib/skippy/project.rb
CHANGED
@@ -34,8 +34,8 @@ class Skippy::Project
|
|
34
34
|
|
35
35
|
# @return [Skippy::Project]
|
36
36
|
def self.current_or_fail
|
37
|
-
project =
|
38
|
-
raise ProjectNotFoundError unless project.exist?
|
37
|
+
project = current
|
38
|
+
raise ProjectNotFoundError, project.filename unless project.exist?
|
39
39
|
project
|
40
40
|
end
|
41
41
|
|
@@ -52,12 +52,24 @@ class Skippy::Project
|
|
52
52
|
@modules = Skippy::ModuleManager.new(self)
|
53
53
|
end
|
54
54
|
|
55
|
+
# The basename for the extension's root and support folder.
|
56
|
+
#
|
57
|
+
# @return [String]
|
58
|
+
def basename
|
59
|
+
@config.get(:basename, namespace.short_name)
|
60
|
+
end
|
61
|
+
|
62
|
+
# @param [String] basename
|
63
|
+
def basename=(basename)
|
64
|
+
@config.set(:basename, basename)
|
65
|
+
end
|
66
|
+
|
55
67
|
# @yield [filename]
|
56
68
|
# @yieldparam [String] filename the path to custom Skippy command
|
57
|
-
def command_files
|
69
|
+
def command_files
|
58
70
|
files_pattern = File.join(path, 'skippy', '**', '*.rb')
|
59
71
|
Dir.glob(files_pattern) { |filename|
|
60
|
-
|
72
|
+
yield filename
|
61
73
|
}
|
62
74
|
end
|
63
75
|
|
@@ -80,9 +92,21 @@ class Skippy::Project
|
|
80
92
|
|
81
93
|
# Commits the project to disk.
|
82
94
|
def save
|
95
|
+
@config.set(:libraries, libraries.map(&:to_h))
|
96
|
+
@config.set(:modules, modules.map(&:name))
|
83
97
|
@config.save_as(filename)
|
84
98
|
end
|
85
99
|
|
100
|
+
# @return [Pathname]
|
101
|
+
def extension_source
|
102
|
+
path.join('src')
|
103
|
+
end
|
104
|
+
|
105
|
+
# @return [Array<String>]
|
106
|
+
def sources
|
107
|
+
@config.get(:sources, defaults[:sources])
|
108
|
+
end
|
109
|
+
|
86
110
|
# @return [String]
|
87
111
|
def to_json
|
88
112
|
JSON.pretty_generate(@config)
|
@@ -90,14 +114,20 @@ class Skippy::Project
|
|
90
114
|
|
91
115
|
private
|
92
116
|
|
117
|
+
# @return [Hash]
|
93
118
|
def defaults
|
94
119
|
{
|
95
120
|
name: 'Untitled',
|
96
121
|
description: '',
|
97
122
|
namespace: Skippy::Namespace.new('Untitled'),
|
123
|
+
basename: Skippy::Namespace.new('Untitled').short_name,
|
98
124
|
author: 'Unknown',
|
99
125
|
copyright: "Copyright (c) #{Time.now.year}",
|
100
126
|
license: 'None',
|
127
|
+
sources: %w(
|
128
|
+
github.com
|
129
|
+
bitbucket.org
|
130
|
+
),
|
101
131
|
}
|
102
132
|
end
|
103
133
|
|
data/lib/skippy/version.rb
CHANGED
data/skippy.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
#
|
1
|
+
# rubocop:disable all
|
2
|
+
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'skippy/version'
|
@@ -23,11 +24,15 @@ Gem::Specification.new do |spec|
|
|
23
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
25
|
spec.require_paths = ['lib']
|
25
26
|
|
27
|
+
spec.add_dependency 'git', '~> 1.3'
|
28
|
+
spec.add_dependency 'naturally', '~> 2.1'
|
29
|
+
spec.add_dependency 'thor', '~> 0.19'
|
30
|
+
|
26
31
|
spec.add_development_dependency 'bundler', '~> 1.13'
|
27
32
|
spec.add_development_dependency 'rake', '~> 10.0'
|
28
33
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
spec.
|
34
|
+
# TODO(thomthom): Need to lock to 2.3 because 2.4 fails with the custom
|
35
|
+
# aruba build.
|
36
|
+
spec.add_development_dependency 'cucumber', '~> 2.3.0'
|
37
|
+
spec.add_development_dependency 'aruba', '~> 0.14.1'
|
33
38
|
end
|
metadata
CHANGED
@@ -1,15 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skippy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0.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: 2017-
|
11
|
+
date: 2017-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: git
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: naturally
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: thor
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.19'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.19'
|
13
55
|
- !ruby/object:Gem::Dependency
|
14
56
|
name: bundler
|
15
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,44 +98,30 @@ dependencies:
|
|
56
98
|
name: cucumber
|
57
99
|
requirement: !ruby/object:Gem::Requirement
|
58
100
|
requirements:
|
59
|
-
- - "
|
101
|
+
- - "~>"
|
60
102
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
103
|
+
version: 2.3.0
|
62
104
|
type: :development
|
63
105
|
prerelease: false
|
64
106
|
version_requirements: !ruby/object:Gem::Requirement
|
65
107
|
requirements:
|
66
|
-
- - "
|
108
|
+
- - "~>"
|
67
109
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
110
|
+
version: 2.3.0
|
69
111
|
- !ruby/object:Gem::Dependency
|
70
112
|
name: aruba
|
71
113
|
requirement: !ruby/object:Gem::Requirement
|
72
114
|
requirements:
|
73
|
-
- - "
|
115
|
+
- - "~>"
|
74
116
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
117
|
+
version: 0.14.1
|
76
118
|
type: :development
|
77
119
|
prerelease: false
|
78
120
|
version_requirements: !ruby/object:Gem::Requirement
|
79
121
|
requirements:
|
80
|
-
- - "
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: thor
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
122
|
+
- - "~>"
|
95
123
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
124
|
+
version: 0.14.1
|
97
125
|
description: Automate common tasks for SketchUp extension development, including managing
|
98
126
|
library dependencies.
|
99
127
|
email:
|
@@ -105,6 +133,7 @@ extra_rdoc_files: []
|
|
105
133
|
files:
|
106
134
|
- ".editorconfig"
|
107
135
|
- ".gitignore"
|
136
|
+
- ".gitmodules"
|
108
137
|
- ".idea/.rakeTasks"
|
109
138
|
- ".idea/codeStyleSettings.xml"
|
110
139
|
- ".idea/encodings.xml"
|
@@ -115,6 +144,8 @@ files:
|
|
115
144
|
- ".idea/runConfigurations/test__skippy.xml"
|
116
145
|
- ".idea/skippy.iml"
|
117
146
|
- ".idea/vcs.xml"
|
147
|
+
- ".rubocop.yml"
|
148
|
+
- ".rubocop_todo.yml"
|
118
149
|
- ".vscode/launch.json"
|
119
150
|
- ".vscode/settings.json"
|
120
151
|
- ".vscode/tasks.json"
|
@@ -125,6 +156,7 @@ files:
|
|
125
156
|
- Skippy.sublime-project
|
126
157
|
- app/boot.rb
|
127
158
|
- app/commands/debug.rb
|
159
|
+
- app/commands/install.rb
|
128
160
|
- app/commands/lib.rb
|
129
161
|
- app/commands/new.rb
|
130
162
|
- app/commands/template.rb
|
@@ -141,21 +173,41 @@ files:
|
|
141
173
|
- bin/htmldiff
|
142
174
|
- bin/ldiff
|
143
175
|
- bin/rake
|
176
|
+
- bin/rubocop
|
177
|
+
- bin/ruby-parse
|
178
|
+
- bin/ruby-rewrite
|
144
179
|
- bin/setup
|
145
180
|
- bin/skippy
|
146
181
|
- bin/thor
|
147
|
-
- cSpell.json
|
148
182
|
- debug/skippy.bat
|
149
183
|
- exe/skippy
|
184
|
+
- fixtures/my_lib/modules/command.rb
|
185
|
+
- fixtures/my_lib/modules/geometry.rb
|
186
|
+
- fixtures/my_lib/modules/gl.rb
|
187
|
+
- fixtures/my_lib/modules/gl/container.rb
|
188
|
+
- fixtures/my_lib/modules/gl/control.rb
|
189
|
+
- fixtures/my_lib/modules/gl/nested/nested.rb
|
190
|
+
- fixtures/my_lib/modules/tool.rb
|
150
191
|
- fixtures/my_lib/skippy.json
|
151
|
-
- fixtures/my_lib/src/command.rb
|
152
|
-
- fixtures/my_lib/src/geometry.rb
|
153
|
-
- fixtures/my_lib/src/tool.rb
|
154
192
|
- fixtures/my_project/skippy.json
|
155
193
|
- fixtures/my_project/skippy/commands/example.rb
|
156
194
|
- fixtures/my_project/src/hello_world.rb
|
157
195
|
- fixtures/my_project/src/hello_world/extension.json
|
158
196
|
- fixtures/my_project/src/hello_world/main.rb
|
197
|
+
- fixtures/project_with_lib/.skippy/libs/my-lib/modules/command.rb
|
198
|
+
- fixtures/project_with_lib/.skippy/libs/my-lib/modules/gl.rb
|
199
|
+
- fixtures/project_with_lib/.skippy/libs/my-lib/modules/gl/container.rb
|
200
|
+
- fixtures/project_with_lib/.skippy/libs/my-lib/modules/gl/control.rb
|
201
|
+
- fixtures/project_with_lib/.skippy/libs/my-lib/skippy.json
|
202
|
+
- fixtures/project_with_lib/.skippy/libs/my-other-lib/modules/something.rb
|
203
|
+
- fixtures/project_with_lib/.skippy/libs/my-other-lib/skippy.json
|
204
|
+
- fixtures/project_with_lib/skippy.json
|
205
|
+
- fixtures/project_with_lib/skippy/commands/example.rb
|
206
|
+
- fixtures/project_with_lib/src/hello_world.rb
|
207
|
+
- fixtures/project_with_lib/src/hello_world/extension.json
|
208
|
+
- fixtures/project_with_lib/src/hello_world/main.rb
|
209
|
+
- fixtures/project_with_lib/src/hello_world/vendor/my-lib/command.rb
|
210
|
+
- fixtures/project_with_lib/src/hello_world/vendor/my-other-lib/something.rb
|
159
211
|
- lib/skippy.rb
|
160
212
|
- lib/skippy/app.rb
|
161
213
|
- lib/skippy/cli.rb
|
@@ -165,7 +217,11 @@ files:
|
|
165
217
|
- lib/skippy/error.rb
|
166
218
|
- lib/skippy/group.rb
|
167
219
|
- lib/skippy/helpers/file.rb
|
220
|
+
- lib/skippy/installer.rb
|
221
|
+
- lib/skippy/installer/git.rb
|
222
|
+
- lib/skippy/installer/local.rb
|
168
223
|
- lib/skippy/lib_module.rb
|
224
|
+
- lib/skippy/lib_source.rb
|
169
225
|
- lib/skippy/library.rb
|
170
226
|
- lib/skippy/library_manager.rb
|
171
227
|
- lib/skippy/module_manager.rb
|
@@ -193,7 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
249
|
version: 1.3.1
|
194
250
|
requirements: []
|
195
251
|
rubyforge_project:
|
196
|
-
rubygems_version: 2.
|
252
|
+
rubygems_version: 2.7.3
|
197
253
|
signing_key:
|
198
254
|
specification_version: 4
|
199
255
|
summary: CLI development tool for SketchUp extensions.
|