Class: Studium::Curricula::CurriculumAsString

Inherits:
Base
  • Object
show all
Defined in:
lib/studium/curricula/curriculum_as_string.rb

Overview

Studium::CurriculumAsString

Constant Summary

Constants inherited from Base

Base::COMMON_YEAR_DAYS_IN_MONTH, Base::LEFT_PADDING, Base::NAMESPACE, Base::N_CHARACTERS_PER_LINE

Constants included from Studium::Colours

Studium::Colours::COLOURS

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#add_proper_year_entry_to_this_line, #already_solved_this_lva_number?, #append_what_into, #available_topics_as_short_name, #average_grade, #bachelor_master_or_diploma, #be_silent, #be_verbose?, #beautiful_url, #change_directory, #cheering_person, #chmod, #cliner, #colour_for_ects_points, #colourize_percentage, #convert_this_array_of_lectures_into_the_full_dataset, #copy, #course_filter, #cpruby, #create_directory, #create_file, #csv_file?, #current_month?, #current_semester?, #dataset?, #datum?, #day_month_year, #debug?, #delete_file, #directory_of_the_exam_topics?, #directory_to_my_exam_topics, #directory_to_the_exam_topics?, #disable_colours, #disable_colours_globally, #do_not_be_verbose, #do_not_use_opn, #do_these_curricula_include_both_a_bachelor_and_a_master_curriculum?, #does_this_line_include_a_german_weekday?, #does_this_line_include_a_html_colour?, #does_this_line_include_an_english_weekday?, #does_this_line_start_with_a_german_weekday?, #e, #ecomment, #editor?, #ee, #egrey, #enable_colours, #enable_colours_globally, #enable_debug, #encoding?, #english_to_german_weekday, #ensure_that_a_base_directory_exists_for_this_file, #ensure_that_the_log_directory_exists, #eparse, #esystem, #etomato, #exit_program, #extract_dd_mm_yyyy, #fetch_this_curriculum, #file_important_exams?, #file_lecture_information?, #file_passed_exams_per_month, #file_read_with_proper_encoding, #filter_away_already_answered_questions, #filter_away_invalid_questions, #filter_for_all_passed_exams, #find_corresponding_exam_topic, #from_curriculum_id_to_university, #german_date_notation, #german_weekday?, #german_weekdays?, #german_weekend_for?, #german_yes_or_no, #has_a_bachelor_and_a_master_curriculum?, #has_a_bachelor_curriculum?, #has_a_master_curriculum?, #has_lva_dates_registered?, #has_this_exam_topic_been_solved?, #has_year_entry?, #hh_mm_ss_dd_mm_yyyy, #horizontal_bar?, #html_log_directory?, #infer_the_namespace, #initialize_the_internal_hash, #internal_hash?, #is_a_master_lecture?, #is_a_registered_curriculum?, #is_a_weekday?, #is_connected_to_the_www?, #is_german_weekday?, #is_on_roebe?, #is_prüfungsimmanent?, #is_this_a_registered_exam_topic?, #is_this_a_valid_html_colour?, #is_this_day_today?, #is_this_lecture_a_practical_course?, #konsole_support?, #last_file?, #lectures_from_indi1, #lectures_from_indi2, #lectures_from_indi3, #lectures_from_indi4, #lectures_from_the_bachelor_genetik_curriculum, #lectures_from_the_individual_vektor_curricula, #left_arrow?, #load_yaml_dataset, #map_input_to_this_curriculum_filename, #move_file, #n_days_difference_from_today_to_this_day, #n_seconds_to_n_days, #namespace?, #no_ext_name, #no_file_exists_at, #number_to_month, #obtain, #obtain_lectures_from_this_curriculum, #open_in_browser, #open_in_editor, #opne, #opnerev, #opnn, #padded_current_month?, #parse_dd_mm_yyyy, #parse_this_line_for_date_entry, #path_to_exam_topic?, #project_yaml_directory?, #rds, #read_dataset_from_a_curriculum_file, #read_in_exam_dataset_from_this_file, #read_this_file_with_default_encoding, #readlines_from_this_input_file, #register_sigint, #remove_empty_strings, #remove_escape_sequences, #remove_internal_comments, #remove_leading_comments, #remove_leading_weekday_names_from, #remove_newlines, #remove_tags_from_this_input, #rename_kde_konsole_tab, #rename_konsole_tab?, #replace_all_html_colours_in_this, #replace_bold_token_with_default_colour, #replace_italic_token_with_default_colour, #replace_italic_token_with_this_colour, #replace_regular_numbers_with_unicode_numbers, #replace_underline_token_with_default_colour, #replace_underline_token_with_this_colour, #require_open_uri, #reset_the_internal_state, #return_all_bachelor_lectures, #return_all_exams_on_this_day, #return_all_numbers_from, #return_all_registered_curricula, #return_all_steop_lectures, #return_current_year, #return_dataset_for_this_topic, #return_dataset_from_this_curriculum_file, #return_dd_mm_yy_and_time_from, #return_directory_for, #return_ects_points_from_these_lectures, #return_either_grey_or_the_custom_colour_for_answers, #return_either_grey_or_the_custom_colour_for_questions, #return_file_for_this_curriculum, #return_german_name_for_this_english_month, #return_german_weekday_of?, #return_hh_mm_ss_from, #return_hour_from_this, #return_lectures_from_bachelor_vektor_curriculum, #return_lectures_with_at_the_least_one_upcoming_exam, #return_local_path_of_this_pwdstud, #return_lva_number_of_this_lecture, #return_month_fitting_to_this_input, #return_n_days_until_monday, #return_n_days_until_sunday, #return_n_exam_questions_in, #return_n_questions_were_answered_for_this_topic, #return_name_of_the_weekday, #return_name_of_this_curriculum, #return_name_of_this_curriculum_based_on_its_id_number, #return_opnn, #return_passed_courses, #return_pwd, #return_random_curriculum, #return_sanitized_dataset_from_the_file_lecture_information, #return_solved_lectures, #return_steop_lectures, #return_the_remote_homepage_url, #return_this_line_has_n_characters_as_html_colour_tags, #return_title_from_this_curriculum_file, #right_arrow?, #rinstall2, #roebe_exam_directory?, #roebe_path_to_file_lecture_information?, #ruby_src_dir_at_home?, #sanitize_this_topic, #sanitize_url, #select_for_prüfungsimmanente_LVs, #select_lectures_with_this_key, #set_be_verbose, #set_this_cd_alias_to, #set_xorg_buffer, #sfancy, #shall_we_make_use_of_unicode_symbols?, #show_todays_date, #silently_open_in_browser, #simp, #sort_these_lecture_names_by_time, #spacer, #studium_log_dir?, #this_month_has_n_days?, #total_ects_points_passed, #translate_dd_mm_yyyy_to_weekday, #try_to_require_html_templates, #try_to_require_the_open_gem, #try_to_require_the_rcfiles, #try_to_require_the_verbose_truth_gem, #turn_this_array_into_the_full_dataset, #unicode_blocks_line, #use_colours?, #use_opn?, #vertical_bar?, #web_liner, #weekday?, #weekdays?, #word_wrap, #write_what_into, #www_connection_is_unavailable, #yaml_dir?, #yellowrev, #yes_or_no

Methods included from RunmodeModule

#commandline?, #runmode?, #set_commandline_mode, #set_runmode, #set_www_mode, #www_mode?

Methods included from Studium::CommandlineArgumentsModule

#commandline_arguments?, #commandline_arguments_joined, #commandline_arguments_with_hyphens?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_non_hyphen_argument?, #reset_the_commandline_arguments, #set_commandline_arguments, #set_first_argument

Methods included from HtmlColoursModule

#aquamarine, #blanchedalmond, #brown, #cadetblue, #chocolate, #coral, #cornflowerblue, #crimson, #cyan, #darkblue, #darkcyan, #darkgoldenrod, #darkgreen, #darkkhaki, #darkolivegreen, #darkorange, #darkred, #darkseagreen, #darkslateblue, #darkslategray, #darkturquoise, #deepskyblue, #firebrick, #forestgreen, #gold, #goldenrod, #green, #grey, #indianred, #khaki, #lavender, #lawngreen, #lightblue, #lightcoral, #lightgreen, #lightred, #lightseagreen, #lightskyblue, #lightslategray, #lightslategrey, #lime, #limegreen, #mediumaquamarine, #mediumblue, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mediumvioletred, #mintcream, #moccasin, #oldlace, #olive, #olivedrab, #orange, #orangered, #orchid, #palegoldenrod, #palegreen, #paleturquoise, #palevioletred, #peru, #plum, #powderblue, #red, #rosybrown, #royalblue, #saddlebrown, #salmon, #sandybrown, #seagreen, #sienna, #silver, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #tan, #teal, #thistle, #tomato, #turquoise, #violet, #whitesmoke, #yellow, #yellowgreen

Methods included from Studium::Colours

#bold_blue, #bold_red, #bold_yellow, cadetblue, #cadetblue, #chartreuse, #coral, coral, #cornflowerblue, cornflowerblue, crimson, #cyan, cyan, darkgoldenrod, #darkgoldenrod, #darkgray, darkgreen, darkolivegreen, darkseagreen, #darkslateblue, darkslateblue, #darkslategray, darkslategray, #darkturquoise, darkturquoise, #deepskyblue, deepskyblue, default_colour, #dimgray, disable_colours, #dodgerblue, e, #efancy, enable_colours, #erev, #ewarn, #forestgreen, forestgreen, gold, #goldenrod, goldenrod, #grey, grey, indianred, #indianred, khaki, #khaki, lawngreen, #lawngreen, lightblue, lightgreen, lightsalmon, #lightseagreen, lightseagreen, lightskyblue, #lightskyblue, #lightslategray, lightslategray, #lightsteelblue, lime, #lime, limegreen, #limegreen, #mediumaquamarine, mediumaquamarine, #mediumorchid, #mediumpurple, mediumpurple, #mediumseagreen, mediumseagreen, #mediumslateblue, mediumslateblue, #mediumspringgreen, mediumspringgreen, #mediumturquoise, mediumturquoise, #oldlace, olive, #olive, olivedrab, #olivedrab, orange, orangered, #orchid, orchid, palegreen, #palegreen, paleturquoise, #paleturquoise, palevioletred, #papayawhip, peru, #peru, plum, #plum, #powderblue, powderblue, rev, #rev?, royalblue, saddlebrown, #saddlebrown, #sandybrown, sandybrown, sdir, #sdir, seagreen, #seagreen, sfancy, #sfancy, sfile, #sfile, #simp, simp, #skyblue, skyblue, slateblue, #slategray, slategray, springgreen, #springgreen, #steelblue, steelblue, #swarn, swarn, #tan, tan, teal, #teal, #tomato, tomato, turquoise, use_colours?, use_this_colour_for_exam_answers, use_this_colour_for_exam_questions, #yellow, yellowgreen, #yellowgreen

Constructor Details

#initialize(commandline_arguments = nil, run_already = true) ⇒ CurriculumAsString

#

initialize

#


37
38
39
40
41
42
43
44
45
46
# File 'lib/studium/curricula/curriculum_as_string.rb', line 37

def initialize(
    commandline_arguments = nil,
    run_already           = true
  )
  reset
  set_commandline_arguments(
    commandline_arguments
  )
  run if run_already
end

Class Method Details

.[](i = '') ⇒ Object

#

Studium::Curricula::CurriculumAsString[]

#


272
273
274
# File 'lib/studium/curricula/curriculum_as_string.rb', line 272

def self.[](i = '')
  new(i)
end

Instance Method Details

#a(i) ⇒ Object

#

a

#


164
165
166
# File 'lib/studium/curricula/curriculum_as_string.rb', line 164

def a(i)
  HtmlTags.a(i)
end

#add(i = "\n") ⇒ Object

#

add (add tag)

#


122
123
124
125
126
127
128
129
130
131
132
# File 'lib/studium/curricula/curriculum_as_string.rb', line 122

def add(i = "\n")
  case i
  when :hr
    if use_html_for_display?
      i = "<hr>\n"
    else
      i = "\n"
    end
  end
  @_ << i
end

#add_newline_if_in_html_modeObject

#

add_newline_if_in_html_mode

This actually means a
tag really.

#


84
85
86
87
88
89
90
# File 'lib/studium/curricula/curriculum_as_string.rb', line 84

def add_newline_if_in_html_mode
  if @make_ready_for_html_display
    '<br>'
  else
    ''
  end 
end

#add_with_br(i = '') ⇒ Object Also known as: br

#

add_with_br

This also will add a newline.

#


153
154
155
156
157
158
159
# File 'lib/studium/curricula/curriculum_as_string.rb', line 153

def add_with_br(i = '')
  if display_for_html?
    add("#{i}<br>\n")
  else
    add("#{i}\n")
  end
end

#add_with_newline(i) ⇒ Object

#

add_with_newline

#


115
116
117
# File 'lib/studium/curricula/curriculum_as_string.rb', line 115

def add_with_newline(i)
  add("#{i}\n")
end

#hrObject

#

hr

#


137
138
139
# File 'lib/studium/curricula/curriculum_as_string.rb', line 137

def hr
  add(:hr)
end

#html_bold_or_not(i) ⇒ Object Also known as: bold_or_not_bold, bold_or_no_bold

#

html_bold_or_not

#


103
104
105
106
107
108
109
# File 'lib/studium/curricula/curriculum_as_string.rb', line 103

def html_bold_or_not(i)
  if display_for_html?
    return "<b>#{i}</b>"
  else
    i
  end
end

#make_ready_for_html_display?Boolean Also known as: display_for_html?, use_html_for_display?

#

make_ready_for_html_display?

#

Returns:

  • (Boolean)


95
96
97
# File 'lib/studium/curricula/curriculum_as_string.rb', line 95

def make_ready_for_html_display?
  @make_ready_for_html_display
end

#reportObject

#

report

#


144
145
146
# File 'lib/studium/curricula/curriculum_as_string.rb', line 144

def report
  e @_
end

#resetObject

#

reset (reset tag)

#


51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/studium/curricula/curriculum_as_string.rb', line 51

def reset
  super()
  # ======================================================================= #
  # === @_
  # ======================================================================= #
  @_ = ''.dup
  # ======================================================================= #
  # === @make_ready_for_html_display
  #
  # If the following constant is set to true then the dataset will
  # be assumed to be displayed as HTML. That way we will use
  # tags such as <b> and so forth.
  # ======================================================================= # 
  @make_ready_for_html_display = true
  # ======================================================================= #
  # === @dataset_from_the_file_lecture_information
  # ======================================================================= #
  @dataset_from_the_file_lecture_information =
    return_dataset_from_the_file_lecture_information
end

#result?Boolean

#

result?

#

Returns:

  • (Boolean)


75
76
77
# File 'lib/studium/curricula/curriculum_as_string.rb', line 75

def result?
  @_
end

#runObject

#

run (run tag)

#


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
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
# File 'lib/studium/curricula/curriculum_as_string.rb', line 171

def run
  _ = first?
  if _.nil? or _.empty?
    _ = :indi2
  end
  if _.end_with? '.yml'
   _.sub!(/\.yml$/,'')
  end
  if _ and _.is_a?(String)
    _ = _.to_sym
  end
  if @make_ready_for_html_display
    # ===================================================================== #
    # Add the title next.
    # ===================================================================== #
    name = Studium.name_of_this_curriculum(_)
    add_with_newline '<html><title>'+
                     'Curricula-Viewer ('+name+')'+
                     '</title><body>'
    add_with_newline(
      HtmlTags.h2(name)
    )
    add_with_newline(
      'Loaded from the file: '+
      bold_or_not_bold(
        location_of_this_curriculum_file?(_)
      )+
      br+
      hr
    )
  end
  # ======================================================================= #
  # Find the correct curriculum next:
  # ======================================================================= #
  dataset = return_lectures_from_this_curriculum(_)
  sum_of_ects = 0
  dataset.each_with_index {|this_lecture, index| index += 1
    pointer  = @dataset_from_the_file_lecture_information[this_lecture]
    n_ects   = pointer[:ects].to_f
    already_solved = pointer[:already_solved]
    sum_of_ects += n_ects
    homepage = pointer[:homepage]
    if @make_ready_for_html_display
      this_lecture = "<b>#{this_lecture}</b>"
    end
    # ===================================================================== #
    # Add the name of the lecture next.
    # ===================================================================== #
    modified_index = bold_or_not_bold("(#{index})")
    this = "#{modified_index} #{this_lecture}".dup
    if already_solved and (already_solved == true)
      this << bold_or_not_bold(" [Already solved. \\o/]")
    end
    add_with_br(this)
    # ===================================================================== #
    # Add the hyperlink next.
    # ===================================================================== #
    add_with_br(
      a(
        href:      "#{homepage}",
        content:   "#{homepage}",
        css_style: 'padding-left:2em'
      )+
      add_newline_if_in_html_mode+
      "\n n ECTS: #{bold_or_no_bold(n_ects.to_s)}\n"
    )
    if @make_ready_for_html_display
      add :hr
    end
  }
  # ======================================================================= #
  # Add how many ECTS points this curriculum has.
  # ======================================================================= #
  add_with_br 'This curriculum has '+
              html_bold_or_not(dataset.size.to_s)+' courses and '+
              html_bold_or_not(sum_of_ects.to_s)+' ECTS points.'
  # ======================================================================= #
  # Add two random links.
  # ======================================================================= #
  this_curriculum = Studium.return_random_curriculum
  add_with_br(
    a(
      href:       File.basename(this_curriculum),
      content:    File.basename(this_curriculum),
      css_style: 'padding-left: 1.5em'
    )
  )
  this_curriculum = Studium.return_random_curriculum
  add_with_br(
    a(
      href:       File.basename(this_curriculum),
      content:    File.basename(this_curriculum),
      css_style: 'padding-left: 1.5em'
    )
  )
  report
end