Class: Roebe::Rdate
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/rdate.rb
Overview
Constant Summary
collapse
- ARRAY_MONTHS =
%w(
Jänner Februar März
April Mai Juni
Juli August September
Oktober November Dezember
)
- ARRAY_MONTHS_SHORTCUTS =
#
ARRAY_MONTHS_SHORTCUTS
#
%w(
JAN FEB MAR APR MAY JUN JUL AUG SEP OKT NOV DEC
)
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, #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
#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) ⇒ Rdate
#
initialize
This class can be called like in this way:
rdate 02.03.2007 17:22:47
rdate 12.JUL.2007 17:21:00
rdate 29.AUG.2007 19:20:00
rdate today 22:31:00
#
57
58
59
60
61
62
63
64
|
# File 'lib/roebe/classes/rdate.rb', line 57
def initialize(
i = ARGV,
run_already = true
)
reset
set_commandline_arguments(i)
run if run_already
end
|
Instance Method Details
#create_date ⇒ Object
#
create_date
This method will turn the arguments into “proper” arguments for the date command.
#
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
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
# File 'lib/roebe/classes/rdate.rb', line 143
def create_date
if @string.include? ' '
first_part, hours_part = @string.split ' '
else first_part = 'today' hours_part = @string
end
splitted_hours_part = hours_part.split ':'
if splitted_hours_part[1].to_i > 60
modified = splitted_hours_part[1].to_s
modified[0,1] = '5'
_ = []
_ << splitted_hours_part[0] << modified
_ << splitted_hours_part[2] if splitted_hours_part[2]
hours_part = _.join(':')
end
case first_part.downcase when 'def','today','tod'
first_part = ::Time.now.strftime('%d.%m.%Y')
when /^-?-?OPEN/i
open_this_file_in_editor; exit
end
if first_part.count('.') == 2
set_year(first_part.split('.')[-1])
end
month = first_part.split('.')[1]
if ARRAY_MONTHS_SHORTCUTS.include? month
real_sanitized_index = ARRAY_MONTHS_SHORTCUTS.index(month) + 1
first_part = first_part.split '.'
first_part[1] = real_sanitized_index
first_part = first_part.join '.'
end
first_part_refined = first_part.split('.')[0..1].reverse.join '.'
begin
@string = "#{first_part_refined}.#{@year} #{hours_part}".dup
@string.tr!('.','/')
@string = 'date -s "'+@string+'"'
opn; e @string
system @string
rescue Exception => error
warn error.class.to_s+': '
pp error
e 'An error happened in the method '+__method__.to_s+'().'
e @string
end
end
|
#determine_the_main_string_from_the_commandline_arguments ⇒ Object
#
determine_the_main_string_from_the_commandline_arguments
#
234
235
236
|
# File 'lib/roebe/classes/rdate.rb', line 234
def determine_the_main_string_from_the_commandline_arguments
@string = commandline_arguments?.flatten.join(' ').strip
end
|
#get_current_date_and_time ⇒ Object
#
get_current_date_and_time
This method will be invoked by create_date() and will simply return a format such as the following:
12.JUL.2007 17:41:00
The format to parse is will be:
"Fri Jul 20 20:15:53 +0200 2007"
#
121
122
123
124
|
# File 'lib/roebe/classes/rdate.rb', line 121
def get_current_date_and_time
@time_now = ::Time.now.strftime('%d.%m.%Y %H:%M:%S')
return @time_now
end
|
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
|
# File 'lib/roebe/classes/rdate.rb', line 210
def (
i = @string )
case i when 'FUTURE'
@string = '11.10.2015 03:25:15' when /^-?-?help$/i,
''
show_usage_examples
else
if input?.strip.empty?
show_usage_examples
else
create_date end
end
end
|
#open_this_file_in_editor ⇒ Object
#
open_this_file_in_editor
#
129
130
131
132
133
|
# File 'lib/roebe/classes/rdate.rb', line 129
def open_this_file_in_editor
require 'esystem' unless Object.const_defined? :Esystem
_ = ENV['EDITOR']+' '+__FILE__
Esystem.esystem _
end
|
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/roebe/classes/rdate.rb', line 69
def reset
super()
infer_the_namespace
@string = ''.dup
@weekday = Date::DAYNAMES[Date.today.wday] set_year
end
|
241
242
243
244
|
# File 'lib/roebe/classes/rdate.rb', line 241
def run
determine_the_main_string_from_the_commandline_arguments
end
|
#set_year(i = ::Time.now.year.to_s) ⇒ Object
#
set_year
This set the @year variable. The problem is that this may be incorrect depending on whether Time.now.year returns the right result or not. For instance, Nov 2013 this defaulted to 2014, which seems to be the hardware clock.
#
88
89
90
91
|
# File 'lib/roebe/classes/rdate.rb', line 88
def set_year(i = ::Time.now.year.to_s)
@year = i.to_s
end
|
#show_usage_examples ⇒ Object
#
show_usage_examples (show help tag)
Just help the user by showing some examples.
#
98
99
100
101
102
103
104
105
106
|
# File 'lib/roebe/classes/rdate.rb', line 98
def show_usage_examples
e rev+'To change the '+sfancy('date')+rev+', please supply at '\
'least one argument, as in:'
e
e steelblue(" rdate #{get_current_date_and_time}")
e steelblue(' rdate def 17:00:00')
e steelblue(' rdate today 18:00:00')
e
end
|
#string? ⇒ Boolean
Also known as:
input?
203
204
205
|
# File 'lib/roebe/classes/rdate.rb', line 203
def string?
@string
end
|