VDF
VDF is a gem to convert Valve's KeyValue format to ruby hashes and back, based on the excellent node-steam/vdf
Installation
Add this line to your application's Gemfile:
gem 'vdf'
And then execute:
$ bundle
Or install it yourself as:
$ gem install vdf
Usage
Parsing a VDF file is simple:
require "vdf"
# Load VDF file into a string
vdf_contents = File.read("filename.vdf")
# Parse it
parsed = VDF.parse(vdf_contents)
# Pretty-print the result
p parsed
Creating one is too:
require "vdf"
# Set up hash to generate a VDF from
object = {
"string" => "string",
"false" => false,
"true" => true,
"number" => 1234,
"float" => 12.34,
"null" => nil,
"nested" => {
"string" => "string",
"deep" => {
"string" => "string"
}
}
}
# Generate a VDF string and output it
puts VDF.generate(object)
Performance comparison
Small VDF File
user system total real
vdf 0.015000 0.000000 0.015000 ( 0.013349)
vdf4r 0.391000 0.000000 0.391000 ( 0.389993)
Large VDF File (4MB - CS:GO's items_game.txt)
user system total real
vdf 1.312000 0.031000 1.343000 ( 1.348015)
vdf4r 53.422000 0.016000 53.438000 ( 54.020029)
Compared to the vdf4r gem using this script.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/sapphyrus/vdf.
License
The gem is available as open source under the terms of the MIT License.