cl-magic 1.2.2 → 1.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 05c962112f0a47a3945adf9b9908e73f22daa851bf3b2cd0ace70eda9dfba797
4
- data.tar.gz: a73878d00fa0c615b5440fc9240d1de2b63c42ea5b64336e5a364473fd8cd06d
3
+ metadata.gz: e703c8de1ae89f408ce6e63cc1815522c50cfaa2c8eb378a6c66da8fce474dc5
4
+ data.tar.gz: 9f059bbe5db125cb443e5e3a460024efde164eaec3aa5b09beb1d353b3eed26e
5
5
  SHA512:
6
- metadata.gz: 3a26ba4568305f27ceea37e20cbd8c5fd7dfa3b080b18e0160e76a11d02683ea53fc8addf3ffd0588cb1b3ffcde600faf9f6a7171821543fa5992d7a856f0dab
7
- data.tar.gz: 165fb1fa74a7a84870378ed68ac67ee00509cbfb08d6d6e65a546dcd7623d075d52b81c435b20516e7de12cfffbdef23e4f374ec41bc2a954cff37fa7baf7424
6
+ metadata.gz: 242e2a6d1c7e455613e056144792ff941528f50592212435b495cc01dc335597d512617223a872a975ad062c9461ae3fb07226bf1079bd636cc7a4935d6ca31d
7
+ data.tar.gz: 4430e08eaa1b4f312a29a26ac649b789337812b3301899eca78ecbf1c8e063486687947f8ebd84b5d02305ba7865d4e5c68b3f2f9576594f5682b07ac1712215
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cl-magic (1.2.2)
4
+ cl-magic (1.2.4)
5
5
  activesupport
6
6
  baran
7
7
  concurrent-ruby
@@ -65,25 +65,41 @@ def do_set(options)
65
65
 
66
66
  # save parts
67
67
  filepath = get_save_parts_filepath()
68
+ prev_saved_parts = YAML.load_file(filepath)
69
+
70
+ # passed in parts
68
71
  parts = ARGV[1..]
72
+
69
73
  case options[:action]
70
74
  when :set
71
75
  unless parts.any?
72
- options = dk_parts_hash.keys.collect {|k| [k.ljust(25, ' '), dk_parts_hash[k]['help'].rjust(25, ' ')]}
73
- selected_parts = pick_multiple_result(options, "Which parts?", nil, false)
76
+ @logger.info "spacebar to select"
77
+ @logger.info "enter to complete"
78
+ @logger.puts ""
79
+ options = dk_parts_hash.keys.collect {|k| [k.ljust(25, ' '), dk_parts_hash[k]['help']]}
80
+ default = prev_saved_parts.collect{|p| p.ljust(25, ' ')}
81
+ selected_parts = pick_multiple_result(options, "Which parts?", nil, false, default)
74
82
  parts = selected_parts.collect {|o| o.first.strip}
75
83
  end
76
84
  File.open(filepath, 'w') { |file| file.write(parts.to_yaml) }
77
- @logger.success "parts set"
85
+ if parts.any?
86
+ @logger.success "parts set"
87
+ @logger.puts ""
88
+ parts.each do |p|
89
+ @logger.puts p
90
+ end
91
+ @logger.puts ""
92
+ else
93
+ @logger.warn "no parts selected"
94
+ do_clear(options)
95
+ end
78
96
  when :add
79
- data = YAML.load_file(filepath)
80
- parts.each {|p| data << p}
81
- File.open(filepath, 'w') { |file| file.write(data.uniq.to_yaml) }
97
+ parts.each {|p| prev_saved_parts << p}
98
+ File.open(filepath, 'w') { |file| file.write(prev_saved_parts.uniq.to_yaml) }
82
99
  @logger.success "parts added"
83
100
  when :remove
84
- data = YAML.load_file(filepath)
85
- data.reject! { |p| parts.include?(p) }
86
- File.open(filepath, 'w') { |file| file.write(data.to_yaml) }
101
+ prev_saved_parts.reject! { |p| parts.include?(p) }
102
+ File.open(filepath, 'w') { |file| file.write(prev_saved_parts.to_yaml) }
87
103
  @logger.success "parts removed"
88
104
  end
89
105
  else
@@ -63,7 +63,7 @@ def pick_single_result(results, prompt_message, exact=nil, default=nil, selectio
63
63
  end
64
64
 
65
65
 
66
- def pick_multiple_result(results, prompt_message, exacts=nil, echo=true)
66
+ def pick_multiple_result(results, prompt_message, exacts=nil, echo=true, default=[])
67
67
 
68
68
  # exact match?
69
69
  return results.select {|r| exacts.split(',').include? r.first} if exacts
@@ -72,9 +72,17 @@ def pick_multiple_result(results, prompt_message, exacts=nil, echo=true)
72
72
  return results if results.count < 2
73
73
 
74
74
  selections = TTY::Prompt.new(interrupt: :exit).multi_select(prompt_message, filter: true, per_page: 20, echo: echo) do |menu|
75
+ # add choices
75
76
  results.each do |result|
76
77
  menu.choice result.join(' | '), result.first
77
78
  end
79
+
80
+ # defaults
81
+ keys = results.collect {|r|r.first}
82
+ default_indexes = default.map {|d| keys.index(d) + 1}
83
+ if default.any?
84
+ menu.default *default_indexes
85
+ end
78
86
  end
79
87
 
80
88
  return results.select {|r| selections.include? r.first}
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Cl
4
4
  module Magic
5
- VERSION = "1.2.2"
5
+ VERSION = "1.2.4"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cl-magic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Don Najd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-31 00:00:00.000000000 Z
11
+ date: 2023-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake