-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add util module #43
Add util module #43
Conversation
These functions would be very useful to have. |
The functions look good to me, but why put them in a |
I put it in a separate module and included it inside |
Let's leave the Util module there, since there's a name clash with the |
CHANGES: * Support Yaml 1.2, and stop advertising Yaml 1.0 support. This also updates the vendored libyaml to 0.2.5 (@favonia avsm/ocaml-yaml#37). * Add a `Yaml.Util` module with a number of useful combinators to manipulate `Yaml.value` types, such as retrieving keys and values, finding entries and converting to OCaml native types (@patricoferris avsm/ocaml-yaml#43) * Move the sexpression derivers into a separate `Yaml_sexp` package (the `yaml-sexp` opam package). This reduces dependencies on the main library. You can still use `Yaml` types in `ppx_sexplib_conv` derivers by simply replacing the `Yaml.value` (or other type) with `Yaml_sexp.value` which is an alias that also includes the Sexp conversion functions in its scope. (@alan-j-hu @avsm avsm/ocaml-yaml#46). * When outputting values, wrap special values like "true" or "1.0" in double quotes, so that `Yaml.of_string` will not interpret them as a non-string value (@avsm avsm/ocaml-yaml#47). * Track anchors and mappings in `Yaml.yaml` (but not in the `Yaml.value` JSON representation). This also allows non-scalar values to be used as keys. (@favonia avsm/ocaml-yaml#38) * Bump the internal write buffer for stream emission to 256k from 64k, as people are writing ever-larger Yaml files! In the future, this static buffer will be replaced by a dynamically growing output buffer but for now needs to be set manually. * The minimum supported OCaml version is now OCaml 4.05.
This PR adds a
Yaml.Util
module providing some common functions for manipulatingYaml.value
values or building simple yaml values from OCaml primitives. It mostly follows the naming convention of havingf
andf_exn
the former using the result type and the latter raising an exception. This fixes #40.