skippy 0.2.0.a → 0.3.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 +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.
|