Skip to content

The Google Jsonnet( operation data template language) for Luajit

License

Notifications You must be signed in to change notification settings

yuduanchen/luajit-jsonnet

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Name

====

luarocks

luajit-jsonnet - The Google Jsonnet( operation data template language) for Luajit

Table of Contents

Description

jsonnet is a domain specific configuration language that helps you define JSON data. Jsonnet lets you compute fragments of JSON within the structure, bringing the same benefit to structured data that templating languages bring to plain text. The example below illustrates a few features -- referring to another part of the structure, overriding object fields, and string operations......

luajit-jsonnet - Use the luajit ffi jsonnet interface calls and operation

Google jsonnet documet: (http://google.github.io/jsonnet/doc/)

install

Simple executing the following command

make install

Methods

new

Create a luajit - jsonnet object

local jso = require "jsonnet"
jsonnet = jso:new()

make

Create a new Jsonnet virtual machine.

syntax: res, err = jsonnet:make()

evaluate_file

Evaluate a file containing Jsonnet code, return a JSON string.

syntax: res,err = jsonnet:evaluate_file("t.jsonnet")
local jso = require "jsonnet"
jsonnet = jso:new()
jsonnet:make()
res,err = jsonnet:evaluate_file("t.jsonnet")
if err == nil then
	print(res)
else
	print(err)
end

evaluate_snippet

Evaluate a file containing Jsonnet code, return a JSON string.

syntax: res,err = jsonnet:evaluate_snippet(snippet)
local snippet = '{ person1: { name: "Alice", welcome: "Hello " + self.name + "!", }, person2: self.person1 { name: "Bob" },}'
res,err = jsonnet:evaluate_snippet(snippet)
if err == nil then
	print(res)
else
	print(err)
end

evaluate_file_multi

Evaluate a file containing Jsonnet code, return a number of JSON files. The returned character buffer contains an even number of strings, the filename and JSON for each

syntax: res,err = jsonnet:evaluate_file_multi("t.jsonnet")

evaluate_snippet_multi

Evaluate a string containing Jsonnet code, return a number of JSON files. The returned character buffer contains an even number of strings, the filename and JSON for each

syntax: res,err = jsonnet:evaluate_snippet_multi(snippet)

destroy

Shut down and release Jsonnet virtual machine.

syntax: res,err = jsonnet:destroy(vm)
local jso = require "jsonnet"
jsonnet = jso:new()
jsonnet:make()
res,err = jsonnet:evaluate_file("t.jsonnet")
jsonnet:destroy()

Author

Yuduan Chen (陈毓端) yumin1985@php.net

About

The Google Jsonnet( operation data template language) for Luajit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 89.8%
  • C 5.6%
  • Lua 1.7%
  • Makefile 1.5%
  • Python 1.4%