Compare commits

..

No commits in common. "master" and "0.54" have entirely different histories.
master ... 0.54

56 changed files with 1004 additions and 1840 deletions

View File

@ -4,7 +4,7 @@
!v!Pluie.Berel.Meta meta : !v!Pluie.Berel.Meta meta :
keys : keys :
software : pluie-yaml; <https://git.pluie.org/pluie/lib-yaml> software : pluie-yaml; <https://git.pluie.org/pluie/lib-yaml>
version : 0.60 version : 0.54
type : library type : library
date : 2018 date : 2018
license : GPLv3.0; <http://www.gnu.org/licenses/> license : GPLv3.0; <http://www.gnu.org/licenses/>
@ -27,7 +27,7 @@
- meson : - meson :
file : file :
- meson.build - meson.build
- src/meson.build startline : 1
sepline : sepline :
motif : "# " motif : "# "
repeat : 40 repeat : 40
@ -38,10 +38,12 @@
- vala : - vala :
dir : dir :
- src - src
- samples
extension : extension :
- .vala - .vala
- .c - .c
file :
- install.vala.in
startline : 1
sepline : sepline :
motif : " *" motif : " *"
repeat : 40 repeat : 40
@ -69,6 +71,6 @@
more details. more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with ^software.name^. If not, see ^license.address^. along with ^software.name^. If not, see <http://www.gnu.org/licenses/>.
^sepline^ ^sepline^

4
.gitignore vendored
View File

@ -2,7 +2,3 @@ build/
bin/ bin/
doc/ doc/
pluie-yaml-*.tar.gz pluie-yaml-*.tar.gz
.geany
docfix*
docsvg.tar.gz
tag-generated.yml

View File

@ -28,7 +28,7 @@ GNU GPL v3
## Prerequisites ## Prerequisites
`valac meson ninja libyaml glib gobject gmodule gio gee pluie-echo` `valac meson ninja libyaml glib gobject gmodule gee pluie-echo`
see https://git.pluie.org/pluie/libpluie-echo in order to install pluie-echo-0.2 pkg see https://git.pluie.org/pluie/libpluie-echo in order to install pluie-echo-0.2 pkg
@ -45,32 +45,15 @@ sudo ninja install -C build
## Compilation ## Compilation
``` ```
valac --pkg glib-2.0 \ valac --pkg pluie-echo-0.2 --pkg pluie-yaml-0.4 main.vala
--pkg gobject-2.0 \
--pkg gmodule-2.0 \
--pkg gio-2.0 \
--pkg gee-0.8 \
--pkg pluie-echo-0.2 \
--pkg pluie-yaml-0.4 \
main.vala
``` ```
You can use `./build.sh` to rebuild/install the **pluie-yaml** lib and compile samples files You can use `./build.sh` to rebuild/install the **pluie-yaml** lib and compile samples files
```
# rebuild lib + build all samples
./build.sh
# rebuild lib + build only single sample (give sample file name without extension)
./build.sh yaml-serialize
# rebuild lib in local mode
# local mode avoid to rebuild when modifying yaml files in resources dir
# must be in the root directory
./build.sh yaml-serialize 1
```
## Api / Documentation ## Api / Documentation
https://pluie.org/pluie-yaml-0.6/index.htm https://pluie.org/pluie-yaml-0.5/index.htm
## Docker ## Docker
@ -297,7 +280,7 @@ on yaml side, proceed like that :
%YAML 1.2 %YAML 1.2
%TAG !v! tag:pluie.org,2018:vala/ %TAG !v! tag:pluie.org,2018:vala/
--- ---
!v!Pluie.Samples.YamlObject test1 : !v!Pluie.Yaml.Example test1 :
myname : test1object myname : test1object
type_int : !v!int 3306 type_int : !v!int 3306
type_bool : !v!bool false type_bool : !v!bool false
@ -308,12 +291,12 @@ on yaml side, proceed like that :
type_float : !v!float 42.36 type_float : !v!float 42.36
type_double : !v!double 95542123.4579512128 type_double : !v!double 95542123.4579512128
type_enum : !v!Pluie.Yaml.NODE_TYPE scalar # or int type_enum : !v!Pluie.Yaml.NODE_TYPE scalar # or int
!v!Pluie.Samples.YamlChild type_object : !v!Pluie.Yaml.ExampleChild type_object :
toto : totovalue1 toto : totovalue1
tata : tatavalue1 tata : tatavalue1
titi : 123 titi : 123
tutu : 1 tutu : 1
!v!Pluie.Samples.YamlStruct type_struct : !v!Pluie.Yaml.ExampleStruct type_struct :
red : !v!uint8 214 red : !v!uint8 214
green : !v!uint8 78 green : !v!uint8 78
blue : 153 blue : 153
@ -328,18 +311,16 @@ on yaml side, proceed like that :
**note :** **note :**
only the first level of yaml node matching a vala object need a tag. only the first level of yaml node matching a vala object need a tag.
**pluie-yaml** has mechanisms to retriew properties types of a Yaml.Object. **pluie-yaml** has mechanisms to retriew properties types of a Yaml.Object.
So basic vala types tag, enum tag, struct tag and derived Yaml.Object (here Samples.YamlObject & Samples.YamlChild) So basic vala types tag, enum tag, struct tag and derived Yaml.Object (here ExampleChild)
or GLib.Object. or GLib.Object vala tags are not necessary inside a Yaml.Object.
vala tags are not necessary inside a Yaml.Object.
on vala side : on vala side :
```vala ```vala
using pluie;
... ...
var obj = (Samples.YamlObject) Yaml.Builder.from_node (root.first ()); var obj = (Yaml.Example) Yaml.Builder.from_node (root.first ());
of.echo("obj.type_int : %d".printf (obj.type_int)); of.echo("obj.type_int : %d".printf (obj.type_int));
// calling Samples.YamlChild method // calling ExampleChild method
obj.type_object.method_a () obj.type_object.method_a ()
``` ```
@ -356,15 +337,13 @@ We cannot do introspection on Structure's properties, so you need to implement a
First at all, in the static construct of your class, you need to register (properties) types that need some glue for instanciation. First at all, in the static construct of your class, you need to register (properties) types that need some glue for instanciation.
```vala ```vala
using Pluie; public class Yaml.Example : Yaml.Object
public class Pluie.Samples.YamlObject : Yaml.Object
{ {
static construct static construct
{ {
Yaml.Register.add_type ( Yaml.Register.add_type (
typeof (Samples.YamlObject), // owner type typeof (Yaml.Example), // owned type
typeof (Samples.YamlStruct), // property type typeof (Yaml.ExampleStruct), // property type
typeof (Gee.ArrayList) // property type typeof (Gee.ArrayList) // property type
); );
} }
@ -374,13 +353,13 @@ public class Pluie.Samples.YamlObject : Yaml.Object
Secondly you must override the `public void populate_from_node (Glib.Type, Yaml.Node node)` Yaml.Object original method. Secondly you must override the `public void populate_from_node (Glib.Type, Yaml.Node node)` Yaml.Object original method.
`populate_from_node` is automatically called by the Yaml.Builder if the type property is prealably registered. `populate_from_node` is automatically called by the Yaml.Builder if the type property is prealably registered.
Example of implementation from `src/vala/Pluie/Samples.YamlObject.vala` : Example of implementation from `src/vala/Pluie/Yaml.Example.vala` :
```vala ```vala
public override void populate_from_node(GLib.Type type, Yaml.Node node) public override void populate_from_node(GLib.Type type, Yaml.Node node)
{ {
if (type == typeof (Samples.YamlStruct)) { if (type == typeof (Yaml.ExampleStruct)) {
this.type_struct = Samples.YamlStruct.from_yaml_node (node); this.type_struct = ExampleStruct.from_yaml_node (node);
} }
else if (type == typeof (Gee.ArrayList)) { else if (type == typeof (Gee.ArrayList)) {
this.type_gee_al = new Gee.ArrayList<string> (); this.type_gee_al = new Gee.ArrayList<string> ();
@ -396,9 +375,9 @@ Once your class has this glue, you can deal with complex object and populate the
directly from yaml files. directly from yaml files.
for more details see : for more details see :
* `src/vala/Pluie/Samples.YamlObject.vala` * `src/vala/Pluie/Yaml.Example.vala`
* `src/vala/Pluie/Samples.YamlChild.vala` * `src/vala/Pluie/Yaml.ExampleChild.vala`
* `src/vala/Pluie/Samples.YamlStruct.vala` * `src/vala/Pluie/Yaml.ExampleStruct.vala`
* `samples/yaml-tag.vala` * `samples/yaml-tag.vala`
code from samples/yaml-tag.vala : code from samples/yaml-tag.vala :
@ -420,7 +399,7 @@ reverse build mechanism is also possible but have the same limitation.
root.display_childs (); root.display_childs ();
of.action ("Yaml.Builder.from_node", root.first ().name); of.action ("Yaml.Builder.from_node", root.first ().name);
var obj = (Samples.YamlObject) Yaml.Builder.from_node (root.first ()); var obj = (Yaml.Example) Yaml.Builder.from_node (root.first ());
obj.type_object.method_a (); obj.type_object.method_a ();
of.action ("Yaml.Builder.to_node", obj.get_type ().name ()); of.action ("Yaml.Builder.to_node", obj.get_type ().name ());
@ -433,7 +412,7 @@ reverse build mechanism is also possible but have the same limitation.
you need to override the `public Yaml.Node? populate_to_node(GLib.Type type, string name)` Yaml.Object original method you need to override the `public Yaml.Node? populate_to_node(GLib.Type type, string name)` Yaml.Object original method
`populate_to_node` is also automatically called by the Yaml.Builder if the type property is prealably registered. `populate_to_node` is also automatically called by the Yaml.Builder if the type property is prealably registered.
Example of implementation from `src/vala/Pluie/Samples.YamlObject.vala` : Example of implementation from `src/vala/Pluie/Yaml.Example.vala` :
```vala ```vala
public override Yaml.Node? populate_to_node(GLib.Type type, string name) public override Yaml.Node? populate_to_node(GLib.Type type, string name)
@ -441,7 +420,7 @@ Example of implementation from `src/vala/Pluie/Samples.YamlObject.vala` :
Yaml.Node? node = base.populate_to_node (type, name); Yaml.Node? node = base.populate_to_node (type, name);
// non Yaml.Object type & registered type // non Yaml.Object type & registered type
if (node == null) { if (node == null) {
if (type == typeof (Samples.YamlStruct)) { if (type == typeof (Yaml.ExampleStruct)) {
node = this.type_struct.to_yaml_node (name); node = this.type_struct.to_yaml_node (name);
} }
else if (type == typeof (Gee.ArrayList)) { else if (type == typeof (Gee.ArrayList)) {

View File

@ -2,7 +2,7 @@
#^# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #^# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> # @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
# @version : 0.60 # @version : 0.54
# @type : library # @type : library
# @date : 2018 # @date : 2018
# @license : GPLv3.0 <http://www.gnu.org/licenses/> # @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -30,10 +30,7 @@
# -------------------------------------------------------- # --------------------------------------------------------
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
lib="pluie-yaml-0.6" lib="pluie-yaml-0.5"
samples=" src/vala/Pluie/Samples.YamlObject.vala \
src/vala/Pluie/Samples.YamlChild.vala \
src/vala/Pluie/Samples.YamlStruct.vala "
c1="\033[1;38;5;215m" c1="\033[1;38;5;215m"
c2="\033[1;38;5;97m" c2="\033[1;38;5;97m"
cok="\033[1;38;5;37m" cok="\033[1;38;5;37m"
@ -65,11 +62,6 @@ function build.lib()
cd "$DIR" cd "$DIR"
build.title "$lib LIB BUILD" build.title "$lib LIB BUILD"
meson --prefix=/usr ./ build meson --prefix=/usr ./ build
if [ "$1" -eq 1 ]; then
meson configure -DLOCAL=true build
else
meson configure -DLOCAL=false build
fi
if [ "$UID" != "0" ]; then if [ "$UID" != "0" ]; then
sudo ninja -v install -C build sudo ninja -v install -C build
else else
@ -102,9 +94,9 @@ function build.sample()
local f="$(basename $1)" local f="$(basename $1)"
local fx="${f:0:-5}" local fx="${f:0:-5}"
local state="FAILED" local state="FAILED"
local cmd="valac -v -X -Wno-discarded-qualifiers -X -Wno-deprecated-declarations --pkg gee-0.8 --pkg gio-2.0 --pkg pluie-echo-0.2 --pkg $lib $samples $1 -o ./bin/$fx" local cmd="valac -v --pkg gee-0.8 --pkg gio-2.0 --pkg pluie-echo-0.2 --pkg $lib $1 -o ./bin/$fx"
build.title "$f SAMPLE BUILD" build.title "$f SAMPLE BUILD"
echo echo -e "\n$cmd"
$cmd $cmd
local done=$? local done=$?
resume="$resume$done$f " resume="$resume$done$f "
@ -117,10 +109,10 @@ function build.main()
if [ ! -z "$1" ]; then if [ ! -z "$1" ]; then
onefile="./samples/$1.vala" onefile="./samples/$1.vala"
fi fi
build.lib "$2" build.lib
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
build.samples $onefile build.samples $onefile
fi fi
} }
build.main "$1" "${2:-0}" build.main "$1"

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.56 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -27,38 +27,8 @@
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/**
* root namespace of various Pluie lib
*/
namespace Pluie namespace Pluie
{ {
/**
* Pluie.Io is dedicated to various input/ouput operations
*/
namespace Io
{
}
/**
* Samples namespace to illustrate or test functionnalities
*/
namespace Samples
{
}
/**
* Pluie.Yaml provides various tools to deal with yaml files and yaml nodes :
*
* Use {@link Yaml.Config} to load a .yml file and build a {@link Yaml.Root} node<<BR>>
* Use {@link Yaml.Config.get} to retriew a particular {@link Yaml.Node}<<BR>>
* Use {@link Yaml.Builder} to convert a {@link Yaml.Node} into a {@link Yaml.Object}<<BR>>
* Use {@link Yaml.Dumper} to dump a {@link Yaml.Object} or {@link Yaml.Node} into a yaml string<<BR>>
* Use {@link Yaml.serialize} to serialize a {@link Yaml.Object} or {@link Yaml.Node} into a string<<BR>>
* Use {@link Yaml.deserialize} to deserialize a serialized string into a {@link Yaml.Node}<<BR>>
* Use {@link Yaml.Collection} and {@link Yaml.AbstractChild} methods for Node traversing
*/
namespace Yaml namespace Yaml
{ {
protected const string INSTALL_PATH = "@INSTALL_PATH@"; protected const string INSTALL_PATH = "@INSTALL_PATH@";

View File

@ -1,7 +1,7 @@
#^# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #^# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> # @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
# @version : 0.60 # @version : 0.54
# @type : library # @type : library
# @date : 2018 # @date : 2018
# @license : GPLv3.0 <http://www.gnu.org/licenses/> # @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -26,62 +26,83 @@
# along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>. # along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #^# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #^#
project('pluie-yaml', 'vala', 'c', version:'0.5')
project('pluie-yaml', ['vala', 'c'], version:'0.6')
cc = meson.get_compiler('c') cc = meson.get_compiler('c')
dep_glib = dependency('glib-2.0')
dep_gobject = dependency('gobject-2.0')
dep_gmodule = dependency('gmodule-2.0')
dep_gio = dependency('gio-2.0')
dep_gee = dependency('gee-0.8')
dep_echo = dependency('pluie-echo-0.2')
dep_m = cc.find_library('m', required : false)
dep_yaml = cc.find_library('yaml', required : true)
#~ add_global_link_arguments('-lyaml', language : 'c')
version = meson.project_version() version = meson.project_version()
bindir = join_paths(get_option('prefix'), get_option('bindir')) bindir = join_paths(get_option('prefix'), get_option('bindir'))
datadir = join_paths(get_option('prefix'), get_option('datadir'), 'pluie/yaml') datadir = join_paths(get_option('prefix'), get_option('datadir'), 'pluie/yaml')
libdir = join_paths(get_option('prefix'), get_option('libdir'), 'pkgconfig') libdir = join_paths(get_option('prefix'), get_option('libdir'), 'pkgconfig')
incdir = join_paths(get_option('prefix'), get_option('includedir'), 'pluie') incdir = join_paths(get_option('prefix'), get_option('includedir'), 'pluie')
conf = configuration_data() conf = configuration_data()
conf.set('VERSION' , version) conf.set('VERSION' , version)
conf.set('INSTALL_PATH', bindir) conf.set('INSTALL_PATH', bindir)
if get_option('LOCAL')
conf.set('DATA_PATH' , './resources')
else
conf.set('DATA_PATH' , datadir) conf.set('DATA_PATH' , datadir)
endif
configure_file( configure_file(
input: 'src/vala/install.vala.in', input: 'install.vala.in',
output: 'install.vala', output: 'install.vala',
configuration: conf configuration: conf
) )
install_data([ sources = [
'resources/main.yml', 'build/install.vala',
'resources/tag.yml', 'src/vala/Pluie/Io.Reader.vala',
'resources/bug.yml', 'src/vala/Pluie/Io.InputChunkStream.vala',
'resources/test.yml', 'src/vala/Pluie/Io.StreamLineMark.vala',
'resources/test.json' 'src/vala/Pluie/Io.Writter.vala',
], 'src/vala/Pluie/Yaml.global.vala',
install_dir : datadir 'src/vala/Pluie/Yaml.AbstractChild.vala',
) 'src/vala/Pluie/Yaml.AbstractNode.vala',
'src/vala/Pluie/Yaml.Builder.vala',
'src/vala/Pluie/Yaml.Collection.vala',
'src/vala/Pluie/Yaml.Config.vala',
'src/vala/Pluie/Yaml.Dumper.vala',
'src/vala/Pluie/Yaml.Event.vala',
'src/vala/Pluie/Yaml.Example.vala',
'src/vala/Pluie/Yaml.ExampleChild.vala',
'src/vala/Pluie/Yaml.ExampleStruct.vala',
'src/vala/Pluie/Yaml.Finder.vala',
'src/vala/Pluie/Yaml.GeeBuilder.vala',
'src/vala/Pluie/Yaml.Loader.vala',
'src/vala/Pluie/Yaml.Mapping.vala',
'src/vala/Pluie/Yaml.Node.vala',
'src/vala/Pluie/Yaml.Object.vala',
'src/vala/Pluie/Yaml.Processor.vala',
'src/vala/Pluie/Yaml.Register.vala',
'src/vala/Pluie/Yaml.Root.vala',
'src/vala/Pluie/Yaml.Scalar.vala',
'src/vala/Pluie/Yaml.Scanner.vala',
'src/vala/Pluie/Yaml.Sequence.vala',
'src/vala/Pluie/Yaml.Tag.vala',
'src/c/yaml.c'
]
install_data('resources/main.yml', install_dir : datadir)
install_data('resources/tag.yml', install_dir : datadir)
install_data('resources/test.yml', install_dir : datadir)
install_data('resources/test.json', install_dir : datadir)
install_data('resources/config/db.yml', install_dir : join_paths(datadir, 'config')) install_data('resources/config/db.yml', install_dir : join_paths(datadir, 'config'))
install_data('resources/config/subdir/test.yml', install_dir : join_paths(datadir, 'config/subdir')) install_data('resources/config/subdir/test.yml', install_dir : join_paths(datadir, 'config/subdir'))
subdir('src')
add_global_arguments('-D DEBUG', language : 'valac')
libpluie_yaml = library( libpluie_yaml = library(
'pluie-yaml-' + version, 'pluie-yaml-' + version,
src_files, sources,
vala_header : 'pluie_yaml.h', vala_header : 'pluie_yaml.h',
vala_vapi : 'pluie-yaml-' +version+'.vapi', vala_vapi : 'pluie-yaml-' +version+'.vapi',
dependencies : [ dependencies : [dep_glib, dep_gobject, dep_gmodule, dep_gio, dep_gee, dep_echo, dep_m, dep_yaml],
dependency('glib-2.0'),
dependency('gobject-2.0'),
dependency('gmodule-2.0'),
dependency('gio-2.0'),
dependency('gee-0.8'),
dependency('pluie-echo-0.2'),
cc.find_library('m', required : false),
cc.find_library('yaml', required : true)
],
install : true, install : true,
version : version, version : version,
install_dir : [get_option('libdir'), incdir, true] install_dir : [get_option('libdir'), incdir, true]

View File

@ -1 +0,0 @@
option('LOCAL', type : 'boolean', value : false)

View File

@ -1,82 +0,0 @@
%YAML 1.2
%TAG !v! tag:pluie.org,2018:vala/
---
!v!Pluie.Berel.Meta meta :
!v!Gee.ArrayList keys :
- software : berel; <https://git.pluie.org/pluie/berel>
- version : 0.24
- type : program
- date : 2018
- license : GPLv3.0; <http://www.gnu.org/licenses/>
- author : a-Sansara; <[dev]at[pluie]dot[org]>
- copyright : pluie.org; <http://www.pluie.org>
!v!Gee.ArrayList headers :
- !v!Pluie.Berel.HeaderDef sh :
file :
- build.sh
startline : 2 # to embed shebang before header tpl
sepline :
motif : "# "
repeat : 40
comment :
start : "#^#"
end : "#^#"
begin : "# "
- !v!Pluie.Berel.HeaderDef meson :
file :
- meson.build
- src/meson.build
sepline :
motif : "# "
repeat : 40
comment :
start : "#^#"
end : "#^#"
begin : "# "
- !v!Pluie.Berel.HeaderDef vala :
dir :
- src
extension :
- .vala
sepline :
motif : " *"
repeat : 40
comment :
start : "/*^"
end : "^*/"
begin : " * "
tpl : |
^sepline^
^keys^
^sepline^
This file is part of ^software.name^.
^software.name^ is free software (free as in speech) : you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 3 of the License,
or (at your option) any later version.
^software.name^ is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License
along with ^software.name^. If not, see <http://www.gnu.org/licenses/>.
^sepline^
product:
- sku : BL394D
quantity : 5
description : Basketball
price : 450.00
- sku : BL394D
quantity : 5
description : Basketball
price : 450.00

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,7 @@
%YAML 1.2 %YAML 1.2
%TAG !v! tag:pluie.org,2018:vala/ %TAG !v! tag:pluie.org,2018:vala/
--- ---
!v!Pluie.Samples.YamlObject test1 : !v!Pluie.Yaml.Example test1 :
myname : test1object myname : test1object
type_int : !v!int 3306 type_int : !v!int 3306
type_bool : !v!bool false type_bool : !v!bool false
@ -12,12 +12,12 @@
type_float : !v!float 42.36 type_float : !v!float 42.36
type_double : !v!double 95542123.4579512128 type_double : !v!double 95542123.4579512128
type_enum : !v!Pluie.Yaml.NODE_TYPE scalar # or int type_enum : !v!Pluie.Yaml.NODE_TYPE scalar # or int
!v!Pluie.Samples.YamlChild type_object : !v!Pluie.Yaml.ExampleChild type_object :
toto : totovalue1 toto : totovalue1
tata : tatavalue1 tata : tatavalue1
titi : 123 titi : 123
tutu : 1 tutu : 1
!v!Pluie.Samples.YamlStruct type_struct : !v!Pluie.Yaml.ExampleStruct type_struct :
red : !v!uint8 214 red : !v!uint8 214
green : !v!uint8 78 green : !v!uint8 78
blue : 153 blue : 153
@ -43,35 +43,3 @@
tata : tatavalue4 tata : tatavalue4
titi : 44 titi : 44
tutu : 0 tutu : 0
!v!Gee.HashMap type_gee_hmap :
- key : key1
!v!Pluie.Samples.YamlChild val :
toto : key1toto
tata : kay1tata
titi : 5
tutu : 0
- key : key2
val :
toto : key2toto
tata : kay2tata
titi : 46
tutu : 1
!v!Gee.HashMap type_gee_hmap2 :
- !v!Pluie.Samples.YamlStruct key :
red : !v!uint8 214
green : !v!uint8 78
blue : 153
!v!Pluie.Samples.YamlChild val :
toto : key1toto
tata : kay1tata
titi : 5
tutu : 0
- key :
red : !v!uint8 82
green : !v!uint8 109
blue : 35
val :
toto : key2toto
tata : kay2tata
titi : 46
tutu : 1

View File

@ -1,32 +1,3 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
@ -69,7 +40,7 @@ int main (string[] args)
var done = false; var done = false;
of.title ("Pluie Yaml Library", Pluie.Yaml.VERSION, "a-sansara"); of.title ("Pluie Yaml Library", Pluie.Yaml.VERSION, "a-sansara");
Pluie.Yaml.DEBUG = true; Pluie.Yaml.DEBUG = false;
var loader = new Yaml.Loader (path, true, true); var loader = new Yaml.Loader (path, true, true);
if ((done = loader.done)) { if ((done = loader.done)) {
var root = loader.get_nodes (); var root = loader.get_nodes ();

View File

@ -1,85 +0,0 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.5
* @type : library
* @date : 2018
* @licence : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org/>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
using GLib;
using Gee;
using Pluie;
int main (string[] args)
{
Echo.init(false);
var path = Yaml.DATA_PATH + "/bug.yml";
var done = false;
of.title ("Pluie Yaml Library", Pluie.Yaml.VERSION, "a-sansara");
Pluie.Yaml.DEBUG = false;
Yaml.Loader.PACK_NESTED_ENTRIES = true;
var loader = new Yaml.Loader (path, true, true);
if ((done = loader.done)) {
var root = loader.get_nodes ();
done = root != null;
}
of.rs (done);
of.echo ();
return (int) done;
}

View File

@ -1,32 +1,3 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>

View File

@ -1,32 +1,3 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
@ -75,13 +46,21 @@ int main (string[] args)
if ((done = root != null)) { if ((done = root != null)) {
root.display_childs (); root.display_childs ();
of.action("Yaml.Node", "to_yaml_string"); of.action("Yaml.Node", "to_yaml_string");
string yaml = root.to_yaml_string ();
string genpath = "./tag-generated.yml"; string genpath = "./tag-generated.yml";
try {
var writter = new Io.Writter (genpath, true); var writter = new Io.Writter (genpath, true);
long written = 0; long written = 0;
writter.write (root.to_yaml_string ().data, out written); writter.write (yaml.data, out written);
of.echo ("write %ld bytes in `%s`".printf ((long) written, genpath)); of.echo ("write %ld bytes in `%s`".printf ((long) written, genpath));
Yaml.Dumper.show_yaml_string (root, true, true, true); Yaml.Dumper.show_yaml_string (root, true, true, true);
}
catch (Error e) {
stderr.printf ("%s\n", e.message);
return 1;
}
} }

View File

@ -1,32 +1,3 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>

View File

@ -1,32 +1,3 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>

View File

@ -1,32 +1,3 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>

View File

@ -1,32 +1,3 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>

View File

@ -1,12 +1,12 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.5
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @licence : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]> * @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org> * @copyright : pluie.org <http://www.pluie.org/>
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
@ -25,13 +25,14 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>. * along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
using GLib; using GLib;
using Gee; using Gee;
using Pluie; using Pluie;
public void test_object(Samples.YamlObject obj) public void test_object(Yaml.Example obj)
{ {
of.action ("Test Object", obj.yaml_name); of.action ("Test Object", obj.yaml_name);
obj.type_object.method_a (); obj.type_object.method_a ();
@ -67,31 +68,6 @@ public void test_object(Samples.YamlObject obj)
of.keyval(" tutu" , "%s (bool)" .printf(child.tutu.to_string ())); of.keyval(" tutu" , "%s (bool)" .printf(child.tutu.to_string ()));
child.method_a (); child.method_a ();
} }
if (obj.type_gee_hmap != null) {
of.keyval("type_gee_hmap", "(%s<%s, %s>)" .printf(obj.type_gee_hmap.get_type ().name (), obj.type_gee_hmap.key_type.name (), obj.type_gee_hmap.value_type.name ()));
foreach (var child in obj.type_gee_hmap.entries) {
of.echo(" == entry (%s) ==".printf(child.key));
of.keyval(" toto" , "%s (string)" .printf(child.value.toto));
of.keyval(" tapa" , "%s (string)" .printf(child.value.tata));
of.keyval(" titi" , "%d (int)" .printf(child.value.titi));
of.keyval(" tutu" , "%s (bool)" .printf(child.value.tutu.to_string ()));
}
}
if (obj.type_gee_hmap2 != null) {
of.keyval("type_gee_hmap", "(%s<%s, %s>)" .printf(obj.type_gee_hmap2.get_type ().name (), obj.type_gee_hmap2.key_type.name (), obj.type_gee_hmap2.value_type.name ()));
foreach (var child in obj.type_gee_hmap2.entries) {
of.echo(" == key ==");
of.keyval(" obj :" , "%s" .printf(child.key.to_string ()));
of.echo(" == val (%s) ==".printf(child.value.get_type ( ).name ()));
of.keyval(" toto" , "%s (string)" .printf(child.value.toto));
of.keyval(" tapa" , "%s (string)" .printf(child.value.tata));
of.keyval(" titi" , "%d (int)" .printf(child.value.titi));
of.keyval(" tutu" , "%s (bool)" .printf(child.value.tutu.to_string ()));
}
}
else {
of.echo ("hmap2 null");
}
} }
} }
@ -110,7 +86,8 @@ int main (string[] args)
root.display_childs (); root.display_childs ();
of.action ("Yaml build first child", root.first ().name); of.action ("Yaml build first child", root.first ().name);
var obj = (Samples.YamlObject) Yaml.Builder.from_node (root.first ()); Yaml.Example obj = (Yaml.Example) Yaml.Builder.from_node (root.first ());
obj = (Yaml.Example) Yaml.Builder.from_node (root.first ());
test_object (obj); test_object (obj);
of.action ("Serialize", obj.yaml_name); of.action ("Serialize", obj.yaml_name);
@ -123,7 +100,7 @@ int main (string[] args)
root = Yaml.deserialize (zdata); root = Yaml.deserialize (zdata);
root.display_childs (); root.display_childs ();
of.action ("Yaml build first child", obj.yaml_name); of.action ("Yaml build first child", obj.yaml_name);
obj = (Samples.YamlObject) Yaml.Builder.from_node (root.first ()); obj = (Yaml.Example) Yaml.Builder.from_node (root.first ());
test_object (obj); test_object (obj);
} }

View File

@ -1,32 +1,3 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
@ -89,12 +60,11 @@ int main (string[] args)
node = node.next_sibling (); node = node.next_sibling ();
} }
} }
// hard code // hard code
Samples.YamlObject? o = null; Yaml.Example? o = null;
foreach (var entry in list.entries) { foreach (var entry in list.entries) {
if ((o = (Samples.YamlObject) entry.value)!=null) { if ((o = (Yaml.Example) entry.value)!=null) {
of.action ("Getting Hard coded values for Samples.YamlObject %s".printf (of.c (ECHO.MICROTIME).s (o.get_type().name ())), entry.key); of.action ("Getting Hard coded values for Yaml.Object %s".printf (of.c (ECHO.MICROTIME).s (o.get_type().name ())), entry.key);
of.keyval("yaml_name" , "%s" .printf(o.yaml_name)); of.keyval("yaml_name" , "%s" .printf(o.yaml_name));
of.keyval("type_int" , "%d" .printf(o.type_int)); of.keyval("type_int" , "%d" .printf(o.type_int));
of.keyval("type_bool" , "%s" .printf(o.type_bool.to_string ())); of.keyval("type_bool" , "%s" .printf(o.type_bool.to_string ()));
@ -129,31 +99,6 @@ int main (string[] args)
child.method_a (); child.method_a ();
} }
} }
if (o.type_gee_hmap != null) {
of.keyval("type_gee_hmap", "(%s<%s, %s>)" .printf(o.type_gee_hmap.get_type ().name (), o.type_gee_hmap.key_type.name (), o.type_gee_hmap.value_type.name ()));
foreach (var child in o.type_gee_hmap.entries) {
of.echo(" == entry (%s) ==".printf(child.key));
of.keyval(" toto" , "%s (string)" .printf(child.value.toto));
of.keyval(" tapa" , "%s (string)" .printf(child.value.tata));
of.keyval(" titi" , "%d (int)" .printf(child.value.titi));
of.keyval(" tutu" , "%s (bool)" .printf(child.value.tutu.to_string ()));
}
}
if (o.type_gee_hmap2 != null) {
of.keyval("type_gee_hmap", "(%s<%s, %s>)" .printf(o.type_gee_hmap2.get_type ().name (), o.type_gee_hmap2.key_type.name (), o.type_gee_hmap2.value_type.name ()));
foreach (var child in o.type_gee_hmap2.entries) {
of.echo(" == key ==");
of.keyval(" obj :" , "%s" .printf(child.key.to_string ()));
of.echo(" == val (%s) ==".printf(child.value.get_type ( ).name ()));
of.keyval(" toto" , "%s (string)" .printf(child.value.toto));
of.keyval(" tapa" , "%s (string)" .printf(child.value.tata));
of.keyval(" titi" , "%d (int)" .printf(child.value.titi));
of.keyval(" tutu" , "%s (bool)" .printf(child.value.tutu.to_string ()));
}
}
else {
of.echo ("hmap2 null");
}
} }
} }

View File

@ -1,32 +1,3 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
@ -75,7 +46,7 @@ int main (string[] args)
root.first ().display_childs (); root.first ().display_childs ();
of.action ("with signal Yaml.Builder.from_node", root.first ().name); of.action ("with signal Yaml.Builder.from_node", root.first ().name);
Samples.YamlObject obj = (Samples.YamlObject) Yaml.Builder.from_node (root.first ()); Yaml.Example obj = (Yaml.Example) Yaml.Builder.from_node (root.first ());
obj.type_object.method_a (); obj.type_object.method_a ();
if (obj.type_gee_al != null) { if (obj.type_gee_al != null) {
of.keyval("type_gee_al", "(%s<%s>)" .printf(obj.type_gee_al.get_type ().name (), obj.type_gee_al.element_type.name ())); of.keyval("type_gee_al", "(%s<%s>)" .printf(obj.type_gee_al.get_type ().name (), obj.type_gee_al.element_type.name ()));

View File

@ -1,32 +1,3 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
@ -132,14 +103,13 @@ int main (string[] args)
var done = false; var done = false;
of.title ("Pluie Yaml Library", Pluie.Yaml.VERSION, "a-sansara"); of.title ("Pluie Yaml Library", Pluie.Yaml.VERSION, "a-sansara");
Pluie.Yaml.DEBUG = false; Pluie.Yaml.DEBUG = true;
var config = new Yaml.Config (path, true); var config = new Yaml.Config (path, true);
var root = config.root_node (); var root = config.root_node () as Yaml.Root;
root.display_childs ();
root.first ().display_childs (); root.first ().display_childs ();
of.action ("Yaml.Builder.from_node", root.first ().name); of.action ("Yaml.Builder.from_node", root.first ().name);
Samples.YamlObject obj = (Samples.YamlObject) Yaml.Builder.from_node (root.first ()); var obj = (Yaml.Example) Yaml.Builder.from_node (root.first ());
obj.type_object.method_a (); obj.type_object.method_a ();
if (obj.type_gee_al != null) { if (obj.type_gee_al != null) {
of.keyval("type_gee_al", "(%s)" .printf(obj.type_gee_al.get_type ().name ())); of.keyval("type_gee_al", "(%s)" .printf(obj.type_gee_al.get_type ().name ()));
@ -153,6 +123,91 @@ int main (string[] args)
n.display_childs (); n.display_childs ();
} }
//~ double?[] data = { 46548970.54324546464, 2.2, 2.1, 2.4, 5.7 };
//~ var list = new Gee.ArrayList<double?> ();
//~ list.add_all_array (data);
//~ Gee.ArrayList* p = list;
//~ var mynode = new Yaml.Root ();
//~ Yaml.GeeBuilder.arraylist_to_node (p, "Gee.ArrayList<double?>", mynode);
//~ string[] data2 = { "mastring1", "mastring2", "mastring3", "mastring4", "mastring5" };
//~ var list2 = new Gee.ArrayList<string> ();
//~ list2.add_all_array (data2);
//~ p = list2;
//~ Yaml.GeeBuilder.arraylist_to_node (p, "Gee.ArrayList<string>", mynode);
//~ int[] data3 = { 123, 456, 9875, 64205, 9924563 };
//~ var list3 = new Gee.ArrayList<int> ();
//~ list3.add_all_array (data3);
//~ p = list3;
//~ Yaml.GeeBuilder.arraylist_to_node (p, "Gee.ArrayList<int>", mynode);
//~ int64?[] data4 = { 123, 456, -9875, 64205, -549924563 };
//~ var list4 = new Gee.ArrayList<int64?> ();
//~ list4.add_all_array (data4);
//~ p = list4;
//~ Yaml.GeeBuilder.arraylist_to_node (p, "Gee.ArrayList<int64?>", mynode);
//~ long?[] data5 = { 123, 456, -9875, 64205, -549924563 };
//~ var list5 = new Gee.ArrayList<long?> ();
//~ list5.add_all_array (data5);
//~ p = list5;
//~ Yaml.GeeBuilder.arraylist_to_node (p, "Gee.ArrayList<long?>", mynode);
//~ uint[] data6 = { 123, 456, 19875, 64205, 1549924563 };
//~ var list6 = new Gee.ArrayList<uint> ();
//~ list6.add_all_array (data6);
//~ p = list6;
//~ Yaml.GeeBuilder.arraylist_to_node (p, "Gee.ArrayList<uint>", mynode);
//~ uint8[] data7 = { 97, 99, 122, 72 };
//~ var list7 = new Gee.ArrayList<uint8> ();
//~ list7.add_all_array (data7);
//~ foreach (uint8 u in list7) {
//~ of.echo(" - item7 : %u".printf (u));
//~ }
//~ p = list7;
//~ Yaml.GeeBuilder.arraylist_to_node (p, "Gee.ArrayList<uint8>", mynode);
//~ uchar[] data8 = { 'a', 'c', 'z', 'H' };
//~ var list8 = new Gee.ArrayList<uchar> ();
//~ list8.add_all_array (data8);
//~ foreach (uchar u in list8) {
//~ of.echo(" - item8 : %c".printf (u));
//~ }
//~ p = list8;
//~ Yaml.GeeBuilder.arraylist_to_node (p, "Gee.ArrayList<uchar>", mynode, true);
//~ unichar[] data9 = { '水', 'は', '方', 'の', 'é', 'à', 'ï', 'Ô' };
//~ var list9 = new Gee.ArrayList<unichar> ();
//~ list9.add_all_array (data9);
//~ foreach (unichar u in list9) {
//~ of.echo(" - item9 : %s (%lu)".printf (u.to_string (), u));
//~ }
//~ p = list9;
//~ Yaml.GeeBuilder.arraylist_to_node (p, "Gee.ArrayList<unichar?>", mynode, true);
//~ uint64?[] data10 = { 4521, 8954354, 4535213213 };
//~ var list10 = new Gee.ArrayList<uint64?> ();
//~ list10.add_all_array (data10);
//~ foreach (uint64 u in list10) {
//~ of.echo(" - item10 : %s".printf (u.to_string ()));
//~ }
//~ p = list10;
//~ Yaml.GeeBuilder.arraylist_to_node (p, "Gee.ArrayList<uint64?>", mynode);
//~ mynode.display_childs ();
of.rs (done); of.rs (done);
of.echo (); of.echo ();
return (int) done; return (int) done;

View File

@ -1,32 +1,3 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,58 +0,0 @@
#^# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
# @version : 0.60
# @type : library
# @date : 2018
# @license : GPLv3.0 <http://www.gnu.org/licenses/>
# @author : a-Sansara <[dev]at[pluie]dot[org]>
# @copyright : pluie.org <http://www.pluie.org>
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# This file is part of pluie-yaml.
#
# pluie-yaml is free software (free as in speech) : you can redistribute it
# and/or modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 3 of the License,
# or (at your option) any later version.
#
# pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License
# along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #^#
src_files = [
'src/c/yaml.c',
'build/install.vala',
'src/vala/Pluie/Io.Reader.vala',
'src/vala/Pluie/Io.InputChunkStream.vala',
'src/vala/Pluie/Io.StreamLineMark.vala',
'src/vala/Pluie/Io.Writter.vala',
'src/vala/Pluie/Yaml.global.vala',
'src/vala/Pluie/Yaml.AbstractChild.vala',
'src/vala/Pluie/Yaml.AbstractNode.vala',
'src/vala/Pluie/Yaml.Builder.vala',
'src/vala/Pluie/Yaml.Collection.vala',
'src/vala/Pluie/Yaml.Config.vala',
'src/vala/Pluie/Yaml.Dumper.vala',
'src/vala/Pluie/Yaml.Event.vala',
'src/vala/Pluie/Yaml.Finder.vala',
'src/vala/Pluie/Yaml.GeeBuilder.vala',
'src/vala/Pluie/Yaml.Loader.vala',
'src/vala/Pluie/Yaml.Mapping.vala',
'src/vala/Pluie/Yaml.Node.vala',
'src/vala/Pluie/Yaml.Object.vala',
'src/vala/Pluie/Yaml.Processor.vala',
'src/vala/Pluie/Yaml.Register.vala',
'src/vala/Pluie/Yaml.Root.vala',
'src/vala/Pluie/Yaml.Scalar.vala',
'src/vala/Pluie/Yaml.Scanner.vala',
'src/vala/Pluie/Yaml.Sequence.vala',
'src/vala/Pluie/Yaml.Tag.vala'
]

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -34,25 +34,10 @@ using GLib;
*/ */
class Pluie.Io.InputChunkStream : Object class Pluie.Io.InputChunkStream : Object
{ {
/**
*
*/
protected ulong chunk_index; protected ulong chunk_index;
/**
*
*/
protected uint8 chunk_size; protected uint8 chunk_size;
/**
*
*/
protected uint8 buffer_size; protected uint8 buffer_size;
/**
*
*/
protected uint8[] buffer; protected uint8[] buffer;
/**
*
*/
protected FileStream fs; protected FileStream fs;
/** /**

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,204 +0,0 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
using GLib;
using Gee;
using Pluie;
/**
* a YamlObject test class
*/
public class Pluie.Samples.YamlObject : Yaml.Object
{
public string myname { get; set; }
public string type_string { get; set; }
public int type_int { get; set; }
public uint type_uint { get; set; }
public float type_float { get; set; }
public double type_double { get; set; }
public char type_char { get; set; }
public uchar type_uchar { get; set; }
public unichar type_unichar { get; set; }
public short type_short { get; set; }
public ushort type_ushort { get; set; }
public long type_long { get; set; }
public ulong type_ulong { get; set; }
public size_t type_size_t { get; set; }
public ssize_t type_ssize_t { get; set; }
public int8 type_int8 { get; set; }
public uint8 type_uint8 { get; set; }
public int16 type_int16 { get; set; }
public uint16 type_uint16 { get; set; }
public int32 type_int32 { get; set; }
public uint32 type_uint32 { get; set; }
public int64 type_int64 { get; set; }
public uint64 type_uint64 { get; set; }
public bool type_bool { get; set; }
public Samples.YamlChild type_object { get; set; }
public Yaml.NODE_TYPE type_enum { get; set; }
public Samples.YamlStruct type_struct { get; set; }
public Gee.ArrayList<double?> type_gee_al { get; set; }
public Gee.ArrayList<Samples.YamlChild> type_gee_alobject { get; set; }
public Gee.HashMap<string, Samples.YamlChild> type_gee_hmap { get; set; }
public Gee.HashMap<YamlStruct?, Samples.YamlChild> type_gee_hmap2 { get; set; }
/**
*
*/
static construct
{
Yaml.Register.add_type (
typeof (Samples.YamlObject),
typeof (Samples.YamlChild),
typeof (Samples.YamlStruct),
typeof (Gee.ArrayList),
typeof (Gee.HashMap)
);
}
/**
*
*/
protected override void yaml_construct ()
{
this.type_gee_al = new Gee.ArrayList<double?> ();
this.type_gee_alobject = new Gee.ArrayList<Samples.YamlChild> ();
this.type_gee_hmap = new Gee.HashMap<string, Samples.YamlChild> ();
this.type_gee_hmap2 = new Gee.HashMap<Samples.YamlStruct?, Samples.YamlChild> ();
Yaml.Register.add_namespace("Gee", "Pluie.Samples");
Dbg.msg ("%s (%s) instantiated".printf (this.yaml_name, this.get_type().name ()), Log.LINE, Log.FILE);
}
/**
*
*/
protected override void yaml_init ()
{
Dbg.msg ("%s (%s) initialized".printf (this.yaml_name, this.get_type().name ()), Log.LINE, Log.FILE);
}
/**
*
*/
public override void populate_from_node (string name, GLib.Type type, Yaml.Node node) {
if (type == typeof (Samples.YamlStruct)) {
this.type_struct = Samples.YamlStruct.from_yaml_node (node);
}
else if (type == typeof (Gee.ArrayList)) {
foreach (var child in node) {
switch (name) {
case "type_gee_al":
this.type_gee_al.add(double.parse(child.data));
break;
case "type_gee_alobject":
this.type_gee_alobject.add((Samples.YamlChild) Yaml.Builder.from_node (child, typeof (Samples.YamlChild)));
break;
}
}
}
else if (type == typeof (Gee.HashMap)) {
Yaml.Mapping? c;
foreach (var child in node) {
c = child as Yaml.Mapping;
switch (name) {
case "type_gee_hmap":
Value key = c.item ("key").val (typeof (string));
var entry = (Samples.YamlChild) Yaml.Builder.from_node (c.item ("val"), typeof (Samples.YamlChild));
this.type_gee_hmap.set((string) key, entry);
break;
case "type_gee_hmap2":
var key = Samples.YamlStruct.from_yaml_node (c.item ("key"));
var entry = (Samples.YamlChild) Yaml.Builder.from_node (c.item ("val"), typeof (Samples.YamlChild));
this.type_gee_hmap2.set(key, entry);
break;
}
}
}
else {
var obj = Yaml.Builder.from_node(node, type);
if (name == "type_object") {
this.set (node.name, (Samples.YamlChild) obj);
}
else {
this.set (node.name, obj);
}
}
}
/**
*
*/
public override Yaml.Node? populate_to_node (string name, GLib.Type type, Yaml.Node parent) {
Yaml.Node? node = null;
if (type == typeof (Samples.YamlStruct)) {
node = this.type_struct.to_yaml_node (name);
}
else if (type == typeof (Gee.ArrayList)) {
switch (name) {
case "type_gee_al" :
Yaml.GeeBuilder.fundamental_arraylist_to_node (this.type_gee_al, name, parent);
break;
case "type_gee_alobject" :
Yaml.Object.objects_collection_to_node (this.type_gee_alobject, name, parent);
break;
}
}
else if (type == typeof (Gee.HashMap)) {
switch (name) {
case "type_gee_hmap" :
Yaml.Object.objects_mapkstr_to_node (this.type_gee_hmap, name, parent);
break;
case "type_gee_hmap2" :
this.hmap2_to_node (name, parent);
break;
}
}
else {
base.populate_to_node (name, type, parent);
}
return node;
}
/**
*
*/
public void hmap2_to_node (string name, Yaml.Node? parent = null)
{
of.echo (Log.METHOD);
var node = new Yaml.Sequence (parent, name);
node.tag = new Yaml.Tag (Yaml.Register.resolve_namespace_type(this.type_gee_hmap2.get_type ()), "v");
var i = 0;
foreach (var child in this.type_gee_hmap2.entries) {
var entryNode = new Yaml.Mapping (node, "_%d".printf (i));
entryNode.add (child.key.to_yaml_node ("key"));
Yaml.Builder.to_node ((GLib.Object) child.value, entryNode, false, null, "val");
}
}
}

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -90,25 +90,6 @@ public class Pluie.Yaml.Builder
return type; return type;
} }
/**
*
*/
private static string resolve_c_subname (string name) throws GLib.RegexError
{
MatchInfo? mi = null;
bool update = false;
var reg = new Regex ("([A-Z]{1}[a-z]+)");
string? str = null;
var sb = new StringBuilder();
for (reg.match (name, 0, out mi) ; mi.matches () ; mi.next ()) {
if ((str = mi.fetch (1)) != null && str.length > 0) {
sb.append ("%s%s%s".printf (update ? "_" : "", str[0].tolower ().to_string (), str.substring(1)));
if (!update) update = true;
}
}
return update ? sb.str : name;
}
/** /**
* retriew corresponding c name related to specified vala name * retriew corresponding c name related to specified vala name
* @param name a valid vala identifier name * @param name a valid vala identifier name
@ -122,8 +103,7 @@ public class Pluie.Yaml.Builder
try { try {
var reg = new Regex ("([^.]*).?"); var reg = new Regex ("([^.]*).?");
for (reg.match (name, 0, out mi) ; mi.matches () ; mi.next ()) { for (reg.match (name, 0, out mi) ; mi.matches () ; mi.next ()) {
str = Yaml.Builder.resolve_c_subname(mi.fetch (1)); if ((str = mi.fetch (1)) != null && str.length > 0) {
if (str != null && str.length > 0) {
if (!begin) sb.append_unichar ('_'); if (!begin) sb.append_unichar ('_');
else begin = false; else begin = false;
sb.append_unichar (str[0].tolower ()); sb.append_unichar (str[0].tolower ());
@ -148,6 +128,7 @@ public class Pluie.Yaml.Builder
public static GLib.Object? from_node (Yaml.Node node, Type otype = GLib.Type.INVALID) public static GLib.Object? from_node (Yaml.Node node, Type otype = GLib.Type.INVALID)
{ {
GLib.Object? obj = null; GLib.Object? obj = null;
try {
Type type = node.tag != null ? type_from_tag (node.tag.value) : otype; Type type = node.tag != null ? type_from_tag (node.tag.value) : otype;
if (type != Type.INVALID) { if (type != Type.INVALID) {
Yaml.dbg_action ("vala type founded", "%s (%s)".printf (type.name (), type.to_string ())); Yaml.dbg_action ("vala type founded", "%s (%s)".printf (type.name (), type.to_string ()));
@ -185,6 +166,10 @@ public class Pluie.Yaml.Builder
(obj as Yaml.Object).yaml_init (); (obj as Yaml.Object).yaml_init ();
} }
} }
}
catch (GLib.Error e) {
of.warn (e.message);
}
return obj; return obj;
} }

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -28,44 +28,7 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/** /**
* Yaml.Config class to manage Yaml configuration files and provide a Yaml.Root node. * Yaml.Config class to manage Yaml configuration files
*
* Yaml.Config use a Yaml.Finder to easily retriew a particular node. <<BR>>
* The Yaml.Config.get method is bind to the Yaml.Finder.find method with <<BR>>
* the root node as context. (more details on {@link Yaml.Finder})
*
* {{{
* var config = new Yaml.Config (path);
* var node = config.get ("ship-to.address.city{0}");
* if (node != null) {
* of.echo (node.data)
* }
* }}}
*
* You can use a special import clause to embed a set of yaml files into your current document.
*
* {{{
* # | use special key word '^imports' to import other yaml config files in
* # | current yaml document
* # | '^imports' must be uniq and a direct child of root node
* # | imported files are injected as mapping nodes at top document level
* # | so you cannot use keys that already exists in the document
* ^imports :
* # you can redefine default import path with the special key '^path'
* # if you do not use it, the default path value will be the current directory
* # redefined path values are relative to the current directory (if a relative path
* # is provided)
* ^path : ./config
* # you can also define any other var by prefixing key with ^
* ^dir : subdir
* # and use it enclosed by ^
* # here final test path will be "./config/subdir/test.yml"
* test : ^dir^/test.yml
* # here final db path will be "./config/db.yml"
* db : db.yml
* }}}
*
* {{doc/img/pluie-yaml-imports2.png}}
*/ */
public class Pluie.Yaml.Config public class Pluie.Yaml.Config
{ {

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -0,0 +1,160 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.54
* @type : library
* @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/>
* @author : a-Sansara <[dev]at[pluie]dot[org]>
* @copyright : pluie.org <http://www.pluie.org>
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* This file is part of pluie-yaml.
*
* pluie-yaml is free software (free as in speech) : you can redistribute it
* and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* pluie-yaml is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with pluie-yaml. If not, see <http://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
using GLib;
using Gee;
using Pluie;
/**
* a test class to implements yamlize
*/
public class Pluie.Yaml.Example : Yaml.Object
{
public string myname { get; set; }
public string type_string { get; set; }
public int type_int { get; set; }
public uint type_uint { get; set; }
public float type_float { get; set; }
public double type_double { get; set; }
public char type_char { get; set; }
public uchar type_uchar { get; set; }
public unichar type_unichar { get; set; }
public short type_short { get; set; }
public ushort type_ushort { get; set; }
public long type_long { get; set; }
public ulong type_ulong { get; set; }
public size_t type_size_t { get; set; }
public ssize_t type_ssize_t { get; set; }
public int8 type_int8 { get; set; }
public uint8 type_uint8 { get; set; }
public int16 type_int16 { get; set; }
public uint16 type_uint16 { get; set; }
public int32 type_int32 { get; set; }
public uint32 type_uint32 { get; set; }
public int64 type_int64 { get; set; }
public uint64 type_uint64 { get; set; }
public bool type_bool { get; set; }
public Yaml.ExampleChild type_object { get; set; }
public Yaml.NODE_TYPE type_enum { get; set; }
public Yaml.ExampleStruct type_struct { get; set; }
public Gee.ArrayList<double?> type_gee_al { get; set; }
public Gee.ArrayList<Yaml.ExampleChild> type_gee_alobject { get; set; }
static construct
{
Yaml.Register.add_type (
typeof (Yaml.Example),
typeof (Yaml.ExampleChild),
typeof (Yaml.ExampleStruct),
typeof (Gee.ArrayList)
);
}
/**
*
*/
protected override void yaml_construct ()
{
this.type_gee_al = new Gee.ArrayList<double?> ();
this.type_gee_alobject = new Gee.ArrayList<Yaml.ExampleChild> ();
Yaml.Register.add_namespace("Gee", "GLib");
Dbg.msg ("%s (%s) instantiated".printf (this.yaml_name, this.get_type().name ()), Log.LINE, Log.FILE);
}
/**
*
*/
protected override void yaml_init ()
{
Dbg.msg ("%s (%s) initialized".printf (this.yaml_name, this.get_type().name ()), Log.LINE, Log.FILE);
}
/**
*
*/
public override void populate_from_node (string name, GLib.Type type, Yaml.Node node) {
if (type == typeof (Yaml.ExampleStruct)) {
this.type_struct = Yaml.ExampleStruct.from_yaml_node (node);
}
else if (type == typeof (Gee.ArrayList)) {
foreach (var child in node) {
switch (name) {
case "type_gee_al":
this.type_gee_al.add(double.parse(child.data));
break;
case "type_gee_alobject":
this.type_gee_alobject.add((Yaml.ExampleChild) Yaml.Builder.from_node (child, typeof (Yaml.ExampleChild)));
break;
}
}
}
else {
var obj = Yaml.Builder.from_node(node, type);
if (name == "type_object") {
this.set (node.name, (Yaml.ExampleChild) obj);
}
else {
this.set (node.name, obj);
}
}
}
/**
* match delegate CastYamlObject
*/
public GLib.Object cast_child_collection (string name, GLib.Object obj)
{
return (GLib.Object) ((Yaml.ExampleChild) obj);
}
/**
*
*/
public override Yaml.Node? populate_to_node (string name, GLib.Type type, Yaml.Node parent) {
Yaml.Node? node = null;
if (type == typeof (Yaml.ExampleStruct)) {
node = this.type_struct.to_yaml_node (name);
}
else if (type == typeof (Gee.ArrayList)) {
switch (name) {
case "type_gee_al" :
Yaml.GeeBuilder.fundamental_arraylist_to_node (this.type_gee_al, name, parent);
break;
case "type_gee_alobject" :
Yaml.Object.objects_collection_to_node (this.type_gee_alobject, name, parent);
break;
}
}
else {
base.populate_to_node (name, type, parent);
}
return node;
}
}

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -28,9 +28,9 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/** /**
* a YamlCHild test class * a test class to implements yamlize
*/ */
public class Pluie.Samples.YamlChild : Yaml.Object public class Pluie.Yaml.ExampleChild : Yaml.Object
{ {
public string toto { get; set; } public string toto { get; set; }
public string tata { get; set; } public string tata { get; set; }

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -28,9 +28,9 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
/** /**
* YamlStruct test structure *
*/ */
public struct Pluie.Samples.YamlStruct public struct Pluie.Yaml.ExampleStruct
{ {
/** /**
* *
@ -46,12 +46,11 @@ public struct Pluie.Samples.YamlStruct
public uint blue; public uint blue;
/** /**
* get a new YamlStruct populated by specified node *
* @param node the source Yaml.Node
*/ */
public static YamlStruct from_yaml_node (Yaml.Node node) public static ExampleStruct from_yaml_node (Yaml.Node node)
{ {
YamlStruct s = {}; ExampleStruct s = {};
foreach (var child in node) { foreach (var child in node) {
var v = child.val (typeof (uint)); var v = child.val (typeof (uint));
switch (child.name) { switch (child.name) {
@ -80,6 +79,6 @@ public struct Pluie.Samples.YamlStruct
*/ */
public string to_string () public string to_string ()
{ {
return "%s(red:%u,green:%u,blue:%u)".printf ((typeof (YamlStruct)).name (), this.red, this.green, this.blue); return "%s(red:%u,green:%u,blue:%u)".printf ((typeof (ExampleStruct)).name (), this.red, this.green, this.blue);
} }
} }

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -33,19 +33,6 @@ using Pluie;
/** /**
* Finder class used to easily retriew Yaml.Node * Finder class used to easily retriew Yaml.Node
*
* Path definition has two mode :
* default mode is ''Yaml.FIND_MODE.DOT''
*
* * child mapping node are separated by dot :
* * sequence entry must be enclosed in curly brace
* ex : ``grandfather.father.son{2}.age``
*
* other mode is ''Yaml.FIND_MODE.SQUARE_BRACKETS''.
*
* * node's key name must be enclosed in square brackets
* * sequence entry must be enclosed in curly brace
* ex : ``[grandfather][father][son]{2}[age]``
*/ */
public class Pluie.Yaml.Finder : GLib.Object public class Pluie.Yaml.Finder : GLib.Object
{ {
@ -65,7 +52,17 @@ public class Pluie.Yaml.Finder : GLib.Object
} }
/** /**
* Find a specific child Yaml.Node corresponding to path definition. * find a specific child Yaml.Node corresponding to path definition
* path definition has two mode.
* default mode is Yaml.FIND_MODE.DOT
* - child mapping node are separated by dot :
* - sequence entry must be enclosed in curly brace
* ex : grandfather.father.son{2}.age
*
* other mode is Yaml.FIND_MODE.DOTSQUARE_BRACKETS
* - node's key name must be enclosed in square brackets
* - sequence entry must be enclosed in curly brace
* ex : [grandfather][father][son]{2}[age]
* *
* @param path the definition to retriew the child node * @param path the definition to retriew the child node
* @param context the Yaml.Node context to operate * @param context the Yaml.Node context to operate

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -38,6 +38,7 @@ public class Pluie.Yaml.GeeBuilder
{ {
/** /**
* transform a Gee.Collection with fundamental type to a Yaml.Node * transform a Gee.Collection with fundamental type to a Yaml.Node
* @param Gee.ArrayList* a pointer to the list
* @param property_name name of related property * @param property_name name of related property
* @param parent parent Yaml.Node of the list * @param parent parent Yaml.Node of the list
* @param is_char flag indicating data with char representation * @param is_char flag indicating data with char representation

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -36,14 +36,11 @@ using Pluie;
*/ */
public class Pluie.Yaml.Loader public class Pluie.Yaml.Loader
{ {
/**
* Flag PACK_NESTED_ENTRIES
*/
public static bool PACK_NESTED_ENTRIES { public get; public set; default = false; }
/** /**
* Yaml.Scanner used to retriew yaml events * Yaml.Scanner used to retriew yaml events
*/ */
Yaml.Scanner scanner { public get; internal set; } Yaml.Scanner scanner { public get; internal set; }
/** /**
* indicate if file has been sucessfully loaded * indicate if file has been sucessfully loaded
*/ */
@ -87,33 +84,7 @@ public class Pluie.Yaml.Loader
*/ */
public Yaml.Node? get_nodes () public Yaml.Node? get_nodes ()
{ {
Yaml.Node? n = this.scanner.get_nodes (); return this.scanner.get_nodes ();
if (PACK_NESTED_ENTRIES) {
this.pack_entries (n);
}
return n;
}
/**
*
*/
private void pack_entries (Yaml.Node? node = null)
{
bool restart = false;
if (node != null) {
if (node.ntype.is_sequence ()) {
foreach (var child in node) {
if (child.ntype.is_mapping () && child.name[0] == '_' && child.count () == 1) {
var sub = child.first ().clone_node ();
node.replace_node (child, sub);
restart = true;
break;
}
}
if (restart) pack_entries (node);
}
else foreach (var child in node) this.pack_entries (child);
}
} }
/** /**

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -76,8 +76,6 @@ public class Pluie.Yaml.Node : Yaml.AbstractChild, Pluie.Yaml.Collection
} }
catch (Yaml.AddNodeError e) { catch (Yaml.AddNodeError e) {
of.warn (e.message); of.warn (e.message);
Yaml.dbg (this.to_string ());
this.display_childs ();
} }
return done; return done;
} }
@ -263,21 +261,6 @@ public class Pluie.Yaml.Node : Yaml.AbstractChild, Pluie.Yaml.Collection
return v; return v;
} }
/**
*
*/
public void replace_node (Yaml.Node child, Yaml.Node new_child)
{
int index = this.list.index_of (child);
if (index > -1) {
new_child.level = this.level + 1;
new_child.parent = this;
new_child.update_level ();
this.list.remove_at (index);
this.list.insert (index, new_child);
}
}
/** /**
* display childs * display childs
* @param withTitle display a title before the childs node presentation * @param withTitle display a title before the childs node presentation
@ -343,7 +326,7 @@ public class Pluie.Yaml.Node : Yaml.AbstractChild, Pluie.Yaml.Collection
) )
: "", : "",
of.c (ECHO.OPTION).s ("]"), of.c (ECHO.OPTION).s ("]"),
withTag && this.ntype.is_root () && (this as Yaml.Root) !=null ? (this as Yaml.Root).get_display_tag_directives () : "" withTag && this.ntype.is_root () ? (this as Yaml.Root).get_display_tag_directives () : ""
); );
} }
} }

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -127,53 +127,18 @@ public abstract class Pluie.Yaml.Object : GLib.Object
*/ */
public static Yaml.Node? objects_collection_to_node (Gee.Collection list, string name, Yaml.Node? parent = null) public static Yaml.Node? objects_collection_to_node (Gee.Collection list, string name, Yaml.Node? parent = null)
{ {
of.echo (Log.METHOD);
var node = new Yaml.Sequence (parent, name); var node = new Yaml.Sequence (parent, name);
node.tag = new Yaml.Tag (Yaml.Register.resolve_namespace_type(list.get_type ()), "v"); node.tag = new Yaml.Tag (Yaml.Register.resolve_namespace_type(list.get_type ()), "v");
var it = list.iterator (); var it = list.iterator ();
var i = 0; var i = 0;
while (it.next ()) { while (it.next ()) {
Yaml.Builder.to_node ((GLib.Object) it.get (), node, false, i++); Yaml.Builder.to_node (
} (GLib.Object) it.get (),
return node; node,
} false,
i++
/** );
* build an object Gee.HashMap<string, Yaml.Object> to a Yaml.Node
* @param map the gee hashmap to transform
* @param name name of map sequence node
* @param parent parent node of the map
* @return the resulting Yaml.Node
*/
public static Yaml.Node? objects_mapkstr_to_node (Gee.HashMap map, string name, Yaml.Node? parent = null)
{
var node = new Yaml.Sequence (parent, name);
node.tag = new Yaml.Tag (Yaml.Register.resolve_namespace_type(map.get_type ()), "v");
var i = 0;
foreach (var child in map.entries) {
var entryNode = new Yaml.Mapping (node, "_%d".printf (i++));
new Yaml.Mapping.with_scalar (entryNode, "key", (string) child.key);
Yaml.Builder.to_node ((GLib.Object) child.value, entryNode, false, null, "val");
}
return node;
}
/**
* build an object Gee.HashMap<string, Yaml.Object> to a Yaml.Node
* @param map the gee hashmap to transform
* @param name name of map sequence node
* @param parent parent node of the map
* @return the resulting Yaml.Node
*/
public static Yaml.Node? objects_mapobjects_to_node (Gee.HashMap map, string name, Yaml.Node? parent = null)
{
var node = new Yaml.Sequence (parent, name);
node.tag = new Yaml.Tag (Yaml.Register.resolve_namespace_type(map.get_type ()), "v");
var i = 0;
foreach (var child in map.entries) {
var entryNode = new Yaml.Mapping (node, "_%d".printf (i++));
Yaml.Builder.to_node ((GLib.Object) child.key, entryNode, false, null, "key");
Yaml.Builder.to_node ((GLib.Object) child.value, entryNode, false, null, "val");
} }
return node; return node;
} }

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -46,21 +46,6 @@ public class Pluie.Yaml.Processor
*/ */
bool change; bool change;
/**
* indicates if document start begin
*/
bool begin;
/**
* indicates if new node is a sequence entry
*/
bool isEntry;
/**
* indicates if new node is a sequence entry mapping
*/
bool isEntryMapping;
/** /**
* indicates if begon a flow sequence * indicates if begon a flow sequence
*/ */
@ -189,7 +174,7 @@ public class Pluie.Yaml.Processor
this.reset (); this.reset ();
for (var has_next = this.iterator.next (); has_next; has_next = this.iterator.next ()) { for (var has_next = this.iterator.next (); has_next; has_next = this.iterator.next ()) {
this.event = this.iterator.get (); this.event = this.iterator.get ();
Yaml.dbg (" [[[ EVENT %d %s ]]]".printf (this.indexEvt++, this.event.evtype.infos ())); Yaml.dbg (" 0>>>>> [EVENT event [%d] %s <<<<< %s".printf (this.indexEvt++, this.event.evtype.infos (), Log.METHOD));
if (this.event.evtype.is_tag_directive ()) { if (this.event.evtype.is_tag_directive ()) {
this.on_tag_directive (); this.on_tag_directive ();
} }
@ -197,54 +182,34 @@ public class Pluie.Yaml.Processor
this.on_error (); this.on_error ();
break; break;
} }
if (!this.begin) { if (this.event.evtype.is_mapping_end () || this.event.evtype.is_sequence_end ()) {
if (this.event.evtype.is_sequence_start () || this.event.evtype.is_mapping_start ()) {
this.begin = true;
continue;
}
else if (this.event.evtype.is_document_start ()) {
this.begin = true;
// to do
this.event = this.next_event ();
if (this.event.evtype.is_tag ()) {
this.root.tag = new Yaml.Tag (this.event.data["suffix"], this.event.data["handle"].replace("!", ""));
this.event = this.next_event ();
}
continue;
}
}
else {
if (this.event.evtype.is_anchor ()) {
this.on_anchor ();
}
else if (this.event.evtype.is_alias ()) {
this.on_alias ();
}
else if (this.event.evtype.is_mapping_end () || this.event.evtype.is_sequence_end ()) {
this.on_block_end (); this.on_block_end ();
continue; continue;
} }
else if (this.event.evtype.is_key () && (this.event = this.get_value_key_event ()) != null) { if (this.event.evtype.is_entry ()) {
this.on_key ();
}
else if (this.event.evtype.is_entry ()) {
this.on_entry (); this.on_entry ();
} }
else if (this.event.evtype.is_mapping_start ()) { if (this.beginFlowSeq && this.event.evtype.is_scalar ()) {
this.create_mapping (this.isEntry); if (!this.change) {
this.on_scalar (true);
}
this.beginFlowSeq = false;
}
if (this.event.evtype.is_key () && (this.event = this.get_value_key_event ()) != null) {
this.on_key ();
}
if (this.event.evtype.is_value () && (this.event = this.get_value_event ()) != null) {
this.on_value ();
if (this.event.evtype.is_mapping_start ()) {
this.on_mapping_start ();
} }
else if (this.event.evtype.is_sequence_start ()) { else if (this.event.evtype.is_sequence_start ()) {
this.on_sequence_start (); this.on_sequence_start ();
} }
else if (this.event.evtype.is_value ()) {
continue;
}
else if (this.event.evtype.is_scalar ()) {
this.on_scalar ();
}
this.add_anchor_if_needed (); this.add_anchor_if_needed ();
this.on_update (); this.ckey = null;
} }
this.on_update ();
} }
this.done = error_event == null && this.root != null; this.done = error_event == null && this.root != null;
return done; return done;
@ -268,9 +233,6 @@ public class Pluie.Yaml.Processor
this.beginFlowSeq = false; this.beginFlowSeq = false;
this.nextValueEvt = null; this.nextValueEvt = null;
this.indexEvt = 0; this.indexEvt = 0;
this.isEntry = false;
this.begin = false;
this.isEntryMapping = false;
} }
/** /**
@ -281,20 +243,7 @@ public class Pluie.Yaml.Processor
Yaml.Event? evt = null; Yaml.Event? evt = null;
if (this.iterator.has_next () && this.iterator.next ()) { if (this.iterator.has_next () && this.iterator.next ()) {
evt = this.iterator.get (); evt = this.iterator.get ();
Yaml.dbg (" >>>>> [EVENT event [%d] %s <<<<< %s".printf (this.indexEvt++, evt.evtype.infos (), Log.METHOD)); Yaml.dbg (" 1>>>>> [EVENT event [%d] %s <<<<< %s".printf (this.indexEvt++, evt.evtype.infos (), Log.METHOD));
}
return evt;
}
/**
* retriew the next Yaml Event without use of iterator
*/
private Yaml.Event? get_next_event ()
{
Yaml.Event? evt = null;
var i = this.indexEvt;
if (i < this.events.size) {
evt = this.events.get (i);
} }
return evt; return evt;
} }
@ -332,15 +281,13 @@ public class Pluie.Yaml.Processor
private Yaml.Event? get_next_value_event () private Yaml.Event? get_next_value_event ()
{ {
Yaml.Event? evt = null; Yaml.Event? evt = null;
var i = this.indexEvt; var i = this.indexEvt+1;
Yaml.dbg (" >>> %s from %d".printf (Log.METHOD, i));
var search = true; var search = true;
while (search) { while (search) {
if (i < this.events.size) { if (i < this.events.size) {
var e = this.events.get (i++); var e = this.events.get (i++);
if (e != null && e.evtype.is_value ()) { if (e != null && e.evtype.is_value ()) {
evt = this.events.get (i); evt = this.events.get (i);
Yaml.dbg (" >>> %s > %d : %s".printf (Log.METHOD, i, evt.evtype.infos ()));
break; break;
} }
} }
@ -380,27 +327,38 @@ public class Pluie.Yaml.Processor
*/ */
private void on_block_end () private void on_block_end ()
{ {
if (this.prev_node.ntype.is_scalar () || (this.prev_node.ntype.is_single_pair () && this.prev_node.parent != null && this.prev_node.parent.ntype.is_mapping ())) { if (!this.prev_node.ntype.is_collection ()) {
this.prev_node = this.prev_node.parent; this.prev_node = this.prev_node.parent;
} }
bool is_nested = this.is_entry_nested_block (this.prev_node);
if (!is_nested || (is_nested && (this.prev_node as Yaml.Sequence).close_block)) {
this.parent_node = this.prev_node.parent != null && this.prev_node.parent != this.root this.parent_node = this.prev_node.parent != null && this.prev_node.parent != this.root
? this.prev_node.parent ? this.prev_node.parent
: this.root; : this.root;
this.prev_node = this.parent_node; this.prev_node = this.parent_node;
} }
if (is_nested) {
var seq = this.prev_node as Yaml.Sequence;
if (seq != null) {
seq.close_block = true;
}
}
}
/** /**
* *
*/ */
private void on_entry () private void on_entry ()
{ {
this.isEntry = true; this.event = this.next_event();
this.ckey = null; Yaml.Event? e = null;
var e = this.get_next_event (); // look up for sequence enrty nested block
if (e!= null && e.evtype.is_mapping_start ()) { e = get_next_value_event ();
this.isEntryMapping = true; if (this.event.evtype.is_mapping_start () && (e!= null && !e.evtype.is_mapping_start ())) {
this.create_mapping (true); this.on_mapping_start (true);
this.next_event (); }
else if (this.event.evtype.is_scalar ()) {
this.on_scalar (true);
} }
} }
@ -432,9 +390,23 @@ public class Pluie.Yaml.Processor
private void on_key () private void on_key ()
{ {
this.on_tag (true); this.on_tag (true);
if (this.event.evtype.is_scalar ()) {
this.ckey = this.event.data["data"]; this.ckey = this.event.data["data"];
Yaml.dbg (" >> node name : %s".printf (this.ckey)); }
/**
*
*/
private void on_value ()
{
this.on_tag (false);
if (this.event.evtype.is_scalar ()) {
this.on_scalar ();
}
else if (this.event.evtype.is_anchor ()) {
this.on_anchor ();
}
else if (this.event.evtype.is_alias ()) {
this.on_alias ();
} }
} }
@ -443,23 +415,25 @@ public class Pluie.Yaml.Processor
*/ */
private void on_scalar (bool entry = false) private void on_scalar (bool entry = false)
{ {
if (this.ckey != null && this.parent_node.ntype.is_collection ()) { if (!entry) {
if (this.ckey != null) {
this.node = new Yaml.Mapping.with_scalar (this.parent_node, this.ckey, this.event.data["data"]); this.node = new Yaml.Mapping.with_scalar (this.parent_node, this.ckey, this.event.data["data"]);
this.change = true;
}
} }
else { else {
this.node = new Yaml.Scalar (this.parent_node, this.event.data["data"]); this.node = new Yaml.Scalar (this.parent_node, this.event.data["data"]);
}
this.change = true; this.change = true;
} }
}
/** /**
* *
*/ */
private void on_anchor () private void on_anchor ()
{ {
if (this.event.data != null) {
this.idAnchor = this.event.data["id"]; this.idAnchor = this.event.data["id"];
} this.event = this.next_event ();
} }
/** /**
@ -467,7 +441,6 @@ public class Pluie.Yaml.Processor
*/ */
private void on_alias () private void on_alias ()
{ {
if (this.event.data != null) {
this.idAnchor = this.event.data["id"]; this.idAnchor = this.event.data["id"];
Yaml.Node? refnode = this.anchors.get(this.idAnchor); Yaml.Node? refnode = this.anchors.get(this.idAnchor);
if (refnode != null) { if (refnode != null) {
@ -476,7 +449,6 @@ public class Pluie.Yaml.Processor
this.prev_node = this.node; this.prev_node = this.node;
} }
} }
}
/** /**
* *
@ -485,6 +457,7 @@ public class Pluie.Yaml.Processor
{ {
this.node = new Yaml.Sequence (this.parent_node, this.ckey); this.node = new Yaml.Sequence (this.parent_node, this.ckey);
this.change = true; this.change = true;
this.beginFlowSeq = true;
} }
/** /**
@ -492,24 +465,11 @@ public class Pluie.Yaml.Processor
*/ */
private void on_mapping_start (bool entry = false) private void on_mapping_start (bool entry = false)
{ {
if (entry) {
this.create_mapping (entry);
this.ckey = null; this.ckey = null;
this.event = this.next_event ();
if (this.event.evtype.is_key ()) {
this.event = this.next_event ();
this.on_tag (true);
if (this.event.evtype.is_scalar ()) {
this.ckey = this.event.data["data"];
}
var e = this.get_next_value_event();
if (e!=null) {
if ( e.evtype.is_sequence_start ()) {
this.on_sequence_start ();
}
else {
this.create_mapping (this.isEntry);
}
}
} }
else this.create_mapping ();
} }
/** /**
@ -517,7 +477,7 @@ public class Pluie.Yaml.Processor
*/ */
private void create_mapping (bool entry = false) private void create_mapping (bool entry = false)
{ {
if (entry && this.ckey == null) { if (entry) {
this.ckey = "_%d".printf(this.parent_node.count()); this.ckey = "_%d".printf(this.parent_node.count());
} }
this.node = new Yaml.Mapping (this.parent_node, this.ckey); this.node = new Yaml.Mapping (this.parent_node, this.ckey);
@ -529,8 +489,10 @@ public class Pluie.Yaml.Processor
*/ */
private void add_anchor_if_needed () private void add_anchor_if_needed ()
{ {
if (this.idAnchor != null && this.node != null) { if (this.idAnchor != null) {
if (this.node != null) {
this.anchors.set(this.idAnchor, this.node); this.anchors.set(this.idAnchor, this.node);
}
this.idAnchor = null; this.idAnchor = null;
} }
} }
@ -541,10 +503,7 @@ public class Pluie.Yaml.Processor
private void on_update () private void on_update ()
{ {
if (this.node != null) { if (this.node != null) {
Yaml.dbg (Log.METHOD);
Yaml.dbg (this.node.name); Yaml.dbg (this.node.name);
Yaml.dbg (this.node.ntype.infos ());
Yaml.dbg ("anchor ? %s".printf (this.idAnchor));
} }
if (this.change) { if (this.change) {
if (this.node.parent.ntype.is_sequence ()) { if (this.node.parent.ntype.is_sequence ()) {
@ -575,10 +534,7 @@ public class Pluie.Yaml.Processor
this.keyTag = null; this.keyTag = null;
this.valueTag = null; this.valueTag = null;
this.node = null; this.node = null;
this.isEntryMapping = false;
this.change = false; this.change = false;
this.isEntry = false;
this.ckey = null;
} }
} }

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>

View File

@ -1,7 +1,7 @@
/*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*^* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> * @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
* @version : 0.60 * @version : 0.54
* @type : library * @type : library
* @date : 2018 * @date : 2018
* @license : GPLv3.0 <http://www.gnu.org/licenses/> * @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -27,7 +27,9 @@
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *^*/
namespace Pluie.Yaml namespace Pluie
{
namespace Yaml
{ {
const string YAML_VERSION = "1.2"; const string YAML_VERSION = "1.2";
const string YAML_VALA_PREFIX = "v"; const string YAML_VALA_PREFIX = "v";
@ -47,7 +49,7 @@ namespace Pluie.Yaml
/** /**
* *
*/ */
internal static void dbg_action (string msg, string? val = null) public static void dbg_action (string msg, string? val = null)
{ {
if (Pluie.Yaml.DEBUG) of.action (msg, val); if (Pluie.Yaml.DEBUG) of.action (msg, val);
} }
@ -55,7 +57,7 @@ namespace Pluie.Yaml
/** /**
* *
*/ */
internal static void dbg_keyval (string key, string val) public static void dbg_keyval (string key, string val)
{ {
if (Pluie.Yaml.DEBUG) of.keyval (key, val); if (Pluie.Yaml.DEBUG) of.keyval (key, val);
} }
@ -63,7 +65,7 @@ namespace Pluie.Yaml
/** /**
* *
*/ */
internal static void dbg_state (bool done) public static void dbg_state (bool done)
{ {
if (Pluie.Yaml.DEBUG) of.state (done); if (Pluie.Yaml.DEBUG) of.state (done);
} }
@ -71,7 +73,7 @@ namespace Pluie.Yaml
/** /**
* *
*/ */
internal static void dbg (string? msg = null) public static void dbg (string? msg = null)
{ {
if (Pluie.Yaml.DEBUG && msg != null) of.echo (msg); if (Pluie.Yaml.DEBUG && msg != null) of.echo (msg);
} }
@ -100,9 +102,7 @@ namespace Pluie.Yaml
} }
/** /**
* serialize an object as a yaml compressed document data *
* @param obj the object to serialize
* @param dest path destination if you want to write to a file
*/ */
public static uint8[] serialize (GLib.Object? obj, string? dest = null) public static uint8[] serialize (GLib.Object? obj, string? dest = null)
{ {
@ -139,8 +139,7 @@ namespace Pluie.Yaml
} }
/** /**
* deserialize yaml compressed document data to a Yaml.Object *
* @param zdata the data to deserialized
*/ */
public static Yaml.Root deserialize (uint8[] zdata) public static Yaml.Root deserialize (uint8[] zdata)
{ {
@ -322,22 +321,6 @@ namespace Pluie.Yaml
return this == EVT.NONE; return this == EVT.NONE;
} }
/**
* @return event is document start event
*/
public bool is_document_start ()
{
return this == EVT.DOCUMENT_START;
}
/**
* @return event is stream start event
*/
public bool is_stream_start ()
{
return this == EVT.STREAM_START;
}
} }
/** /**
@ -439,7 +422,7 @@ namespace Pluie.Yaml
} }
/** /**
*@return a universal unique identifier (type 4) *@return universal infos related to NODE_TYPE
*/ */
public string uuid () public string uuid ()
{ {
@ -459,3 +442,4 @@ namespace Pluie.Yaml
); );
} }
} }
}

View File

@ -2,7 +2,7 @@
#^# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #^# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml> # @software : pluie-yaml <https://git.pluie.org/pluie/lib-yaml>
# @version : 0.60 # @version : 0.54
# @type : library # @type : library
# @date : 2018 # @date : 2018
# @license : GPLv3.0 <http://www.gnu.org/licenses/> # @license : GPLv3.0 <http://www.gnu.org/licenses/>
@ -29,20 +29,13 @@
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #^# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #^#
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
lib="pluie-yaml-0.6" lib="pluie-yaml-0.5"
cd $DIR cd $DIR
valadoc --package-name=$lib --verbose --force --deps -o ./doc --pkg gee-0.8 --pkg gio-2.0 --pkg gobject-2.0 --pkg gmodule-2.0 --pkg glib-2.0 --pkg pluie-echo-0.2 ./src/vala/Pluie/*.vala ./build/install.vala valadoc --package-name=$lib --verbose --force --deps -o ./doc --pkg gee-0.8 --pkg gio-2.0 --pkg gobject-2.0 --pkg gmodule-2.0 --pkg glib-2.0 --pkg pluie-echo-0.2 ./src/vala/Pluie/*.vala ./build/install.vala
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
rm doc/*.png rm doc/*.png
cp resources/doc-scripts.js ./doc/scripts.js cp resources/doc-scripts.js ./doc/scripts.js
cp resources/doc-style.css ./doc/style.css cp resources/doc-style.css ./doc/style.css
if [ -f "./docfix" ]; then
./docfix
if [ $? -eq 0 ]; then
rm $lib.tar.gz rm $lib.tar.gz
tar -czvf $lib.tar.gz doc/ tar -czvf $lib.tar.gz doc/
scp $lib.tar.gz pluie@pluie.org:/home/pluie/
ssh pluie@pluie.org "./updatedoc.sh $lib"
fi
fi
fi fi