atk_toolbox 0.0.145 → 0.0.146

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: 81d2409b4a27038a1a67eddc395ae7011f6661b1f3757041546f309460c46512
4
- data.tar.gz: f92af6b3bb8f65d8e500e4b602001d06be85337c44daf9c508a137ff94a1ed9a
3
+ metadata.gz: ee7360620aad7d051e61244d65e447827376658930abdfa15139461799e750fd
4
+ data.tar.gz: 232c4358d173dc80c584979988e7d67685b4cdf937561ce4bf7c4ced901b5148
5
5
  SHA512:
6
- metadata.gz: 1248501b11111ea0a6052bf9d44571dcb5b6e4c9bac12117b215caf82045ee23fac51420afac94bb04304d6d244ca1f8095d990432f8e2cc37c843fefb488cf1
7
- data.tar.gz: 193cc7d5307a6e090ddc60ea03153fe67985554b5d12d79ce7d543a13662dc354ae54c8f75c27a33c5e50428bbf18ee644e68c84287012aef35221d67f0234bd
6
+ metadata.gz: 1e6a3af6e1bdd5973f8410bed1fe61cb136c3b6be2702e6ae969f3c832f9dfefe3a209037a7f43ac69ba267893e7e11327c2e5bbcfd8e90bdafbad9e8606a4e1
7
+ data.tar.gz: 755f9dbe27434729fbaf983a1d22c1f80db31a7f342ba45525a90f89b60ad3c7a3ba45b47d51634ad300e7cc29e1b67257d3854397f77039ce275b9ea791cc09
@@ -63,7 +63,7 @@ Console = Class.new do
63
63
  CACHE::prompt = TTY::Prompt.new
64
64
  end
65
65
  # generate interface for TTY prompt with lazy require
66
- for each in [ :ask, :keypress, :multiline, :mask, :yes?, :no?, :select, :multi_select, :enum_select, :expand, :collect, :suggest, :slider, :say, :ok, :warn, :error, :on ]
66
+ for each in [ :ask, :keypress, :multiline, :mask, :yes?, :no?, :select, :multi_select, :enum_select, :expand, :collect, :suggest, :slider, :say, :warn, :error ]
67
67
  eval(<<-HEREDOC)
68
68
  def #{each}(*args, **kwargs)
69
69
  self._load_prompt() if CACHE::prompt == nil
@@ -78,6 +78,11 @@ Console = Class.new do
78
78
  HEREDOC
79
79
  end
80
80
 
81
+ def ok(message)
82
+ puts message.green + "\n[press enter to continue]".light_black
83
+ gets
84
+ end
85
+ alias :ok? :ok
81
86
 
82
87
  attr_accessor :verbose
83
88
 
@@ -141,6 +141,52 @@ module FileSystem
141
141
  return output
142
142
  end
143
143
 
144
+ def self.merge(from, into: nil, force: true)
145
+ to = into
146
+ if !FS.exist?(from)
147
+ raise <<~HEREDOC
148
+
149
+
150
+ When calling FileSystem.merge(#{from.inspect}, into: #{into.inspect})
151
+ The path: #{from.inspect}
152
+ Doesn't exist
153
+ HEREDOC
154
+ end
155
+
156
+ # recursive case (folder)
157
+ if FS.is_folder(from)
158
+ # if theres a target file in the way
159
+ if FS.exist?(to) && ( !FS.is_folder(to) )
160
+ if force
161
+ # remove it
162
+ FS.delete(to)
163
+ else
164
+ # continue with the process
165
+ return
166
+ end
167
+ end
168
+ # create a folder if needed
169
+ if !FS.exist?(to)
170
+ FS.touch_dir(to)
171
+ end
172
+ # become recursive for all contents
173
+ for each in FS.ls(from)
174
+ FS.merge(from/each, into: to/each, force: force)
175
+ end
176
+ # base case (file)
177
+ else
178
+ if FS.exist?(to)
179
+ if force
180
+ FS.delete(to)
181
+ else
182
+ # do nothing
183
+ return
184
+ end
185
+ end
186
+ FS.copy(from: from, to: FS.dirname(to), new_name: nil)
187
+ end
188
+ end
189
+
144
190
  def self.copy(from:nil, to:nil, new_name:"", force: true, preserve: false, dereference_root: false)
145
191
  if new_name == ""
146
192
  raise "\n\nFileSystem.copy() needs a new_name: argument\nset new_name:nil if you wish the file/folder to keep the same name\ne.g. FileSystem.copy(from:'place/thing', to:'place', new_name:nil)"
@@ -1,3 +1,3 @@
1
1
  module AtkToolbox
2
- VERSION = '0.0.145'
2
+ VERSION = '0.0.146'
3
3
  end
@@ -64,7 +64,7 @@ class String
64
64
  end
65
65
 
66
66
  def unstyle
67
- self.gsub!(/\e\[([;0-9]+)m/,"")
67
+ self.gsub!(/\e\[([;0-9]+)m/,"") || self
68
68
  end
69
69
 
70
70
  def self.color_samples
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atk_toolbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.145
4
+ version: 0.0.146
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Hykin