Class: Roebe::AlphabeticalSorter
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/alphabetical_sorter.rb
Overview
Roebe::AlphabeticalSorter
Constant Summary
collapse
- ALPHABET =
('a' .. 'z').to_a
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
Class Method Summary
collapse
-
.[](i = ARGV) ⇒ Object
# === Roebe::AlphabeticalSorter[] ========================================================================= #.
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, #show_help, #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
#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(commandline_arguments = ARGV, run_already = true) ⇒ AlphabeticalSorter
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 32
def initialize(
commandline_arguments = ARGV,
run_already = true
)
reset
set_commandline_arguments(
commandline_arguments
)
run if run_already
end
|
Class Method Details
.[](i = ARGV) ⇒ Object
#
Roebe::AlphabeticalSorter[]
#
205
206
207
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 205
def self.[](i = ARGV)
new(i)
end
|
Instance Method Details
#append(i) ⇒ Object
102
103
104
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 102
def append(i)
append_onto_the_dataset("#{i}\n")
end
|
#append_onto_the_dataset(i) ⇒ Object
#
append_onto_the_dataset
#
95
96
97
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 95
def append_onto_the_dataset(i)
@result << i
end
|
#append_this_subset(current_character) ⇒ Object
137
138
139
140
141
142
143
144
145
146
147
148
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 137
def append_this_subset(
current_character
)
current_character.downcase!
if @hash_containing_all_arrays_that_have_to_be_sorted[current_character]
@hash_containing_all_arrays_that_have_to_be_sorted[current_character].each_pair {|key, value|
append(
key.ljust(30)+": #{value}"
)
}
end
end
|
#obtain_the_dataset(i = first?
) ⇒ Object
86
87
88
89
90
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 86
def obtain_the_dataset(
i = first?
)
@dataset = default_readlines(i) if i
end
|
#process_the_dataset ⇒ Object
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
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 153
def process_the_dataset
@dataset.each {|line|
next if line.start_with?('#') or line.strip.empty?
first_char = line[0,1]
splitted = line.split(':').map {|inner_entry| inner_entry.strip }
first = splitted.first
last = splitted.last
unless @hash_containing_all_arrays_that_have_to_be_sorted[first_char]
@hash_containing_all_arrays_that_have_to_be_sorted[first_char] = {}
end
@hash_containing_all_arrays_that_have_to_be_sorted[first_char][first] = last
}
sort_based_on_the_alphabet
use_this_regex = /# === ([a-z]{1}) tig/i
@dataset.each {|line|
if line.start_with?('#') or line.to_s.strip.empty?
if line.include?('tig')
line =~ use_this_regex
@current_character = $1.to_s.dup
append_onto_the_dataset(line)
append('# '+('='*75)+' #')
append_this_subset(@current_character)
append('')
else
append_onto_the_dataset(line)
end
else
end
}
end
|
46
47
48
49
50
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 46
def reset
super()
infer_the_namespace
reset_the_class
end
|
#reset_the_class ⇒ Object
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 55
def reset_the_class
@dataset = nil
reset_the_result
@current_character = nil
@hash_containing_all_arrays_that_have_to_be_sorted = {}
end
|
#reset_the_result ⇒ Object
79
80
81
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 79
def reset_the_result
@result = ''.dup
end
|
195
196
197
198
199
200
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 195
def run
reset_the_result
obtain_the_dataset process_the_dataset
store_the_result
end
|
#sort_based_on_the_alphabet ⇒ Object
#
sort_based_on_the_alphabet
#
109
110
111
112
113
114
115
116
117
118
119
120
121
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 109
def sort_based_on_the_alphabet
ALPHABET.each {|this_character|
_ = @hash_containing_all_arrays_that_have_to_be_sorted[this_character]
if _ sorted_keys = _.keys.sort
new_hash = {}
sorted_keys.each {|this_key|
new_hash[this_key] = @hash_containing_all_arrays_that_have_to_be_sorted[this_character][this_key]
}
@hash_containing_all_arrays_that_have_to_be_sorted[this_character] = new_hash
end
}
end
|
#store_the_result(what = @result, into = 'sorted_result.md') ⇒ Object
126
127
128
129
130
131
132
|
# File 'lib/roebe/classes/alphabetical_sorter.rb', line 126
def store_the_result(
what = @result,
into = 'sorted_result.md'
)
e "Storing into #{sfile(into)}."
write_what_into(what, into)
end
|