class Senkyoshi::Resource
Public Class Methods
get_pre_data(_xml, _file_name)
click to toggle source
# File lib/senkyoshi/models/resource.rb, line 84 def self.get_pre_data(_xml, _file_name); end
Public Instance Methods
_find_directories(resources)
click to toggle source
# File lib/senkyoshi/models/resource.rb, line 46 def _find_directories(resources) resources.resources.map do |resource| if resource.respond_to?(:location) File.dirname(resource.location)[/csfiles.*/] end end.uniq.compact end
_fix_path(original_src, resources, dir_names)
click to toggle source
# File lib/senkyoshi/models/resource.rb, line 54 def _fix_path(original_src, resources, dir_names) xid = original_src.split("/").last file_resource = resources.detect_xid(xid) if file_resource "#{FILE_BASE}/#{file_resource.path}" else matching_dir = dir_names.detect do |dir| _matches_directory_xid?(xid, dir) end if matching_dir "#{DIR_BASE}/#{strip_xid(matching_dir)}" end end end
_matches_directory_xid?(xid, directory)
click to toggle source
# File lib/senkyoshi/models/resource.rb, line 41 def _matches_directory_xid?(xid, directory) dir_xid = directory[/xid-[0-9]+_[0-9]+\z/] xid == dir_xid end
_search_and_replace(resources, node_html, tag, attr)
click to toggle source
# File lib/senkyoshi/models/resource.rb, line 71 def _search_and_replace(resources, node_html, tag, attr) dir_names = _find_directories(resources) node_html.search(tag).each do |element| original_src = element[attr] if original_src path = _fix_path(original_src, resources, dir_names) element[attr] = path if path end end end
cleanup()
click to toggle source
# File lib/senkyoshi/models/resource.rb, line 18 def cleanup; end
fix_html(contents, resources)
click to toggle source
# File lib/senkyoshi/models/resource.rb, line 20 def fix_html(contents, resources) if contents && contents.respond_to?(:empty?) && !contents.empty? node_html = Nokogiri::HTML.fragment(contents) _search_and_replace(resources, node_html, "a", "href") _search_and_replace(resources, node_html, "img", "src") node_html.to_s else contents end end
matches_xid?(_xid)
click to toggle source
# File lib/senkyoshi/models/resource.rb, line 33 def matches_xid?(_xid) false end
strip_xid(name)
click to toggle source
# File lib/senkyoshi/models/resource.rb, line 37 def strip_xid(name) name.gsub(/__xid-[0-9]+_[0-9]+/, "") end