Class: Roebe::TrivialTimeParser

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

Constant Summary collapse

DEFAULT_ARGUMENT =
#

DEFAULT_ARGUMENT

#
'1stunde 5minuten'
ONE_MINUTE =
#

ONE_MINUTE

#
60
ONE_HOUR =
#

ONE_HOUR

#
60 * ONE_MINUTE

Constants inherited from Base

Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE

Instance Attribute Summary collapse

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

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

Constructor Details

#initialize(i = DEFAULT_ARGUMENT, run_already = true) ⇒ TrivialTimeParser

#

initialize

All will be converted to seconds anyway, and stored in @s.

#


35
36
37
38
39
40
41
42
# File 'lib/roebe/classes/time/trivial_time_parser.rb', line 35

def initialize(
    i           = DEFAULT_ARGUMENT,
    run_already = true
  )
  reset
  set_s(i)
  run if run_already
end

Instance Attribute Details

#n_hoursObject (readonly)

Returns the value of attribute n_hours.



28
29
30
# File 'lib/roebe/classes/time/trivial_time_parser.rb', line 28

def n_hours
  @n_hours
end

Instance Method Details

#calculate_how_many_secondsObject Also known as: run

#

calculate_how_many_seconds

This will calculate how many seconds i.e. 8 hours are.

#


152
153
154
155
156
# File 'lib/roebe/classes/time/trivial_time_parser.rb', line 152

def calculate_how_many_seconds
  @s = (
    @n_hours * ONE_HOUR + @n_minutes * ONE_MINUTE
  ).to_i unless @s > 0
end

#n_minutes?Boolean Also known as: n_minutes

#

n_minutes?

#

Returns:

  • (Boolean)


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

def n_minutes?
  @n_minutes
end

#resetObject

#

reset

#


47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/roebe/classes/time/trivial_time_parser.rb', line 47

def reset
  super()
  infer_the_namespace
  # ==================================================================== #
  # === @s
  # ==================================================================== #
  @s = 0 # sleep for this amount, in seconds.
  # ==================================================================== #
  # === @n_hours
  #
  # The following two variables depend on the @s variable.
  # ==================================================================== #
  @n_hours   = 0
  # ==================================================================== #
  # === @n_minutes
  # ==================================================================== #
  @n_minutes = 0
end

#s?Boolean Also known as: s

#

s?

#

Returns:

  • (Boolean)


69
70
71
# File 'lib/roebe/classes/time/trivial_time_parser.rb', line 69

def s?
  @s
end

#sanitize_string(i = @s) ⇒ Object

#

sanitize_string

The plural form is easier to handle, hence we convert.

#


98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/roebe/classes/time/trivial_time_parser.rb', line 98

def sanitize_string(
    i = @s
  )
  i = i.to_s.dup
  # ==================================================================== #
  # Perform some sanitization.
  # ==================================================================== #
  i.sub!(/std/,    'stunden')
  i.sub!(/stunde/, 'stunden') if i =~ /stunde /
  i.sub!(/minute/, 'minuten') if i =~ /minute /
  i.sub!(/stunden/,' stunden')
  i.sub!(/minuten/,' minuten')
  # ==================================================================== #
  # Split the input string.
  # ==================================================================== #
  splitted_string = i.split(' ').map(&:strip)
  # ==================================================================== #
  # Now, it depends on how many entries we have found.
  # We will make some assumptions about it.
  # ==================================================================== #
  case splitted_string.size
  when 1 # Assume only one argument was given.
  when 2
    set_n_hours splitted_string[0].to_i
    set_n_minutes
  when 4 # assume both hours and minutes were given
    set_n_hours splitted_string[0].to_i
    set_n_minutes splitted_string[2].to_i
  else
    opn; e 'Dont know what to do with this ... '+sfancy(splitted_string.size.to_s)
  end
  i = i.to_i
  return i
end

#set_n_hours(i = @s) ⇒ Object

#

set_n_hours

#


143
144
145
# File 'lib/roebe/classes/time/trivial_time_parser.rb', line 143

def set_n_hours(i = @s)
  @n_hours = i.to_i
end

#set_n_minutes(i = 0) ⇒ Object

#

set_n_minutes

#


136
137
138
# File 'lib/roebe/classes/time/trivial_time_parser.rb', line 136

def set_n_minutes(i = 0)
  @n_minutes = i
end

#set_s(i = DEFAULT_ARGUMENT) ⇒ Object

#

set_s

This method will assign to the @s variable.

#


78
79
80
81
82
83
84
# File 'lib/roebe/classes/time/trivial_time_parser.rb', line 78

def set_s(i = DEFAULT_ARGUMENT)
  i = i.join(' ') if i.is_a? Array
  i = DEFAULT_ARGUMENT if i.nil?
  # string = '6 std 8 minuten' # testing here
  i = sanitize_string(i)
  @s = i
end