cl-magic 1.2.3 → 1.2.6

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: b9bfdddcb9366c9f4ae7572f90e62c8936164cf6ed297df875a3ec1a4aafc352
4
- data.tar.gz: fbf1b6e10a1da40be5aecdff53e3c2a61ebbb17141b1c43261ea58df70043089
3
+ metadata.gz: ee9d7e3bde502a316983f3a3e60bce059f2db898be8bd14c16c3af083366814c
4
+ data.tar.gz: 4c122eff717df5d5b41c9e0e1aa900d263bb285aa3e21df5d20782da18ad2e1d
5
5
  SHA512:
6
- metadata.gz: 318b84707e1b6317b6a1284cb5ccb8850bcd8d99b43fe49b329157de83fe3bd89590fd3300f2117bcefd3d096a610d32d1f69021af8c1bb3b2a3da445bcf1425
7
- data.tar.gz: 47715835311863a6b08a15a0fb4ff95f6b8b0fdf73a2e77432708d3ed15fd4b2d5386007b62ba9ab0e64e3022057976f6a095dfd67bd31b3203765afdd785001
6
+ metadata.gz: 1d99fc06858b996a81885198a5eb599dc02ca571aa438782c4f73ab62bfad523a332f2a1202f3c8d44ee12c7be9f4d787719494893569c72dff6fbce84f51748
7
+ data.tar.gz: fd550cf63318a0615c32d410d5a588811d19de59d1c7f0df7f18c8dcb099ff7cbd21904ed509d6ed8987857205c7491676086da31c0a7d62ec4eb406614d4ef7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cl-magic (1.2.3)
4
+ cl-magic (1.2.6)
5
5
  activesupport
6
6
  baran
7
7
  concurrent-ruby
@@ -65,7 +65,11 @@ 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?
@@ -73,7 +77,8 @@ def do_set(options)
73
77
  @logger.info "enter to complete"
74
78
  @logger.puts ""
75
79
  options = dk_parts_hash.keys.collect {|k| [k.ljust(25, ' '), dk_parts_hash[k]['help']]}
76
- selected_parts = pick_multiple_result(options, "Which parts?", nil, false)
80
+ default = prev_saved_parts.collect{|p| p.ljust(25, ' ')}
81
+ selected_parts = pick_multiple_result(options, "Which parts?", nil, false, default)
77
82
  parts = selected_parts.collect {|o| o.first.strip}
78
83
  end
79
84
  File.open(filepath, 'w') { |file| file.write(parts.to_yaml) }
@@ -89,14 +94,12 @@ def do_set(options)
89
94
  do_clear(options)
90
95
  end
91
96
  when :add
92
- data = YAML.load_file(filepath)
93
- parts.each {|p| data << p}
94
- 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) }
95
99
  @logger.success "parts added"
96
100
  when :remove
97
- data = YAML.load_file(filepath)
98
- data.reject! { |p| parts.include?(p) }
99
- 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) }
100
103
  @logger.success "parts removed"
101
104
  end
102
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}
@@ -53,11 +53,18 @@ class YamlArgMunger
53
53
  return hash ? hash : {}
54
54
  end
55
55
 
56
- def merge_world_files(compose_hash, show_help=false)
56
+ def merge_world_files(compose_hash, show_help=false)
57
57
  if @dk_proj_path
58
58
  print_dk_help_line("dk-project-path", "#{@dk_proj_path}") if show_help and $stdout.isatty
59
59
 
60
- Dir.glob("#{@dk_proj_path}/*.yml").sort.each do |filepath|
60
+ # sorted yaml files
61
+ sorted_files = Dir.glob("#{@dk_proj_path}/*.{yml,yaml}", File::FNM_DOTMATCH).sort
62
+
63
+ # apply .local.yml last
64
+ sorted_files.push(sorted_files.shift) if sorted_files.first == "#{@dk_proj_path}/.local.yml"
65
+
66
+ # merge each file
67
+ sorted_files.each do |filepath|
61
68
  print_dk_help_line("dk-world", "#{filepath}") if show_help and $stdout.isatty
62
69
 
63
70
  # read file and replace
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Cl
4
4
  module Magic
5
- VERSION = "1.2.3"
5
+ VERSION = "1.2.6"
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.3
4
+ version: 1.2.6
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-09-05 00:00:00.000000000 Z
11
+ date: 2023-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake