Scala (and java) fluent interface to yaml/yml, json, xml, hocon, conf, properties, freemind, csv, folders.
There is an SNode
entity that is used as the common entity
- A node should keep?
- path to it?
- root?
- internal data?
- data including self?
- add external formatters/parsers/connectors
- xml
- scala
- java
- json
- rapture
- freemind xml
- hocon
- typesafe config library
- java properties
- csv
- xml
- add extractors (as visitors?)
- jquery/css selectors
- xpath
- add schema validators
- general schemas: https://json-schema-everywhere.github.io/yaml
- xsd validator
- dtd validator
- json schema
- yaml schema
val a = Nodes.loadYaml("a.yaml")
val b = Nodes.loadHocon("b.conf")
val c = Nodes.loadXml("c.xml")
val ab = a.addChild("b",b)
val abc = c.children.last.addChild("ab",ab)
Nodes.saveFreemind(abc,"abc.mm")
For more samples see LocationsTest.scala
- from sbt
libraryDependencies += "org.raisercostin" %% "jedi-node" % "0.1"
- maven resolver at bintray - http://dl.bintray.com/raisercostin/maven
resolvers += "raisercostin repository" at "http://dl.bintray.com/raisercostin/maven"
Projects that are using jedi-node:
- see HierarchicalMultimap in jedi-io
- data access
- typesafe's config library (hierarchical map)
- rapture's dynamic field access
- purecsv's conversion to scala objects
- jijection's conversion
- data storage (serialization/deserialization, marshaling/unmarshalling, pickling/unpickling, encode/decode - shapeless)
- libraries
- purecsv
- read objects from csv without converters: https://github.com/melrief/PureCSV
- is using shapeless
- pickling
- rapture (json,xml formats)
- bijection
- purecsv
A container of keys in form a.b.c is needed. The value could be multivalue eventually typed : Seq(value1,value2,value3). Given a container and a key prefix another container should be returned with partial keys prefix removed. A refereence to full key might be useful. A relativeKey concept might be useful? A save/load from hocon, yaml would be nice. A business wrapper around a Config should be easy to use.
- to configure release
bintrayChangeCredentials
- to publish current version with all scala versions (2.10,2.11,2.12):
+publish
- to release
sbt> release skip-tests
- Create Nodes abstraction
- Add JSON and YAML validators