jsonnet 0.0.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b3ba7719f8a07cc8385aef8ffc4b2e1b21924f33
4
- data.tar.gz: ca340bf28f5f521aef9b5a7f2e71613e277f7fd4
3
+ metadata.gz: a215d91a36c8af2f5ad4d145f571fbbc070cedb7
4
+ data.tar.gz: 4e5b93b2fc44a5c33bb1fb27830a33ee810b4e8f
5
5
  SHA512:
6
- metadata.gz: ba5847ad581b28bde58ee1b14f96e6b5624d72d96125ccf82aabc9543aff3280f6c39f0ba69ba2d4ae7484517e7fd3971d563e2868c8a01bef78adce74d89aab
7
- data.tar.gz: 9519135c4c6f81cb94dca96ac22a4fb401839af5e8b6d573e7cd6d7d33a1b000bc92f3a907048a93ee251b15cef9a0727470c4655129d69360b8acf9149fac22
6
+ metadata.gz: 84a38e5e7e776ac8d11505693adedd2fd05dfe0d01146e5e242241f2a82f9d2b849983d15bb1909cd24fcfe6404aee0eb87647074a34893204ae522fee0c14bc
7
+ data.tar.gz: 1d44661d345335978fe2f67fec727c06aa3888b08b8418f570b7b27226b57e6c9501d4cc93fb51b312a861cbe2c6ba515793031c34cfec92468f67b319cfa8bb
data/README.md CHANGED
@@ -2,11 +2,16 @@
2
2
 
3
3
  Jsonnet processor library. Wraps the official C++ implementation with a Ruby extention library.
4
4
 
5
- ## Status
6
- Pre-alpha. Under development.
7
-
8
5
  ## Installation
9
6
 
7
+ Install libjsonnet:
8
+
9
+ $ git clone https://github.com/google/jsonnet.git
10
+ $ cd jsonnet
11
+ $ make
12
+ $ sudo cp libjsonnet.so /usr/local/lib/libjsonnet.so
13
+ $ sudo cp libjsonnet.h /usr/local/include/libjsonnet.h
14
+
10
15
  Add this line to your application's Gemfile:
11
16
 
12
17
  ```ruby
@@ -24,11 +24,12 @@ struct jsonnet_vm_wrap {
24
24
  };
25
25
 
26
26
  static void vm_free(void *ptr);
27
+ static void vm_mark(void *ptr);
27
28
 
28
29
  static const rb_data_type_t jsonnet_vm_type = {
29
30
  "JsonnetVm",
30
31
  {
31
- /* dmark = */ 0,
32
+ /* dmark = */ vm_mark,
32
33
  /* dfree = */ vm_free,
33
34
  /* dsize = */ 0,
34
35
  },
@@ -135,7 +136,8 @@ jw_s_version(VALUE mod)
135
136
  }
136
137
 
137
138
  static VALUE
138
- vm_s_new(VALUE mod) {
139
+ vm_s_new(VALUE mod)
140
+ {
139
141
  struct jsonnet_vm_wrap *vm;
140
142
  VALUE self = TypedData_Make_Struct(cVM, struct jsonnet_vm_wrap, &jsonnet_vm_type, vm);
141
143
  vm->vm = jsonnet_make();
@@ -144,12 +146,20 @@ vm_s_new(VALUE mod) {
144
146
  }
145
147
 
146
148
  static void
147
- vm_free(void *ptr) {
149
+ vm_free(void *ptr)
150
+ {
148
151
  struct jsonnet_vm_wrap *vm = (struct jsonnet_vm_wrap*)ptr;
149
152
  jsonnet_destroy(vm->vm);
150
153
  REALLOC_N(vm, struct jsonnet_vm_wrap, 0);
151
154
  }
152
155
 
156
+ static void
157
+ vm_mark(void *ptr)
158
+ {
159
+ struct jsonnet_vm_wrap *vm = (struct jsonnet_vm_wrap*)ptr;
160
+ rb_gc_mark(vm->callback);
161
+ }
162
+
153
163
  static VALUE
154
164
  vm_evaluate_file(VALUE self, VALUE fname, VALUE encoding, VALUE multi_p)
155
165
  {
@@ -1,3 +1,3 @@
1
1
  module Jsonnet
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -33,5 +33,16 @@ module Jsonnet
33
33
  def evaluate_file(filename, encoding: Encoding.default_external, multi: false)
34
34
  eval_file(filename, encoding, multi)
35
35
  end
36
+
37
+ ##
38
+ # Lets the given block handle "import" expression of Jsonnet.
39
+ # @yieldparam [String] base base path to resolve "rel" from.
40
+ # @yieldparam [String] rel a relative or absolute path to the file to be imported
41
+ # @yieldreturn [Array<String>] a pair of the content of the imported file and
42
+ # its path.
43
+ def handle_import
44
+ self.import_callback = Proc.new
45
+ nil
46
+ end
36
47
  end
37
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsonnet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuki Yugui Sonoda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-06 00:00:00.000000000 Z
11
+ date: 2015-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler