Class: Roebe::SetAliases
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/set_aliases.rb
Overview
Constant Summary
collapse
- FILE_EXAM_TOPICS =
'exam_topics.md'
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
Class Method Summary
collapse
-
.[](i = ARGV) ⇒ Object
# === Roebe::SetAliases[] ========================================================================= #.
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, #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) ⇒ SetAliases
66
67
68
69
70
71
72
73
|
# File 'lib/roebe/classes/set_aliases.rb', line 66
def initialize(
i = ARGV,
run_already = true
)
reset
set_commandline_arguments(i)
run if run_already
end
|
Class Method Details
.[](i = ARGV) ⇒ Object
351
352
353
|
# File 'lib/roebe/classes/set_aliases.rb', line 351
def self.[](i = ARGV)
new(i)
end
|
Instance Method Details
#autoupdate_aliases_mapped_to_the_upcoming_exams ⇒ Object
#
autoupdate_aliases_mapped_to_the_upcoming_exams
To invoke this method, do:
setaliases --autoupdate
#
118
119
120
121
122
123
124
125
126
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
171
172
173
174
175
176
|
# File 'lib/roebe/classes/set_aliases.rb', line 118
def autoupdate_aliases_mapped_to_the_upcoming_exams
begin
require 'studium/toplevel_methods/return_directory_for.rb'
dataset = Studium::ShowUpcomingExams.return_all_registered_upcoming_exams
all_local_directories = []
dataset.each {|key, hash|
this_university = hash[:university]
all_local_directories << ::Studium.return_directory_for(
key, this_university
)
}
all_exam_topics = []
all_local_directories.each {|path|
_ = path+FILE_EXAM_TOPICS
if File.exist? _
dataset_from_the_file_exam_topics_md = File.readlines(
_
).reject {|line|
line.strip.empty?
}.map {|inner_line|
inner_line.delete('-').strip
}
dataset_from_the_file_exam_topics_md.map! {|line|
unless line.end_with? '?'
line = line.dup if line.frozen?
line << '?'
end
line
}
all_exam_topics << dataset_from_the_file_exam_topics_md
all_exam_topics.flatten!
end
}
all_exam_topics.uniq!
opne 'We have obtained a total of '+
sfancy(all_exam_topics.size.to_s)+
' different exam topics.'
opne 'The top 9 entries will now be selected.'
use_this_hash = {}
top_nine = all_exam_topics[0 .. (9-1)]
top_nine.each_with_index {|entry, index| index += 1
use_this_hash[index] = entry
}
batch_create_new_aliases(use_this_hash)
exit
rescue LoadError
e 'File studium/toplevel_methods/return_directory_for.rb is not available.'
end
end
|
#batch_create_new_aliases(use_this_hash = new_hash?
) ⇒ Object
#
batch_create_new_aliases
#
274
275
276
277
278
279
280
|
# File 'lib/roebe/classes/set_aliases.rb', line 274
def batch_create_new_aliases(
use_this_hash = new_hash?
)
use_this_hash.each_pair {|alias_number, new_content|
Roebe.set_alias(alias_number, new_content)
}
end
|
#exchange_these_two_positions(a, b) ⇒ Object
#
exchange_these_two_positions
Use this method to exchange two aliases.
#
256
257
258
259
260
261
262
263
264
265
266
267
268
269
|
# File 'lib/roebe/classes/set_aliases.rb', line 256
def exchange_these_two_positions(a, b)
hash = Roebe::ReturnTenAliases[]
old_value_at_position_a = hash[a]
old_value_at_position_b = hash[b]
hash[a] = old_value_at_position_b
hash[b] = old_value_at_position_a
store_this_new_hash(hash)
end
|
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
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
|
# File 'lib/roebe/classes/set_aliases.rb', line 181
def (
i = commandline_arguments?
)
if i.is_a? Array
i.each {|entry| (entry) }
else
case i when /:(.+)/i
_ = $1.to_s.dup
result = Studium.map_meta_exam_theme_to_corresponding_exam_themes(_.to_sym)
result.each_with_index {|this_alias, index| index += 1
@internal_hash[:new_hash][index] = this_alias
}
batch_create_new_aliases
when /^-?-?move=(\d+),(\d+)$/,
/^-?-?exchange=(\d+),(\d+)$/, /^-?-?exchange(\d+),(\d+)$/, /^-?-?exchange(\d+)(\d+)$/ exchange_these_two_positions(
$1.to_s.dup.to_i,
$2.to_s.dup.to_i
)
when /^-?-?shift(-|_)?one(-|_)?level(-|_)?upwards$/i,
/^-?-?sync(-|_)?one(-|_)?level(-|_)?down$/i
shift_entries_one_level_upwards
when /^-?-?auto(-|_)?update$/i,
/^-?-?auto(-|_)?check$/i
autoupdate_aliases_mapped_to_the_upcoming_exams
when /^-?-?help/i
show_help
exit
end
end
end
|
#new_hash? ⇒ Boolean
89
90
91
|
# File 'lib/roebe/classes/set_aliases.rb', line 89
def new_hash?
@internal_hash[:new_hash]
end
|
#read_from_the_file_exam_topics_and_return_array ⇒ Object
#
read_from_the_file_exam_topics_and_return_array
#
244
245
246
247
248
249
|
# File 'lib/roebe/classes/set_aliases.rb', line 244
def read_from_the_file_exam_topics_and_return_array
dataset = readlines_with_proper_encoding(FILE_EXAM_TOPICS).map {|line|
line.chomp.delete('-').lstrip+'?'
}
return dataset
end
|
78
79
80
81
82
83
84
|
# File 'lib/roebe/classes/set_aliases.rb', line 78
def reset
super()
@internal_hash[:new_hash] = {} end
|
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
|
# File 'lib/roebe/classes/set_aliases.rb', line 326
def run
_ = commandline_arguments?
if (_.first == FILE_EXAM_TOPICS) and File.exist?(FILE_EXAM_TOPICS)
i = read_from_the_file_exam_topics_and_return_array
end
remove_hyphened_arguments_from_the_commandline_arguments
[i].flatten.compact.each_with_index {|this_alias, index| index += 1
@internal_hash[:new_hash][index] = this_alias
}
batch_create_new_aliases
end
|
#set_new_hash(i) ⇒ Object
Also known as:
store_this_as_the_new_hash, store_this_new_hash
#
set_new_hash
The format of the Hash should be key-value pairs where the key specifies the number of that particular alias to be used.
#
288
289
290
|
# File 'lib/roebe/classes/set_aliases.rb', line 288
def set_new_hash(i)
@internal_hash[:new_hash] = i
end
|
#shift_entries_one_level_upwards ⇒ Object
#
shift_entries_one_level_upwards
This method will shift all aliases one level up, so alias1 becomes alias2, alias2 becomes alias3 and so forth.
Entry level 1 will remain as it is though.
#
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
|
# File 'lib/roebe/classes/set_aliases.rb', line 301
def shift_entries_one_level_upwards
hash = Roebe::ReturnTenAliases[]
new_hash = {}
hash.each_pair {|alias_number, alias_value|
alias_number += 1
unless alias_number > 10 new_hash[alias_number] = alias_value
end
}
new_hash[1] = hash[1]
store_this_as_the_new_hash(new_hash)
end
|
#show_help ⇒ Object
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/roebe/classes/set_aliases.rb', line 96
def show_help
help_string = <<-EOF
#{rev}The following options are #{lightblue('documented')}#{rev}:
--shift-one-level-upwards # set_aliases --shift-one-level-upwards
--move=2,9 # exchange positions 2 and 9
--autoupdate # auto-update the aliases with
# content from #{FILE_EXAM_TOPICS} file
EOF
e help_string
end
|