mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2026-09-19 14:53:49 +00:00
Stub HardwareInformation (hardware survey) class, added LegacyManifest and LegacyManifastPackage handling classes
This commit is contained in:
95
lib/worker/api/legacy_manifest.rb
Normal file
95
lib/worker/api/legacy_manifest.rb
Normal file
@@ -0,0 +1,95 @@
|
||||
module W3DHubLauncher
|
||||
class Worker
|
||||
class Api
|
||||
class LegacyManifest
|
||||
attr_reader :game, :type, :version, :base_version, :files, :dependencies
|
||||
|
||||
def initialize(file_path)
|
||||
@document = REXML::Document.new(File.read(file_path))
|
||||
root = @document.root
|
||||
|
||||
@game = root["game"]
|
||||
@type = root["type"]
|
||||
@version = root["version"]
|
||||
@base_version = root["baseVersion"]
|
||||
|
||||
@files = []
|
||||
@dependencies = []
|
||||
|
||||
parse_files
|
||||
parse_dependencies
|
||||
end
|
||||
|
||||
def patch?
|
||||
@type == "Patch"
|
||||
end
|
||||
|
||||
def full?
|
||||
@type == "Full"
|
||||
end
|
||||
|
||||
def parse_files
|
||||
@document.root.elements.each("//File") do |element|
|
||||
@files.push(ManifestFile.new(element, @version))
|
||||
end
|
||||
end
|
||||
|
||||
def parse_dependencies
|
||||
@document.root.elements.each("//Dependency") do |element|
|
||||
@dependencies.push(Dependency.new(element))
|
||||
end
|
||||
end
|
||||
|
||||
class ManifestFile
|
||||
attr_reader :name, :checksum, :package, :patch_package, :removed_since, :from, :version
|
||||
|
||||
def initialize(xml, version)
|
||||
@data = xml
|
||||
|
||||
@name = @data["name"]
|
||||
@checksum = @data["checksum"]
|
||||
@package = @data["package"]
|
||||
@removed_since = @data["removedsince"]
|
||||
|
||||
xml.elements.each("Patch") do |patch|
|
||||
@patch = true
|
||||
|
||||
@from = patch["from"]
|
||||
|
||||
if @package.to_s.empty?
|
||||
@package = patch["package"]
|
||||
else
|
||||
@patch_package = patch["package"]
|
||||
end
|
||||
end
|
||||
|
||||
@version = version
|
||||
end
|
||||
|
||||
def removed?
|
||||
@removed_since
|
||||
end
|
||||
|
||||
def patch?
|
||||
@patch
|
||||
end
|
||||
|
||||
def full_and_patch?
|
||||
@package && @patch_package
|
||||
end
|
||||
end
|
||||
|
||||
class Dependency
|
||||
attr_reader :name, :removed_since
|
||||
|
||||
def initialize(xml)
|
||||
@data = xml
|
||||
|
||||
@name = @data["name"]
|
||||
@removed_since = @data["removed_since"]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user