claide 0.3.2 → 0.4.0
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/README.markdown +1 -1
- data/lib/claide.rb +1 -1
- data/lib/claide/command.rb +46 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36f21c6747d3cf6f375f617e2e9a5dda06c6bf62
|
4
|
+
data.tar.gz: 8e127974a2cca76d6c727eed4f3c2afaf5bac18a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9a061458ebfb79695b865f757f09e6f46e775a2695612b810d7bdb813e4ef1a6c4e79346b89fcc69a4a3d9a855039a305a84bbe669c2f8baafc76ab96dc5688
|
7
|
+
data.tar.gz: 68f8dfc688c182c00ac906789c5cb74d89534b5b76c8d9bf8c5e8d4cea19b61af4c0778371be238c18aca1d50e47e7932439e4b4819d31633779ea0546c182b5
|
data/README.markdown
CHANGED
@@ -89,7 +89,7 @@ method, which performs the following three steps:
|
|
89
89
|
|
90
90
|
2. Asks the command instance to validate its parameters, but only _after_
|
91
91
|
calling the `super` implementation. The `super` implementation will show a
|
92
|
-
help banner in case the `--help` flag is specified, not all parameters
|
92
|
+
help banner in case the `--help` flag is specified, not all parameters were
|
93
93
|
removed from the parameter list, or the command is an abstract command.
|
94
94
|
|
95
95
|
3. Calls the `run` method on the command instance, where it may do its work.
|
data/lib/claide.rb
CHANGED
data/lib/claide/command.rb
CHANGED
@@ -69,6 +69,12 @@ module CLAide
|
|
69
69
|
#
|
70
70
|
attr_accessor :description
|
71
71
|
|
72
|
+
# @return [String] The prefix for loading CLAide plugins for this
|
73
|
+
# command. Plugins are loaded via their
|
74
|
+
# <plugin_prefix>_plugin.rb file.
|
75
|
+
#
|
76
|
+
attr_accessor :plugin_prefix
|
77
|
+
|
72
78
|
# @return [String] A list of arguments the command handles. This is shown
|
73
79
|
# in the usage section of the command’s help banner.
|
74
80
|
#
|
@@ -201,6 +207,7 @@ module CLAide
|
|
201
207
|
# @return [void]
|
202
208
|
#
|
203
209
|
def run(argv)
|
210
|
+
load_plugins
|
204
211
|
command = parse(argv)
|
205
212
|
command.validate!
|
206
213
|
command.run
|
@@ -261,6 +268,45 @@ module CLAide
|
|
261
268
|
Banner.new(self, colorize).formatted_banner
|
262
269
|
end
|
263
270
|
|
271
|
+
# Load additional plugins via rubygems looking for:
|
272
|
+
#
|
273
|
+
# <command-path>/plugin.rb
|
274
|
+
#
|
275
|
+
# where <command-path> is the namespace of the Command converted to a
|
276
|
+
# path, for example:
|
277
|
+
#
|
278
|
+
# Pod::Command
|
279
|
+
#
|
280
|
+
# maps to
|
281
|
+
#
|
282
|
+
# pod/command
|
283
|
+
#
|
284
|
+
def load_plugins
|
285
|
+
return unless plugin_prefix
|
286
|
+
files_to_require = if Gem.respond_to? :find_latest_files
|
287
|
+
Gem.find_latest_files("#{plugin_prefix}_plugin")
|
288
|
+
else
|
289
|
+
Gem.find_files("#{plugin_prefix}_plugin")
|
290
|
+
end
|
291
|
+
files_to_require.each { |path| require_plugin_path(path) }
|
292
|
+
end
|
293
|
+
|
294
|
+
# Loads the plugin file at the given path, catching any failure.
|
295
|
+
#
|
296
|
+
# @param [String] path
|
297
|
+
# The path to load.
|
298
|
+
#
|
299
|
+
def require_plugin_path(path)
|
300
|
+
require path
|
301
|
+
rescue Exception => exception
|
302
|
+
message = "\n---------------------------------------------"
|
303
|
+
message << "\nError loading the plugin with path `#{path}`.\n"
|
304
|
+
message << "\n#{exception.class} - #{exception.message}"
|
305
|
+
message << "\n#{exception.backtrace.join("\n")}"
|
306
|
+
message << "\n---------------------------------------------\n"
|
307
|
+
message = colorize_output ? message.yellow : message
|
308
|
+
puts message
|
309
|
+
end
|
264
310
|
end
|
265
311
|
|
266
312
|
#-------------------------------------------------------------------------#
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: claide
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eloy Duran
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-11-14 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email:
|