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