From: makoto kuwata Date: 2008-01-28T00:44:57+09:00 Subject: [ANN] Kwalify 0.7.0 - parser, schema validator, and data binding for YAML and JSON Hi, I have released Kwalify 0.7.0. http://www.kuwata-lab.com/kwalify/ Kwalify is an integrated tool for YAML and JSON. Kwalify contains parser, schema validator, and data binding tool. This release has many enhancements and changes. See http://kuwata-lab.com/kwalify/ruby/CHANGES.txt for details. From this release, Kwalify supports data binding. If you specify class name in schema definition, Kwalify parses YAML/ JSON and create instance object of that class instead of Hash object. Data binding makes handling YAML easier. Example: * schema file (config.schema.yaml) -------------------- type: map class: Config mapping: "host": { type: str, required: true } "port": { type: int } "user": { type: str, required: true } "pass": { type: str, required: true } -------------------- * configuration file (config.yaml) -------------------- host: localhost user: user1 pass: password1 -------------------- * ruby program (ex1.rb) -------------------- ## class definition require 'kwalify/util/hashlike' class Config include Kwalify::Util::HashLike # defines [], []=, ... attr_accessor :host, :posrt, :user, :pass def initialize @port = 80 end end ## create validator object require 'kwalify' schema = Kwalify::Yaml.load_file('config.schema.yaml') validator = Kwalify::Validator.new(schema) ## parse configuration file with data binding parser = Kwalify::Yaml::Parser.new(validator) parser.data_binding = true # enable data binding config = parser.parse_file('config.yaml') p config #=> # -------------------- See User's Guide for details. http://www.kuwata-lab.com/kwalify/ruby/users-guide.html -- regards, makoto kuwata