Class: Roebe::MoveFile
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/move_file.rb
Overview
Constant Summary
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
Class Method Summary
collapse
-
.[](from, to) ⇒ Object
# === Roebe::MoveFile[] ========================================================================= #.
Instance Method Summary
collapse
Methods inherited from Base
#actions, #append_this_onto_that_file, #append_what_into, #be_silent, #be_verbose?, #beautiful_url, #burlywood, #call_next, #chdir, #cheerful_guy, #cliner, #complex_esystem, #convert_global_env, #copy_directory, #copy_file, #cornflowerblue, #create_directory, #crimson, #current_month?, #current_time?, #current_year?, #cyan, #darkcyan, #darkgreen, #darkkhaki, #darkslateblue, #deeppink, #delete_symlink, #do_not_use_the_base_colours, #do_use_the_base_colours, #e, #ecomment, #editor_to_use?, #efancy, #eimp, #emphasis, #ensure_main_encoding, #ensure_utf_encoding, #eparse, #erev, #esteelblue, #etomato, #ewarn, #exit_program, #firebrick, #get_current_day, #get_current_month, #get_files_and_directories, #get_files_from, #get_german_name_for_this_weekday, #gold, #green, #grey, #hh_mm_ss, #hh_mm_ss_day_month_year, #home_dir?, #home_directory_of_user_x?, #infer_the_namespace, #internal_hash?, #is_a_directory?, #is_a_file?, #is_a_jpg_file?, #is_an_image_file?, #is_archive?, #is_audio_file?, #is_in_studium_dir?, #is_multimedia_file?, #is_on_roebe?, #is_on_windows?, #is_studium_available?, #is_symlink?, #is_this_a_ruby_file?, #is_video_file?, #iso_encoding?, #le, #left_colour, #lightblue, #lightgreen, #lightseagreen, #lightsteelblue, #lime, #limegreen, #localhost_to_data, #log_directory?, #main_encoding?, #mediumorchid, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mkdir_p, #n_days_in_this_month, #n_pages_in_this_pdf_file?, #namespace?, #no_file_exists_at, #ogrey, #olive, #olivedrab, #open_in_browser, #opne, #opnesystem, #opnn, #orange, #orchid, #orev, #palegoldenrod, #palevioletred, #pink, #powderblue, #programs_dir?, #project_base_dir?, #random_html_colour, #rds, #read_file_in_iso_encoding, #read_file_via_the_default_encoding, #read_lines_via_iso_encoding, #readlines_with_main_encoding, #red, #register_sigint, #remove, #remove_directory, #remove_file, #rename_kde_konsole_tab, #replace_localhost_with_data, #report_pwd, #require_rescue, #reset_the_internal_hash, #return_all_directories_from_this_directory, #return_all_files_from_this_directory, #return_current_directory, #return_dd_mm_yyyy, #return_file_or_directory_of, #return_files_from_pwd, #return_last_part_of_the_current_directory, #return_utc, #rev, #right_arrow?, #right_colour, #roebe_log_directory?, #rosybrown, #royalblue, #ruby_base_directory?, #run_in_background, #run_rcfiles_then_run_ata_via_qdbus, #sandybrown, #sdir, #seagreen, #set_be_verbose, #set_xorg_buffer, #sfancy, #sfile, #show_help, #silent_redirection?, #simp, #simple_esystem, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #string_italic, #swarn, #symlink, #teal, #temp_dir?, #to_camelcase, #to_counted_hash, #tomato, #touch, #try_to_require_the_beautiful_url_gem, #try_to_require_the_html_template, #try_to_require_the_open_gem, #try_to_require_the_program_information_gem, #try_to_require_the_xorg_buffer, #use_colours?, #verbose_truth, #weekday?, #word_wrap, #write_what_into, #yellow
#append_onto_the_commandline_arguments, #clear_commandline_arguments, #commandline_arguments?, #commandline_arguments_as_string?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_argument_without_leading_hyphens?, #has_an_argument_been_passed?, #remove_hyphened_arguments_from_the_commandline_arguments, #return_commandline_arguments_with_leading_hyphens, #second_argument?, #set_commandline_arguments
Constructor Details
#initialize(old_file = nil, new_position = nil, run_already = true, &block) ⇒ MoveFile
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/roebe/classes/move_file.rb', line 32
def initialize(
old_file = nil,
new_position = nil,
run_already = true,
&block
)
reset
set_old_file(old_file)
set_new_position(new_position)
if block_given?
yielded = yield
case yielded
when :be_silent,
:be_quiet
@be_verbose = false
end
end
run if run_already
end
|
Class Method Details
.[](from, to) ⇒ Object
207
208
209
|
# File 'lib/roebe/classes/move_file.rb', line 207
def self.[](from, to)
new(from, to)
end
|
Instance Method Details
176
177
178
179
|
# File 'lib/roebe/classes/move_file.rb', line 176
def glob(i)
i << '*' unless i.end_with? '*'
Dir[i]
end
|
#
pad
Pad the input with “” quotes.
#
186
187
188
|
# File 'lib/roebe/classes/move_file.rb', line 186
def pad(i)
return '"'+i.to_s+'"'
end
|
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/roebe/classes/move_file.rb', line 58
def reset
super()
infer_the_namespace
@be_verbose = true
@result = [] end
|
#result? ⇒ Boolean
Also known as:
result
193
194
195
|
# File 'lib/roebe/classes/move_file.rb', line 193
def result?
@result
end
|
200
201
202
|
# File 'lib/roebe/classes/move_file.rb', line 200
def run
try_to_move_the_file end
|
#set_new_position(i = '/Depot/jjj/hi_there') ⇒ Object
Also known as:
set_where_to
#
set_new_position
Our target, where the moved file or directory will reside at.
#
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/roebe/classes/move_file.rb', line 98
def set_new_position(
i = '/Depot/jjj/hi_there'
)
i = '/Depot/jjj/hi_there' if i.nil? i = i.to_s.dup i = rds(i)
unless i.include? '/' i.prepend return_pwd.dup
end
@new_position = i
end
|
#set_old_file(i = '/Depot/jjj/hi there') ⇒ Object
Also known as:
set_this_file
#
set_old_file
This file must be existing.
We must be careful when the input is an Array. For instance, a filename may be “/Depot/jjj/hi there” yet be passed as an Array to this method.
#
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/roebe/classes/move_file.rb', line 79
def set_old_file(
i = '/Depot/jjj/hi there'
)
i = '/Depot/jjj/hi there' if i.nil?
i = rds(i)
if i.include?(' ') and ! File.exist?(i) i = i.split(' ')
end if i.is_a? String
unless i.include? '/' i.prepend(return_pwd)
end if i.is_a? String
@old_file = i
end
|
#target_is_in_this_directory?(existing_file, new_file) ⇒ Boolean
#
target_is_in_this_directory?
Returns true if target is in this directory, else it will return false.
#
115
116
117
118
119
120
|
# File 'lib/roebe/classes/move_file.rb', line 115
def target_is_in_this_directory?(existing_file, new_file)
existing_file = return_pwd+existing_file unless existing_file.include? '/'
new_file = return_pwd+new_file unless new_file.include? '/'
return true if File.dirname(existing_file) == File.dirname(new_file)
return false end
|
#try_to_move_the_file(old_file = @old_file, new_position = @new_position) ⇒ Object
Also known as:
move_file, mv
#
try_to_move_the_file
This method will run FileUtils finally.
#
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
# File 'lib/roebe/classes/move_file.rb', line 127
def try_to_move_the_file(
old_file = @old_file,
new_position = @new_position
)
if old_file.is_a? Array old_file.each {|entry| try_to_move_the_file(entry, new_position) }
else
if old_file.include? '*' globbed = glob(old_file)
move_file(globbed, new_position)
else
old_file = glob(old_file+'*') unless File.exist?(old_file)
old_file = old_file.first if old_file.is_a? Array
old_file = old_file.to_s
if old_file == new_position
opnewarn 'Can not rename "'+col(old_file)+'" to the '+
'same name "'+col(new_position)+'".'
elsif File.exist? old_file
if @be_verbose
verb = 'moving'
verb = 'renaming' if target_is_in_this_directory?(old_file, new_position)
if old_file.include? ' '
padded_old_file = pad(old_file)
padded_new_position = pad(new_position)
else
padded_old_file = old_file
padded_new_position = new_position
end
opne 'Now '+verb+' '+sfile(padded_old_file)+
' to '+sfile(padded_new_position)+'.'
end
FileUtils.mv(old_file, new_position)
@result << [ new_position, old_file ]
else
opnewarn 'Sorry, there is no file at '+sfile(old_file)+'.'
end
end
end
end
|