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