class SteamCodec::ACF::UserConfig

Attributes

AppInstallDir[RW]
BetaKey[RW]
GameID[RW]
Installed[RW]
Language[RW]
Name[RW]

Public Class Methods

new(userConfig = nil) click to toggle source
# File lib/steam_codec/acf.rb, line 123
def initialize(userConfig = nil)
    load(userConfig || KeyValues.new)
end
scalarFields() click to toggle source
# File lib/steam_codec/acf.rb, line 119
def self.scalarFields
    return [:Name, :GameID, :Installed, :AppInstallDir, :Language, :BetaKey]
end

Public Instance Methods

get(path = '', seperator = '.') click to toggle source
# File lib/steam_codec/acf.rb, line 138
def get(path = '', seperator = '.')
    return nil unless @UserConfig
    fields = path.split(seperator)
    return to_hash unless fields.first
    self.class.scalarFields.each do |field|
        if field.to_s.downcase == fields.first.downcase
            return self.send(field)
        end
    end
    @UserConfig.get(path, seperator)
end
load(userConfig) click to toggle source
# File lib/steam_codec/acf.rb, line 127
def load(userConfig)
    raise ArgumentError, "UserConfig must be instance of KeyValues" unless userConfig.is_a?(KeyValues)
    @UserConfig = userConfig
    @Name = @UserConfig.name if @UserConfig.key?(:name)
    @GameID = @UserConfig.gameid.to_i if @UserConfig.key?(:gameid)
    @Installed = !@UserConfig.installed.to_i.zero? if @UserConfig.key?(:installed)
    @AppInstallDir = @UserConfig.appinstalldir if @UserConfig.key?(:appinstalldir)
    @Language = @UserConfig.language if @UserConfig.key?(:language)
    @BetaKey = @UserConfig.BetaKey if @UserConfig.key?(:BetaKey)
end
to_hash() click to toggle source
# File lib/steam_codec/acf.rb, line 150
def to_hash
    result = {}
    self.class.scalarFields.each do |field|
        result[field.to_s] = self.send(field)
    end
    result
end