Class: Roebe::FileRenamer

Inherits:
Base show all
Defined in:
lib/roebe/classes/file_renamer.rb

Overview

$RUBY_TOOLS/std_string_converter.rb

Constant Summary collapse

APPEND_THIS_TO_NEW_FILE_NAME =
#

APPEND_THIS_TO_NEW_FILE_NAME

#
''
USE_ONLY_BASENAME =
#

USE_ONLY_BASENAME

#
true
SHALL_WE_DOWNCASE =
#

SHALL_WE_DOWNCASE

#
false
SHALL_WE_RUN_THE_SYS_COMMAND =
#

SHALL_WE_RUN_THE_SYS_COMMAND

#
true

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, #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, #olivedrab, #open_in_browser, #opne, #opnesystem, #opnn, #orange, #orchid, #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, #silent_redirection?, #simp, #simple_esystem, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #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

Methods included from Base::CommandlineArguments

#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?

Constructor Details

#initialize(optional_commandline_arguments = ARGV, run_already = true) ⇒ FileRenamer

#

initialize

#


53
54
55
56
57
58
59
60
61
62
# File 'lib/roebe/classes/file_renamer.rb', line 53

def initialize(
    optional_commandline_arguments = ARGV,
    run_already                    = true
  )
  set_commandline_arguments(
    optional_commandline_arguments
  )
  reset
  run if run_already
end

Instance Method Details

#check_commandlineObject Also known as: menu

#

check_commandline

#


126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/roebe/classes/file_renamer.rb', line 126

def check_commandline
  case @commandline_arguments.first # case tag
  # ======================================================================= #
  # === HELP
  # ======================================================================= #
  when /^-?-?help/i
    show_help
    exit
  # ======================================================================= #
  # === SIMULATE
  # ======================================================================= #
  when 'SIMULATE','SIM','--simulate'
    set_simulate_only
  end
end

#rename_files(i = @array_files) ⇒ Object Also known as: rename_file

#

rename_file

The default action of this class.

#


147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
# File 'lib/roebe/classes/file_renamer.rb', line 147

def rename_files(
    i = @array_files
  )
  i.each { |file|
    if USE_ONLY_BASENAME
      file = File.basename(file)
    end
    src = '"'+file+'"'
    _ = file.dup
    # _.gsub!(/\.(\w)*$/,'') # This gets the first part
    # _.gsub!(/Immuno_Baccarini_/,'')
    # _.gsub!(/MMA_UFC_/,'')
    # ===================================================================== #
    # === Eliminate ".DVDRip.XviD-SAiNTS" strings.
    # ===================================================================== #
    i = Regexp.quote('.DVDRip.XviD-SAiNTS')
    _.sub!(/#{i}/,'')
    _.gsub!(/The Simpsons /,'')
    _.gsub!(/MOTIVATION_/,'')
    _.gsub!(/\.jpg/,'')
    _.gsub!(/^FAMILY_/,'')
    _.gsub!(/-/,'_')
    _.gsub!(/\] /,']_')
    _.gsub!(/S20E/,'')
    _.gsub!(/ \[rl\]_/,'')
    _.gsub!(/Simpsons /,'Simpsons_')
    _.gsub!(/_\[rl\]/,'')
    _.tr!(',','_')
    # ===================================================================== #
    # Get rid of "[DVDrip].[Sub.Eng]" parts.
    # ===================================================================== #
    var = Regexp.quote(".[DVDrip.].[Sub.Eng]")
    _.sub!(/#{var}/,'')
    _.gsub!(/\._\./,'.')
    _.gsub!(/\[DVDrip\]\.\[Sub\.Eng\]/,'')
    _.gsub!(/\.\./,'.')
    quoted = Regexp.quote("[DVDrip.].[Sub.Eng]")
    _.gsub!(/#{quoted}/,'')
    # ===================================================================== #
    # Convert into ä, ü and other Umlauts next.
    # ===================================================================== #
    _.gsub!(/ä/,'ä') if _.include? 'ä'
    _.gsub!(/ü/,'ü') if _.include? 'ü'
    _ = _.gsub(/ /,'') # apply this last, as it will kill empty spaces.
    # tmp = tmp.gsub(/avi/,'')
    # tmp = tmp.gsub(/\./,'')
    tmp = tmp.downcase if @shall_we_downcase
    dest = ('"'+_+'"').dup
    dest << APPEND_THIS_TO_NEW_FILE_NAME # Usually empty.
    check_commandline
    # ===================================================================== #
    # Next check for "-" dashes.
    # ===================================================================== #
    if src.include? '-'
      src.prepend('./')
      src.delete!('"') if src.include? '"'
    end
    if dest.include? '-'
      dest.prepend('./')
      dest.delete!('"') if dest.include? '"'
    end
    e src+' -> '+dest
    if @shall_we_run_the_sys_command
      FileUtils.mv(src, dest)
    else
      e slateblue('We will not do any modifications as we only simulate.')
    end
  }
end

#resetObject

#

reset

#


74
75
76
77
78
79
80
81
82
83
84
# File 'lib/roebe/classes/file_renamer.rb', line 74

def reset
  # ======================================================================= #
  # === @shall_we_run_the_sys_command
  # ======================================================================= #
  @shall_we_run_the_sys_command = SHALL_WE_RUN_THE_SYS_COMMAND
  # ======================================================================= #
  # === @array_files
  # ======================================================================= #
  @array_files = Dir["#{return_pwd}*"].reject {|entry| File.directory?(entry) }
  @shall_we_downcase = SHALL_WE_DOWNCASE
end

#runObject

#

run

#


220
221
222
# File 'lib/roebe/classes/file_renamer.rb', line 220

def run
  rename_files
end

#sanitize_string(argument) ⇒ Object

#

sanitize_string

#


89
90
91
# File 'lib/roebe/classes/file_renamer.rb', line 89

def sanitize_string(argument)
  argument.dup.tr('-','_')
end

#set_commandline_arguments(i) ⇒ Object

#

set_commandline_arguments

#


67
68
69
# File 'lib/roebe/classes/file_renamer.rb', line 67

def set_commandline_arguments(i)
  @commandline_arguments = [i].flatten.compact
end

#set_simulate_onlyObject Also known as: simulate_only

#

set_simulate_only

If we only wish to simulate, rather than run the command in question.

#


98
99
100
# File 'lib/roebe/classes/file_renamer.rb', line 98

def set_simulate_only
  @shall_we_run_the_sys_command = false
end

#show_helpObject

#

show_help (help tag)

#


119
120
121
# File 'lib/roebe/classes/file_renamer.rb', line 119

def show_help
  e '--simulate # do only simulate, dont make any changes'
end

#sys_cmd(i = @array_files) ⇒ Object

#

sys_cmd

perform the sys cmd

#


107
108
109
110
111
112
113
114
# File 'lib/roebe/classes/file_renamer.rb', line 107

def sys_cmd(i = @array_files)
  i.each { |tmp|
    sanitize_string(tmp)
    my_cmd  = 'mv "'+tmp + '" "' + yo + '"'
    efancy my_cmd
    system(my_cmd) if @shall_we_run_the_sys_command
  }
end