Class: Roebe::MonthlyActivityOnRubygems
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/monthly_activity_on_rubygems.rb
Overview
Roebe::MonthlyActivityOnRubygems
Constant Summary
collapse
- DEFAULT_INPUT =
'bioroebe'
- REMOTE_URL =
'https://rubygems.org/gems/'
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
Class Method Summary
collapse
-
.[](i = '') ⇒ Object
# === [] ========================================================================= #.
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
35
36
37
38
39
40
41
42
|
# File 'lib/roebe/classes/monthly_activity_on_rubygems.rb', line 35
def initialize(
i = nil,
run_already = true
)
reset
set_input(i)
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
162
163
164
|
# File 'lib/roebe/classes/monthly_activity_on_rubygems.rb', line 162
def self.[](i = '')
new
end
|
Instance Method Details
#dataset? ⇒ Boolean
136
137
138
|
# File 'lib/roebe/classes/monthly_activity_on_rubygems.rb', line 136
def dataset?
@dataset
end
|
85
86
87
|
# File 'lib/roebe/classes/monthly_activity_on_rubygems.rb', line 85
def input?
@input
end
|
#obtain_remote_dataset ⇒ Object
#
obtain_remote_dataset
#
143
144
145
146
147
148
|
# File 'lib/roebe/classes/monthly_activity_on_rubygems.rb', line 143
def obtain_remote_dataset
url = input?
e 'Now checking for the project '+simp(project_name?)+' on the '\
'remote URL `'+simp(url)+'`.'
@dataset = open(url).read
end
|
78
79
80
|
# File 'lib/roebe/classes/monthly_activity_on_rubygems.rb', line 78
def original_input?
@original_input
end
|
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
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
# File 'lib/roebe/classes/monthly_activity_on_rubygems.rb', line 169
def report
e; e 'We have found the following results.'; e
@hash.each_pair {|year, dataset|
e 'In the year '+simp(year)+' we have found:'
e
dataset.each_pair {|month, file_size|
current_month = month
index_for_the_current_month = Date::MONTHNAMES.index(month)
index_for_the_previous_month = index_for_the_current_month - 1
previous_month = Date::MONTHNAMES[index_for_the_previous_month]
_ = @hash[year]
file_size_of_the_previous_month = _[previous_month].to_i
if previous_month.nil? and current_month == 'January'
previous_month = 'December'
new_year = (year.to_i - 1).to_s file_size_of_the_previous_month = @hash[new_year][previous_month].to_i
end
if _.has_key? previous_month
@size_difference = (_[current_month].to_i - file_size_of_the_previous_month)
else if previous_month == 'December' and current_month == 'January'
else
@size_difference = (_[current_month].to_i - _[Date::MONTHNAMES[index_for_the_previous_month-1]].to_i)
end
end
month = (month.strip+':').ljust(10)
e ' '+month+' '+sfancy(file_size.to_s.strip.rjust(7))+
' (The previous month was '+(previous_month+';').ljust(10)+' size'\
' increase was +'+
orange(@size_difference.to_s.rjust(2))+' KB'
}; e
}
end
|
47
48
49
50
51
52
|
# File 'lib/roebe/classes/monthly_activity_on_rubygems.rb', line 47
def reset
super()
set_original_input
@size_difference = 0
try_to_require_open_uri
end
|
153
154
155
156
157
|
# File 'lib/roebe/classes/monthly_activity_on_rubygems.rb', line 153
def run
obtain_remote_dataset
sanitize_dataset
report
end
|
#sanitize_dataset(i = @dataset) ⇒ Object
92
93
94
95
96
97
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/monthly_activity_on_rubygems.rb', line 92
def sanitize_dataset(i = @dataset)
start_position = i.index(/versions since/)
@input = @input[start_position..-1]
regex_to_use = /<small class="gem__version__date">- (....* \d{1,2}, \d\d\d\d)<\/small>\s+<span class="gem__version__date">(\(\d+ KB\))<\/span>/
results = i.scan(regex_to_use)
@hash = {}
results.each {|array|
date = array.first
year = date.split(',').last.strip
month = date.split(' ').first.strip
file_size = array.last.delete('(').delete(')')
@hash[year] = {} unless @hash.has_key? year
@hash[year][month] = file_size unless @hash[year].has_key? month
}
end
|
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/roebe/classes/monthly_activity_on_rubygems.rb', line 57
def set_input(i = '')
i = i.first if i.is_a? Array
i = i.to_s.dup
i = DEFAULT_INPUT if i.empty?
set_original_input(i)
if i.include? '/'
i = File.basename(i)
end
@input = REMOTE_URL+i.to_s+'/versions'
end
|
71
72
73
|
# File 'lib/roebe/classes/monthly_activity_on_rubygems.rb', line 71
def set_original_input(i = nil)
@original_input = i
end
|