raisercostin / jedi-nodes

Scala (and java) fluent interface to json, xml, hocon, conf, properties, freemind.

GitHub

Jedi Nodes

Status

Download Build Status Codacy Badge codecov

Description

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

Features

Usage

Samples

 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

Library

  • from sbt
libraryDependencies += "org.raisercostin" %% "jedi-node" % "0.1"
resolvers += "raisercostin repository" at "http://dl.bintray.com/raisercostin/maven"

Design

Projects that are using jedi-node:

Backlog

  • see HierarchicalMultimap in jedi-io

Similar technologies

Hierarchical Map

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.

Development

  • 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

History

2018-02-19

  • Create Nodes abstraction

2018-02-25

  • Add JSON and YAML validators