Class: RBT::Cookbooks::GobolinuxRecipesComparer

Inherits:
Base show all
Defined in:
lib/rbt/linux/gobolinux/gobolinux_recipes_comparer.rb

Overview

RBT::Cookbooks::GobolinuxRecipesComparer.new

Constant Summary collapse

REMOTE_RECIPES_HOMEPAGE =
#

REMOTE_RECIPES_HOMEPAGE

#
'http://recipes.gobolinux.org/r/'

Constants inherited from LeanPrototype

LeanPrototype::ALL_COLOUR_METHODS, LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, LeanPrototype::DAY_NAMES, LeanPrototype::NAMESPACE, LeanPrototype::SILENT_REDIRECTION

Class Method Summary collapse

Instance Method Summary collapse

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

Methods inherited from LeanPrototype

#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, #otomato, #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_name, #return_program_name_for_gobolinux_systems, #return_program_name_via_program_information, #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, #rpn, #run_simulation=, #run_simulation?, #sdir, #sdir_return_pwd, #set_be_silent, #set_be_verbose, #set_first_commandline_argument, #set_namespace, #set_use_colours, #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

#initialize(i = nil, run_already = true) ⇒ GobolinuxRecipesComparer

#

initialize

#


43
44
45
46
47
48
49
50
51
# File 'lib/rbt/linux/gobolinux/gobolinux_recipes_comparer.rb', line 43

def initialize(
    i           = nil,
    run_already = true
  )
  register_sigint
  reset
  set_input(i)
  run if run_already
end

Class Method Details

.[](i = ARGV) ⇒ Object

#

RBT::Cookbooks::GobolinuxRecipesComparer[]

#


145
146
147
# File 'lib/rbt/linux/gobolinux/gobolinux_recipes_comparer.rb', line 145

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

Instance Method Details

#input?Boolean

#

input?

#

Returns:

  • (Boolean)


73
74
75
# File 'lib/rbt/linux/gobolinux/gobolinux_recipes_comparer.rb', line 73

def input?
  @input
end

#iterate_over_the_resultsObject

#

iterate_over_the_results

#


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/rbt/linux/gobolinux/gobolinux_recipes_comparer.rb', line 95

def iterate_over_the_results
  @scanned_results.each_with_index {|line, index| index += 1
    if line.include? '&ver='
      splitted = line.split('&ver=')
      program_name = splitted.first.downcase
      program_version = splitted.last
      if program_version.include?('-r') and
         program_version =~ /\d+$/ # End with a regex.
        end_position = (program_version.index('-r')-1)
        program_version = program_version[0 .. end_position]
      end
      e
      e orange(index)
      e
      if does_include?(program_name, :do_not_use_aliases)
        opne 'The program '+sfancy(program_name)+' is included.'
        opne 'The remote program version is '+simp(program_version)+'.'
        local_program_version = RBT.swift_return_version_of_this_program(program_name)
        opne 'The local program version is '+simp(local_program_version)+'.'
        a = gem_version(local_program_version)
        b = gem_version(program_version)
        if a and b
          if a < b
            opne 'The remote version appears to be more up to date than'
            opne 'the local version. This means that you could update.'
          end
        else
          e 'Something went wrong with local version ('+sfancy(local_program_version)+
            ') and program version ('+sfancy(program_version)+').'
        end
      else
        opne 'The program '+sfancy(program_name)+' is NOT included.'
      end
      e
    end
  }
end

#read_in_dataset_from_the_remote_webpageObject

#

read_in_dataset_from_the_remote_webpage

#


88
89
90
# File 'lib/rbt/linux/gobolinux/gobolinux_recipes_comparer.rb', line 88

def read_in_dataset_from_the_remote_webpage
  @dataset = open(REMOTE_RECIPES_HOMEPAGE).read
end

#resetObject

#

reset (reset tag)

#


56
57
58
59
# File 'lib/rbt/linux/gobolinux/gobolinux_recipes_comparer.rb', line 56

def reset
  super()
  infer_the_namespace
end

#runObject

#

run (run tag)

#


136
137
138
139
140
# File 'lib/rbt/linux/gobolinux/gobolinux_recipes_comparer.rb', line 136

def run
  read_in_dataset_from_the_remote_webpage
  scan_for_remote_versions
  iterate_over_the_results
end

#scan_for_remote_versionsObject

#

scan_for_remote_versions

#


80
81
82
83
# File 'lib/rbt/linux/gobolinux/gobolinux_recipes_comparer.rb', line 80

def scan_for_remote_versions
  use_this_regex = /<tr><td>\s*<a class='RecipeTitle' href='\?list=(.+?)'>/ # See: http://rubular.com/r/a3dgeZ3gb1
  @scanned_results = @dataset.scan(use_this_regex).flatten
end

#set_input(i = '') ⇒ Object

#

set_input

#


64
65
66
67
68
# File 'lib/rbt/linux/gobolinux/gobolinux_recipes_comparer.rb', line 64

def set_input(i = '')
  i = i.first if i.is_a? Array
  i = i.to_s.dup
  @input = i
end