Class: RBT::Cookbooks::CheckForNewReleaseOnRubygems
Overview
RBT::Cookbooks::CheckForNewReleaseOnRubygems
Constant Summary
collapse
- RUBYGEMS_ORG_DOWNLOADS_URL =
#
RUBYGEMS_ORG_DOWNLOADS_URL
#
'https://rubygems.org/downloads/'
- USE_THIS_REGEX =
/ <a rel="nofollow" class="gem__link t-list__item" id="download" href="\/downloads\/(.+).gem">Download<\/a>/
LeanPrototype::ALL_COLOUR_METHODS, LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, LeanPrototype::DAY_NAMES, LeanPrototype::NAMESPACE, LeanPrototype::SILENT_REDIRECTION
Instance Method Summary
collapse
#add_these_programs_were_updated, #array_these_programs_were_updated?, #commandline_size_query_was_issued?, #correct_for_common_mistakes_in_program_names, #dataset?, #distrowatch_url?, #do_use_wget, #ensure_download_mode_is_system_wget_from_now_on, #menu, #notify_the_user_that_no_downloads_have_occurred, #obtain_dataset_from_the_remote_webpage, #report_that_these_programs_were_updated, #report_the_remote_webpage, #return_local_version_of_this_program, #show_help, #that_remote_URL_should_be_at, #update_entry, #use_wget?
Methods inherited from Base
#cat, #cd_back_to_the_current_working_directory, #consider_reporting_how_many_programs_are_registered, #cookbook_files?, #copy_recursively, #delete_code_of_conduct?, #determine_appdir_prefix_from_this_input, #directory_validation?, #do_not_show_names, #fast_return_file_size_of_this_program, #file_last_symlinked_program?, #file_programs_version_url, #gem_version, #is_a_64bit_system?, #is_ccache_available?, #is_porg_available?, #is_this_binary_registered?, #is_this_program_included?, #make_command?, #make_install_command?, #new_cookbook_instance_for, #program_exists?, #publish_list_of_all_programs_version, #rcp, registered_binaries?, #remove_symlink, #rename_kde_konsole_tab, #repackage, #report_n_programs, #report_working_directory, #return_compile_time_statistics, #return_n_random_characters, #return_version_of_this_program, #run_make_then_make_install, #sanitize_url1_entry, #set_source_directory, #show_overview_over_available_utility_scripts, #symlink_all_files_from_this_directory_to_that_directory, #system_tags?, #upload_list_of_all_programs_version, #use_yaml_database_for_tags?, #warn_and_exit, #wget
#a_or_an?, #abbreviations?, #absolute_path, #action, #add_to_the_commandline_arguments, #all_binaries?, #all_files_from, #all_libraries?, #allowed_cookbook_entries?, #appdir_location_of?, #append_onto_the_internal_hash, #append_what_into, #archive_type_of?, #available_programs?, #be_quiet?, #be_verbose?, #begins_with_a_comment?, #capitalize_first_alphabetical_character, #cd_to_the_log_directory, #cd_to_the_temp_directory, #change_directory, #change_permission, #cheering_person?, #chmod, #chop_off_archive, #clear_commandline_arguments, #cliner, #coloured_and_padded_e, #coloured_and_padded_esystem, #coloured_esystem, #colourize_directory_for_system_results, #colourize_this_error, #colourize_this_file_path, #colourize_this_warning, #commandline_arguments?, #commandline_arguments_without_hyphens?, #comment, #convert_dd_mm_yyyy_to_its_long_variant, #convert_env_variable, #copy_directory, #copy_files, #cpr, #create_directory, #current_hour?, #dd_mmm_yyy, #debug, #debug?, #directory_expanded_cookbooks?, #disable_colours, #display_md5sum?, #do_not_debug, #does_the_cookbook_include_this_program?, #does_this_expanded_cookbook_file_exist_for_this_program?, #does_this_file_exist?, #does_this_file_exist_and_is_it_a_file?, #e, #eblue, #ecomment, #ecrimson, #edir, #editor?, #efancy, #eimp, #enable_colours, #enable_debug, #ensure_main_encoding_for, #eparse, #esystem, #esystem_gold, #etomato, #ewarn, #exit_program, #expanded_cookbooks_directory_exists?, #extract_this_archive, #extract_to?, #file_compiled_programs?, #file_dirname_retaining_trailing_slash, #file_predefined_installation_instructions?, #file_specification_of_registered_cookbook_entries, #find_cookbook_alias_for, #find_this_yaml_file, #first_argument?, #first_non_hyphen_argument?, #get_all_directories_from, #get_all_files_from, #get_all_programs, #get_date, #get_extended_date, #get_files_and_directories_from, #go_to_base_dir, #home_dir?, #host_system?, #infer_the_namespace, #internal_hash?, #internal_hash_set_commandline_arguments, #is_an_archive?, #is_directory?, #is_file?, #is_github_url?, #is_make_available?, #is_meson_installed?, #is_on_gobolinux?, #is_on_windows?, #is_roebe?, #is_superuser?, #is_symlink?, #is_this_a_header?, #is_this_a_library?, #is_this_program_included?, #iso_encoding?, #load_dataset_from_this_expanded_cookbook, #load_yaml, #load_yaml_file_from_the_cookbook_directory_for_this_program, #log_directory?, #main_encoding?, #meson_build_file_exists?, #months?, #move_file, #n_programs_are_available?, #n_programs_available?, #namespace?, #no_directory_exists_at, #no_directory_was_found_at, #no_opn, #no_such_file_exists, #open_in_browser, #open_in_editor, #opncomment, #opne, #opnef, #opnerev, #opnerror, #opnesystem, #opnewarn, #opnfancy, #opnn, #packages_directory?, #path_to_this_expanded_cookbooks_dataset, #pkgconfig_directory?, #populate_the_internal_hash_with_default_values, #predefined_installation_instructions?, #prepend_this_commandline_argument, #program_version_of?, #project_base_directory?, #project_yaml_directory?, #query_path?, #rarrow?, #read_file, #read_file_in_default_encoding, #read_file_with_default_encoding, #readlines, #readlines_with_proper_encoding, #register_sigint, #registered_cookbook_entries?, #remove, #remove_archive_from_the_end, #remove_comments_from_each_line, #remove_directory, #remove_double_slashes, #remove_file, #remove_newlines, #remove_parens, #remove_symlink, #remove_the_first_commandline_argument, #remove_this_commandline_argument, #remove_this_entry_from_the_commandline_arguments, #remove_trailing_ANSII_escape_code, #remove_unnecessary_data_from_url, #rename, #report_pwd, #require_the_rbt_aliases, #reset_the_internal_hash, #return_all_archives_from_this_directory, #return_appdir_prefix, #return_commandline_arguments_with_leading_hyphens, #return_current_hour_minutes_second, #return_date, #return_day_of_the_month_based_on_utc, #return_full_time, #return_hours_minutes_seconds_based_on_utc, #return_location_to_this_programs_yaml_file, #return_month_based_on_this_number, #return_month_based_on_utc, #return_opnn, #return_program_information, #return_program_name_for_gobolinux_systems, #return_pwd, #return_unicode_warning_symbol_or_empty_string, #return_utc, #return_utc_time_in_a_format_similar_to_slackware, #return_weekday_based_on_utc, #return_year_based_on_utc, #rev, #run_simulation=, #run_simulation?, #sdir, #sdir_return_pwd, #set_be_silent, #set_be_verbose, #set_first_commandline_argument, #set_namespace, #set_use_opn, #set_xorg_buffer, #sfancy, #sfile, #silent_redirection?, #silently_create_this_directory_if_it_does_not_yet_exist, #simp, #source_base_directory?, #ssym, #stderr, #store_into_this_directory?, #string_right_arrow?, #swarn, #symlink, #sysbin_directory?, #sysetc_directory?, #sysinclude_directory?, #syslib_directory?, #sysshare_directory?, #system_directory?, #temp_directory?, #to_bool, #to_camelcase, #to_iso_encoding, #to_unicode, #today?, #touch, #try_to_require_beautiful_url, #try_to_require_the_environment_information_gem, #try_to_require_the_extracter_gem, #try_to_require_the_open_gem, #try_to_require_the_xorg_buffer, #try_to_require_wget, #try_to_return_a_special_compile_component, #unicode_cliner, #unicode_middle_cliner, #use_colours=, #use_colours?, #use_opn=, #use_opn?, #utf_encoding?, #verbose_truth, #word_wrap, #write_what_into, #write_what_into_via_unicode, #yes_or_no
Constructor Details
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 44
def initialize(
remote_url,
run_already = true
)
reset
set_remote_url(
remote_url
)
case remote_url
when :dont_run_yet
run_already = false
end
run if run_already
end
|
Instance Method Details
#apply_the_main_regex_onto_the_dataset ⇒ Object
#
apply_the_main_regex_onto_the_dataset
#
171
172
173
174
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 171
def apply_the_main_regex_onto_the_dataset
@dataset =~ USE_THIS_REGEX
@remote_program_version = $1.to_s.dup
end
|
#check_this_remote_url(remote_url) ⇒ Object
#
check_this_remote_url
#
195
196
197
198
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 195
def check_this_remote_url(remote_url)
set_remote_url(remote_url)
run
end
|
#colourize_this_local_version(i) ⇒ Object
#
colourize_this_local_version
#
121
122
123
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 121
def colourize_this_local_version(i)
springgreen(i)
end
|
#compare_the_remote_program_version_with_the_local_program_version ⇒ Object
#
compare_the_remote_program_version_with_the_local_program_version
#
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 128
def compare_the_remote_program_version_with_the_local_program_version
reset_main_array
program_name = File.basename(@homepage)
local_version = action(:SanitizeCookbook, program_name) { :fast }.program_version?
remote_program_version = ProgramInformation.new(@remote_program_version).version?
if remote_program_version == local_version
opne "The local program #{sfancy(program_name)} is "\
"#{turquoise('up to date')}"\
"! (At version: #{colourize_this_local_version(local_version)})"
else
remote_download_url =
"#{RUBYGEMS_ORG_DOWNLOADS_URL}#{@remote_program_version}.gem"
opne "Now updating to a new program version "\
"at `#{sfancy(remote_download_url)}`."
update_entry(remote_download_url)
@array_we_did_update_these_programs << remote_download_url
end
unless @array_we_did_update_these_programs.empty?
opne "#{rev}The following "\
"#{simp(@array_we_did_update_these_programs.size.to_s)}"\
" #{rev}programs were updated:"
@array_we_did_update_these_programs.each {|remote_url|
e sfancy(" #{remote_url}")
}
RBT.set_array_these_ruby_gems_were_updated(
@array_we_did_update_these_programs
)
end
end
|
#identify_homepage ⇒ Object
#
identify_homepage
This method will determine the homepage of the given .gem file at hand. Keep in mind that a homepage on rubygems.org may have ‘-’ characters.
#
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 93
def identify_homepage
_ = remote_url?
if _.nil?
opne 'An URL must be provided to this class.'
exit
elsif _.end_with? '.gem'
basename = File.basename(_)
basename = ProgramInformation.new(basename).program_name?
basename << '/' unless basename.end_with? '/'
@homepage = 'https://rubygems.org/gems/'+basename
opne "Next checking for any #{crimson('updates')}"\
" on the remote URL #{sfancy(@homepage)}"
obtain_dataset
apply_the_main_regex_onto_the_dataset
compare_the_remote_program_version_with_the_local_program_version
end
end
|
#obtain_dataset(use_this_url = @homepage) ⇒ Object
#
obtain_dataset
The first URL to this method should be the remote homepage of the given .gem at hand.
#
182
183
184
185
186
187
188
189
190
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 182
def obtain_dataset(
use_this_url = @homepage
)
begin
@dataset = URI.open(use_this_url).read
rescue OpenURI::HTTPError
opne 'OpenURI::HTTPError error for `'+sfancy(use_this_url)+'`.'
end
end
|
#remote_url? ⇒ Boolean
82
83
84
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 82
def remote_url?
@remote_url
end
|
#reset ⇒ Object
62
63
64
65
66
67
68
69
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 62
def reset
super()
infer_the_namespace
@array_we_did_update_these_programs = []
end
|
#reset_main_array ⇒ Object
114
115
116
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 114
def reset_main_array
@array_we_did_update_these_programs = []
end
|
#run ⇒ Object
203
204
205
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 203
def run
identify_homepage
end
|
#set_remote_url(i) ⇒ Object
74
75
76
77
|
# File 'lib/rbt/check_for_updates/check_for_new_release_on_rubygems.rb', line 74
def set_remote_url(i)
i = i.first if i.is_a? Array
@remote_url = i
end
|