configmonkey_cli 1.0.2 → 1.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 545efabfadf38b9d05bed12992e6a0f4b51602276969ad025133380740698cd5
4
- data.tar.gz: 97e9673b779ba30f81061dce6ef8adcb79d64a75b094d599112f48eb32008daa
3
+ metadata.gz: b79152a88f58919cc9bc888e066f8e45e38151bd256819a6ddbf9d4f8b7b6fdb
4
+ data.tar.gz: ff62a2d5f62f3ff1d90add227b5cf6553bc888a157d559dfaa587e7c494b4827
5
5
  SHA512:
6
- metadata.gz: 71229f94701e71c488b08846d8c35ec41401e306bb7d54bd43458f94942a897c66dd96458dd8b4701080be6f9a233aeaa08da503247d388f78f919eb31367b28
7
- data.tar.gz: bb59f70f3156c3722613535a1bba04ef5e4cfd2aa77530d9c0944320730fe6d4cbb9b6d112feb5a8d1c89ef3a9be16f8a668a291026e93fda76b41c29095c7a4
6
+ metadata.gz: 0c0a8cdc332aa53f88a917f00fd5dfc73349a6ff77c9f95569776975a0c104824e27635ea8cf7f1653a37a6b13032ad5e21610325d7d6c780af9ce1110b760e7
7
+ data.tar.gz: 79521949dd0f73e7b21e41e0f10080ae2749adf24a3a0769a404841bd960ade83e64da51a4de9c612323a09e450d777b8e629c1275048c62b3cf25a6c333c06e
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.2
1
+ 1.0.3
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency "activesupport"
22
22
  spec.add_dependency "httparty"
23
23
  spec.add_dependency "thor"
24
+ spec.add_dependency "tty-prompt"
24
25
  spec.add_development_dependency "pry"
25
26
  spec.add_development_dependency "bundler"
26
27
  spec.add_development_dependency "rake"
@@ -15,6 +15,7 @@ require "active_support/time_with_zone"
15
15
  begin ; require "pry" ; rescue LoadError ; end
16
16
  require "httparty"
17
17
  require "thor"
18
+ require "tty-prompt"
18
19
 
19
20
  # lib
20
21
  require "configmonkey_cli/version"
@@ -112,6 +112,18 @@ module ConfigmonkeyCli
112
112
  end
113
113
  end
114
114
 
115
+ def run_action which, simulate = nil, *args, &block
116
+ simulate = app.opts[:simulation] if simulate.nil?
117
+ action = case which
118
+ when String, Symbol
119
+ "ConfigmonkeyCli::Application::ManifestAction::#{which.to_s.camelize}".constantize.new(app, self, *args, &block)
120
+ else
121
+ action = which
122
+ end
123
+ action.prepare
124
+ simulate ? action.simulate : action.destructive
125
+ end
126
+
115
127
  def _dump!
116
128
  @actions.each do |constraint, action, instance|
117
129
  begin
@@ -143,8 +155,7 @@ module ConfigmonkeyCli
143
155
  $cm_current_action_index = index
144
156
  $cm_current_action_name = action
145
157
  $cm_current_action_color = :magenta
146
- instance.prepare
147
- simulate ? instance.simulate : instance.destructive
158
+ run_action(instance, simulate)
148
159
  ensure
149
160
  $cm_current_action_index = $cm_current_action_name = $cm_current_action_color = nil
150
161
  app.haltpoint
@@ -232,6 +243,12 @@ module ConfigmonkeyCli
232
243
  thor.say((color.any? ? c(str.to_s, *color) : str.to_s))
233
244
  end
234
245
 
246
+ def prompt opts = {}
247
+ TTY::Prompt.new(opts).tap do |prompt|
248
+ yield(prompt) if block_given?
249
+ end
250
+ end
251
+
235
252
  def status name, *args
236
253
  case args.length
237
254
  when 0
@@ -53,7 +53,7 @@ module ConfigmonkeyCli
53
53
  end
54
54
  end
55
55
 
56
- ([:padded, :c, :say, :status, :ask, :yes?, :no?] + Manifest::MANIFEST_ACTIONS).each do |meth|
56
+ ([:padded, :c, :say, :status, :prompt, :ask, :yes?, :no?, :run_action] + Manifest::MANIFEST_ACTIONS).each do |meth|
57
57
  define_method(meth) do |*args, &block|
58
58
  manifest.send(meth, *args, &block)
59
59
  end
@@ -1,4 +1,4 @@
1
1
  module ConfigmonkeyCli
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  UPDATE_URL = "https://raw.githubusercontent.com/2called-chaos/configmonkey_cli/master/VERSION"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configmonkey_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Pachnit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-18 00:00:00.000000000 Z
11
+ date: 2020-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: tty-prompt
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: pry
57
71
  requirement: !ruby/object:Gem::Requirement