cl-magic 1.2.2 → 1.2.4

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: 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