[ANN] Kwalify 0.7.0 - parser, schema validator, and data binding forYAML and JSON

M

makoto kuwata

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">
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,740
Latest member
AdolphBig6

Latest Threads

Top