Class: Cyberweb::CorrectImageEntriesInHtmlFile

Inherits:
Base
  • Object
show all
Defined in:
lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb

Overview

Cyberweb::CorrectImageEntriesInHtmlFile

Constant Summary collapse

DEFAULT_FILE =
#

DEFAULT_FILE

#
'/root/DiamondShell/html/DSA_COMPUTERSPIELE.html'
PATH_TO_THE_IMAGE_DIRECTORY =
#

PATH_TO_THE_IMAGE_DIRECTORY

#
'/home/x/data/images/'
ALSO_COPY_IMAGE_FILE =
#

ALSO_COPY_IMAGE_FILE

#
true

Constants inherited from Base

Base::HOME_DIRECTORY_OF_THE_USER_X, Base::NAMESPACE

Instance Method Summary collapse

Methods inherited from Base

#be_verbose, #be_verbose?, #cascading_style_sheets_directory?, #cd, #commandline_mode?, #copyright?, #css_comment, #delete_directory, #do_toggle, #e, #echo_raw, #filename?, #full_path_to_image_directory?, #html_colours?, #html_image, #htmlentities, #img_dir?, #infer_the_namespace, #initialize_the_configuration, #is_a_file?, #is_a_video_file?, #is_an_image_file?, #is_on_roebe?, #last_tag_used?, #last_tag_used_first_element?, #last_tag_used_id?, #mkdir, #mode?, #namespace?, #open_in_browser, #opne, #opnn, #remove_comments_from_this_string_but_preserve_CSS_rules, #remove_html, #return_all_directories, #return_date, #return_program_name, #return_pwd, #ruby_header?, #server_base_directory?, #set_commandline_mode, #set_last_tag_used, #update_the_image_directory, #use_this_relative_directory_for_custom_images?, #www_mode?

Methods included from BaseModule::FileRelatedFunctionality

#copy_this_file, #cpr, #delete_file, #filename_without_extension?, #read_file_via_utf8_encoding

Methods included from BaseModule

#attach_these_constants, #base_dir?, #beautiful_url, #cd, #create_the_internal_hash, #doctype?, #ee, #ensure_main_encoding, #esystem, #html_templates, #initialize_the_config_if_the_config_hash_is_empty, #internal_hash?, #log_dir?, #no_http, #random_alphabet_characters, #rarrow?, #rds, #remove_comments_from_this_string, #remove_numbers, #require_the_html_templates, #require_these, #return_file_size_in_kb_of, #return_html_comment, #ruby_sitelib_dir?, #sanitize_this_id, #server_base_directory?, #string_remote_image, #today?, #try_to_require_rack, #try_to_require_the_open_gem, #write_what_into

Methods included from BaseModule::ContentType

#content_type_is_html, #content_type_is_jpeg, #content_type_is_json, #content_type_is_plain_text

Methods included from BaseModule::CommandlineArguments

#append_to_the_commandline_arguments, #commandline_arguments?, #first_argument?, #parse_these_commandline_arguments, #second_argument?, #set_commandline_arguments

Methods included from BaseModule::Colours

#all_html_colours, #lightgreen, #rev, #sdir, #sfancy, #sfile, #simp, #steelblue, #tomato

Constructor Details

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

#

initialize

#


43
44
45
46
47
48
49
50
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 43

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

Instance Method Details

#copy_file(from, to) ⇒ Object

#

copy_file

We require absolute paths for the ‘to` argument to this method.

#


138
139
140
141
142
143
144
145
146
147
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 138

def copy_file(from, to)
  to = to.to_s.dup
  unless to.start_with? '/'
    to.prepend File.dirname(image_directory?)+'/'
  end
  unless File.exist? to
    opn; e 'Now copying `'+simp(from)+'` to `'+simp(to)+'`.'
    FileUtils.cp(from, to)
  end
end

#create_images_directoryObject

#

create_images_directory

#


109
110
111
112
113
114
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 109

def create_images_directory
  _ = @image_directory = File.dirname(file?)+'/images/'
  e 'Will create a directory at `'+sdir(_)+'`.'
  delete_directory(_)
  FileUtils.mkdir_p(_)
end

#dataset?Boolean Also known as: data?

#

dataset?

#

Returns:

  • (Boolean)


102
103
104
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 102

def dataset?
  @dataset
end

#image_directory?Boolean

#

image_directory?

#

Returns:

  • (Boolean)


129
130
131
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 129

def image_directory?
  @image_directory
end

#input?Boolean Also known as: file?

#

input?

#

Returns:

  • (Boolean)


84
85
86
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 84

def input?
  @this_html_file
end

#modify_original_datasetObject

#

modify_original_dataset

#


166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 166

def modify_original_dataset
  _ = [] # This will become the new dataset.
  @dataset.split(N).each {|entry|
    if entry.include? PATH_TO_THE_IMAGE_DIRECTORY
      # Copy the image if the user wanted to do this.
      if ALSO_COPY_IMAGE_FILE
        regex = /<img src="(\/\S+)"\s*/
        entry =~ regex
        from = $1.to_s.dup
        to   = File.basename(@image_directory)+'/'+File.basename(from)
        copy_file(from, to)
      end
      entry = replace_img_path(entry)
      entry.gsub!(/(<img src="(.+)")/, File.basename('\1'))
    end
    _ << entry
  }
  @dataset = _.join(N)
end

#read_in_dataset(i = input?) ) ⇒ Object

#

read_in_dataset

#


91
92
93
94
95
96
97
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 91

def read_in_dataset(i = input?)
  if File.exist? i
    @dataset = File.read(i)
  else
    e "No file at #{sfile(i)} exists."
  end
end

#replace_img_path(i) ⇒ Object

#

replace_img_path

#


152
153
154
155
156
157
158
159
160
161
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 152

def replace_img_path(i)
  splitted = i.split PATH_TO_THE_IMAGE_DIRECTORY
  if    splitted[-1].include? '.png'
    splitted[-1].gsub!(/(.+\.png)/) {|entry| File.basename(entry) }
  elsif splitted[-1].include? '.jpg'
    splitted[-1].gsub!(/(.+\.jpg)/) {|entry| File.basename(entry) }
  end
  target = (File.basename(@image_directory)+'/').squeeze('/')
  splitted.join(target)
end

#resetObject

#

reset (reset tag)

#


55
56
57
58
59
60
61
62
63
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 55

def reset
  super()
  # ======================================================================= #
  # === @dataset
  #
  # @dataset must be nil initially. 
  # ======================================================================= #
  @dataset = nil 
end

#runObject

#

run (run tag)

#


189
190
191
192
193
194
195
196
197
198
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 189

def run
  create_images_directory
  read_in_dataset
  n_entries = data?.scan(/images\//).size
  opn; e 'There are '+simp(n_entries.to_s)+' occurrences of IMG/'
  opn; e 'We will now modify that dataset.'
  modify_original_dataset
  save_new_file
  opn; e 'Finished.'
end

#save_new_fileObject

#

save_new_file

#


119
120
121
122
123
124
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 119

def save_new_file
  require 'save_File'
  what = dataset?
  into = file?
  SaveFile.write_what_into(what, into)
end

#set_this_html_file(i = DEFAULT_FILE) ⇒ Object

#

set_this_html_file

#


68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb', line 68

def set_this_html_file(i = DEFAULT_FILE)
  i = i.first if i.is_a? Array
  i = DEFAULT_FILE if i.nil?
  i = i.to_s.dup
  if i.start_with? 'file://'
    i[0, 'file://'.size] = ''
  end
  unless i.end_with? '.html'
    raise NotAHtmlFile, 'We can only work on .html files.'
  end
  @this_html_file = i
end