Class: Roebe::DuplicateFiles
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/duplicate_files.rb
Overview
Constant Summary
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
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, #mv, #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(i = ARGV, run_already = true) ⇒ DuplicateFiles
20
21
22
23
24
25
26
27
|
# File 'lib/roebe/classes/duplicate_files.rb', line 20
def initialize(
i = ARGV,
run_already = true
)
reset
set_commandline_arguments(i)
run if run_already
end
|
Instance Method Details
#all_files? ⇒ Boolean
78
79
80
|
# File 'lib/roebe/classes/duplicate_files.rb', line 78
def all_files?
@internal_hash[:all_files]
end
|
#do_work_on_all_files(all_files = all_files?
) ⇒ Object
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/roebe/classes/duplicate_files.rb', line 85
def do_work_on_all_files(
all_files = all_files?
)
shorter_name_for_all_files = all_files.map {|entry|
File.basename(entry).
delete_suffix(
'.'+File.extname(entry).delete('.')
)
}
selection = to_counted_hash(shorter_name_for_all_files).select {|key, value|
value > 1
}
if selection.empty?
opne 'No duplicates were found.'
else
report_these_duplicate_files(selection.keys)
end
end
|
#report_these_duplicate_files(i, all_files = all_files?
) ⇒ Object
#
report_these_duplicate_files
Here we pass the short name, so we have to expand towards the full name. Calling .uniq() is fine within this method, as we will obtain the corret names on our own anyway.
#
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/roebe/classes/duplicate_files.rb', line 52
def report_these_duplicate_files(
i,
all_files = all_files?
)
show_the_absolute_path = @internal_hash[:show_the_absolute_path]
e steelblue('Duplicate files are:')
br
result = []
i.uniq.each {|duplicate_file|
result << all_files.select {|entry|
entry =~ /#{duplicate_file}\./
}
result.flatten!
}
result.each {|found_this_file|
unless show_the_absolute_path
found_this_file = File.basename(found_this_file)
end
e " #{sfile(found_this_file)}"
}
br
end
|
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/roebe/classes/duplicate_files.rb', line 32
def reset
super()
infer_the_namespace
@internal_hash[:all_files] = return_files
@internal_hash[:show_the_absolute_path] = false
end
|
107
108
109
|
# File 'lib/roebe/classes/duplicate_files.rb', line 107
def run
do_work_on_all_files
end
|