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 #=> #<Config:0x542590 @user=“user1”, @port=80,
    # @pass=“password1”, @host=“localhost”>

See User’s Guide for details.
http://www.kuwata-lab.com/kwalify/ruby/users-guide.html