bogo-cli 0.1.24 → 0.1.26
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/CHANGELOG.md +4 -0
- data/lib/bogo-cli/command.rb +49 -9
- data/lib/bogo-cli/setup.rb +5 -1
- data/lib/bogo-cli/version.rb +1 -1
- data/lib/bogo-cli.rb +1 -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: 733cb704c0dbee10eeecbee3b8ef8e82c240f37a
|
4
|
+
data.tar.gz: 7e8277e7ce4ad6d6db726580e9514ff4b2ba5921
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bef3ad2a370a30934ee4ceb7ab598cd09b3395cfad5dc55b635ea1d33472520901d5569faf21b78e83334cfe979588ae284a6cc752716df16e60622b7f66a4bc
|
7
|
+
data.tar.gz: ae66cbe20d18884bf2763923147bc9d74b2134b72b4be37968b16817b80b0a810bfc50516a3c5d03768eaec1724626533552634de893462e63ada7a9d14594ea
|
data/CHANGELOG.md
CHANGED
data/lib/bogo-cli/command.rb
CHANGED
@@ -11,6 +11,8 @@ module Bogo
|
|
11
11
|
|
12
12
|
# @return [Hash] options
|
13
13
|
attr_reader :options
|
14
|
+
# @return [Hash] default options
|
15
|
+
attr_reader :defaults
|
14
16
|
# @return [Array] cli arguments
|
15
17
|
attr_reader :arguments
|
16
18
|
# @return [Ui]
|
@@ -20,10 +22,15 @@ module Bogo
|
|
20
22
|
#
|
21
23
|
# @return [self]
|
22
24
|
def initialize(cli_opts, args)
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
25
|
+
if(cli_opts.is_a?(Slop))
|
26
|
+
process_cli_options(cli_opts)
|
27
|
+
else
|
28
|
+
@defaults = Smash.new
|
29
|
+
@options = cli_opts.to_hash.to_smash(:snake)
|
30
|
+
[@options, *@options.values].compact.each do |hsh|
|
31
|
+
next unless hsh.is_a?(Hash)
|
32
|
+
hsh.delete_if{|k,v| v.nil?}
|
33
|
+
end
|
27
34
|
end
|
28
35
|
@arguments = args
|
29
36
|
ui_args = Smash.new(
|
@@ -84,12 +91,21 @@ module Bogo
|
|
84
91
|
end
|
85
92
|
config_inst = config_class.new(path) if path
|
86
93
|
end
|
87
|
-
new_opts = config_class.new(options)
|
88
|
-
@options = new_opts.to_smash
|
89
94
|
if(config_inst)
|
90
|
-
|
91
|
-
|
92
|
-
|
95
|
+
options.delete(:config)
|
96
|
+
@options = config_class.new(
|
97
|
+
defaults.to_smash.deep_merge(
|
98
|
+
config_inst.to_smash.deep_merge(
|
99
|
+
options.to_smash
|
100
|
+
)
|
101
|
+
)
|
102
|
+
).to_smash
|
103
|
+
else
|
104
|
+
@options = config_class.new(
|
105
|
+
default.to_smash.deep_merge(
|
106
|
+
options.to_smash
|
107
|
+
)
|
108
|
+
).to_smash
|
93
109
|
end
|
94
110
|
options
|
95
111
|
end
|
@@ -129,6 +145,30 @@ module Bogo
|
|
129
145
|
true
|
130
146
|
end
|
131
147
|
|
148
|
+
# Process the given CLI options and isolate default values from
|
149
|
+
# user provided values
|
150
|
+
#
|
151
|
+
# @param cli_opts [Slop]
|
152
|
+
# @return [NilClass]
|
153
|
+
def process_cli_options(cli_opts)
|
154
|
+
unless(cli_opts.is_a?(Slop))
|
155
|
+
raise TypeError.new "Expecting type `Slop` but received type `#{cli_opts.class}`"
|
156
|
+
end
|
157
|
+
@options = Smash.new
|
158
|
+
@defaults = Smash.new
|
159
|
+
cli_opts.each do |cli_opt|
|
160
|
+
unless(cli_opt.value.nil?)
|
161
|
+
opt_key = Bogo::Utility.snake(cli_opt.key)
|
162
|
+
if(cli_opt.default?)
|
163
|
+
@defaults[opt_key] = cli_opt.value
|
164
|
+
else
|
165
|
+
@options[opt_key] = cli_opt.value
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
nil
|
170
|
+
end
|
171
|
+
|
132
172
|
end
|
133
173
|
|
134
174
|
end
|
data/lib/bogo-cli/setup.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
Signal.trap('INT'){ exit -1 }
|
2
2
|
|
3
|
-
require 'slop'
|
4
3
|
require 'bogo-cli'
|
5
4
|
|
6
5
|
class Slop
|
@@ -11,6 +10,11 @@ class Slop
|
|
11
10
|
end
|
12
11
|
alias_method :slop_run, :run
|
13
12
|
alias_method :run, :bogo_cli_run
|
13
|
+
class Option
|
14
|
+
def default?
|
15
|
+
@value.nil?
|
16
|
+
end
|
17
|
+
end
|
14
18
|
end
|
15
19
|
|
16
20
|
module Bogo
|
data/lib/bogo-cli/version.rb
CHANGED
data/lib/bogo-cli.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bogo-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.26
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Roberts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bogo
|