jsonnet 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1eae86ab6c46d74404411fd29d877109116617170f2423738623f067eef21b1
4
- data.tar.gz: ec239abefc2eaf068b36736bdfc0ef1cc7202538418575c6c19cbb077c1152d9
3
+ metadata.gz: 2872d26e221e6ec8bbd30265edd0109eb9f1c68fa19fcfaa888c9921f096f771
4
+ data.tar.gz: b91f326aa5a64a97f9f088a17b6462e8cf77d8e82679c11231cc68eff2b495e5
5
5
  SHA512:
6
- metadata.gz: 85538d0bec2ffba85010a2058b2652bb5fc59bacafe25dc2628bab9f2eb379041f8e3271273a76493b2608bd11f60494e8ab4ef0e55c57eed02272d5d024b453
7
- data.tar.gz: 6ec195d4487be4c68914081f3c83786f254d64f8da61ee7413a73a642e0e46f2d9943540534136ba1dcda69c23308485666a5fa235813e0e7bed6252f3b6e0fe
6
+ metadata.gz: dab85234e40a4b05ae60a4fe7423af108df27b9e3d2db119e6d18edb40f9abbb92c20a5cf7c25fb5d20e3a090031fae42ec93fab135ea3c6682adaf3ec006693
7
+ data.tar.gz: 8aea3bbab4b7661a4ee6d055bd6fdd9b5c0834feae98f266b5d162563b860b932689f4fcd4096a3f2dcdf12fb5e960b2fbb7f7e65ce23d1d177d5f85128dbb56
@@ -1,16 +1,19 @@
1
1
  language: ruby
2
- dist: trusty
2
+ dist: xenial
3
3
  script: bundle exec rake test
4
4
 
5
5
  matrix:
6
6
  include:
7
7
  - os: linux
8
- rvm: 2.3.4
8
+ rvm: 2.5.8
9
9
  - os: osx
10
- rvm: 2.3.4
10
+ rvm: 2.5.8
11
11
  - os: linux
12
- rvm: 2.4.0
12
+ rvm: 2.6.6
13
13
  - os: osx
14
- rvm: 2.4.0
14
+ rvm: 2.6.6
15
+ - os: linux
16
+ rvm: 2.7.2
17
+ - os: osx
18
+ rvm: 2.7.2
15
19
  fast_finish: true
16
-
data/README.md CHANGED
@@ -24,7 +24,7 @@ Or install it yourself as:
24
24
  $ gem install jsonnet
25
25
  ```
26
26
 
27
- By default this gem will compile and install Jsonnet (v0.10.0) as part of
27
+ By default this gem will compile and install Jsonnet (v0.16.0) as part of
28
28
  installation. However you can use the system version of Jsonnet if you prefer.
29
29
  This would be the recommended route if you want to use a different version
30
30
  of Jsonnet or are having problems installing this.
@@ -13,8 +13,8 @@ unless using_system_libraries?
13
13
  require 'mini_portile2'
14
14
  message "Using mini_portile version #{MiniPortile::VERSION}\n"
15
15
 
16
- recipe = MiniPortile.new('jsonnet', 'v0.10.0')
17
- recipe.files = ['https://github.com/google/jsonnet/archive/v0.10.0.tar.gz']
16
+ recipe = MiniPortile.new('jsonnet', 'v0.17.0')
17
+ recipe.files = ['https://github.com/google/jsonnet/archive/v0.17.0.tar.gz']
18
18
  class << recipe
19
19
 
20
20
  def compile
@@ -39,6 +39,7 @@ unless using_system_libraries?
39
39
 
40
40
  FileUtils.cp(File.join(work_path, 'libjsonnet.a'), lib_path)
41
41
  FileUtils.cp(File.join(work_path, 'include', 'libjsonnet.h'), include_path)
42
+ FileUtils.cp(File.join(work_path, 'include', 'libjsonnet_fmt.h'), include_path)
42
43
  end
43
44
  end
44
45
 
@@ -57,4 +58,5 @@ end
57
58
 
58
59
  abort 'libjsonnet.h not found' unless have_header('libjsonnet.h')
59
60
  abort 'libjsonnet not found' unless have_library('jsonnet')
61
+ have_header('libjsonnet_fmt.h')
60
62
  create_makefile('jsonnet/jsonnet_wrap')
@@ -1,4 +1,7 @@
1
1
  #include <libjsonnet.h>
2
+ #ifdef HAVE_LIBJSONNET_FMT_H
3
+ # include <libjsonnet_fmt.h>
4
+ #endif
2
5
  #include <ruby/ruby.h>
3
6
  #include <ruby/intern.h>
4
7
 
@@ -20,8 +23,10 @@ static VALUE cVM;
20
23
  * Raised on evaluation errors in a Jsonnet VM.
21
24
  */
22
25
  static VALUE eEvaluationError;
26
+ static VALUE eFormatError;
23
27
 
24
28
  static void raise_eval_error(struct JsonnetVm *vm, char *msg, rb_encoding *enc);
29
+ static void raise_format_error(struct JsonnetVm *vm, char *msg, rb_encoding *enc);
25
30
  static VALUE str_new_json(struct JsonnetVm *vm, char *json, rb_encoding *enc);
26
31
  static VALUE fileset_new(struct JsonnetVm *vm, char *buf, rb_encoding *enc);
27
32
 
@@ -255,6 +260,128 @@ vm_set_max_trace(VALUE self, VALUE val)
255
260
  return Qnil;
256
261
  }
257
262
 
263
+ static VALUE
264
+ vm_set_fmt_indent(VALUE self, VALUE val)
265
+ {
266
+ struct jsonnet_vm_wrap *vm = rubyjsonnet_obj_to_vm(self);
267
+ jsonnet_fmt_indent(vm->vm, NUM2INT(val));
268
+ return val;
269
+ }
270
+
271
+ static VALUE
272
+ vm_set_fmt_max_blank_lines(VALUE self, VALUE val)
273
+ {
274
+ struct jsonnet_vm_wrap *vm = rubyjsonnet_obj_to_vm(self);
275
+ jsonnet_fmt_max_blank_lines(vm->vm, NUM2INT(val));
276
+ return val;
277
+ }
278
+
279
+ static VALUE
280
+ vm_set_fmt_string(VALUE self, VALUE str)
281
+ {
282
+ const char *ptr;
283
+ struct jsonnet_vm_wrap *vm = rubyjsonnet_obj_to_vm(self);
284
+ StringValue(str);
285
+ if (RSTRING_LEN(str) != 1) {
286
+ rb_raise(rb_eArgError, "fmt_string must have a length of 1");
287
+ }
288
+ ptr = RSTRING_PTR(str);
289
+ switch (*ptr) {
290
+ case 'd':
291
+ case 's':
292
+ case 'l':
293
+ jsonnet_fmt_string(vm->vm, *ptr);
294
+ return str;
295
+ default:
296
+ rb_raise(rb_eArgError, "fmt_string only accepts 'd', 's', or 'l'");
297
+ }
298
+ }
299
+
300
+ static VALUE
301
+ vm_set_fmt_comment(VALUE self, VALUE str)
302
+ {
303
+ const char *ptr;
304
+ struct jsonnet_vm_wrap *vm = rubyjsonnet_obj_to_vm(self);
305
+ StringValue(str);
306
+ if (RSTRING_LEN(str) != 1) {
307
+ rb_raise(rb_eArgError, "fmt_comment must have a length of 1");
308
+ }
309
+ ptr = RSTRING_PTR(str);
310
+ switch (*ptr) {
311
+ case 'h':
312
+ case 's':
313
+ case 'l':
314
+ jsonnet_fmt_comment(vm->vm, *ptr);
315
+ return str;
316
+ default:
317
+ rb_raise(rb_eArgError, "fmt_comment only accepts 'h', 's', or 'l'");
318
+ }
319
+ }
320
+
321
+ static VALUE
322
+ vm_set_fmt_pad_arrays(VALUE self, VALUE val)
323
+ {
324
+ struct jsonnet_vm_wrap *vm = rubyjsonnet_obj_to_vm(self);
325
+ jsonnet_fmt_pad_objects(vm->vm, RTEST(val) ? 1 : 0);
326
+ return val;
327
+ }
328
+
329
+ static VALUE
330
+ vm_set_fmt_pad_objects(VALUE self, VALUE val)
331
+ {
332
+ struct jsonnet_vm_wrap *vm = rubyjsonnet_obj_to_vm(self);
333
+ jsonnet_fmt_pad_objects(vm->vm, RTEST(val) ? 1 : 0);
334
+ return val;
335
+ }
336
+
337
+ static VALUE
338
+ vm_set_fmt_pretty_field_names(VALUE self, VALUE val)
339
+ {
340
+ struct jsonnet_vm_wrap *vm = rubyjsonnet_obj_to_vm(self);
341
+ jsonnet_fmt_pretty_field_names(vm->vm, RTEST(val) ? 1 : 0);
342
+ return val;
343
+ }
344
+
345
+ static VALUE
346
+ vm_set_fmt_sort_imports(VALUE self, VALUE val)
347
+ {
348
+ struct jsonnet_vm_wrap *vm = rubyjsonnet_obj_to_vm(self);
349
+ jsonnet_fmt_sort_imports(vm->vm, RTEST(val) ? 1 : 0);
350
+ return val;
351
+ }
352
+
353
+ static VALUE
354
+ vm_fmt_file(VALUE self, VALUE fname, VALUE encoding)
355
+ {
356
+ int error;
357
+ char *result;
358
+ rb_encoding *const enc = rb_to_encoding(encoding);
359
+ struct jsonnet_vm_wrap *vm = rubyjsonnet_obj_to_vm(self);
360
+
361
+ FilePathValue(fname);
362
+ result = jsonnet_fmt_file(vm->vm, StringValueCStr(fname), &error);
363
+ if (error) {
364
+ raise_format_error(vm->vm, result, rb_enc_get(fname));
365
+ }
366
+ return str_new_json(vm->vm, result, enc);
367
+ }
368
+
369
+ static VALUE
370
+ vm_fmt_snippet(VALUE self, VALUE snippet, VALUE fname)
371
+ {
372
+ int error;
373
+ char *result;
374
+ struct jsonnet_vm_wrap *vm = rubyjsonnet_obj_to_vm(self);
375
+
376
+ rb_encoding *enc = rubyjsonnet_assert_asciicompat(StringValue(snippet));
377
+ FilePathValue(fname);
378
+ result = jsonnet_fmt_snippet(vm->vm, StringValueCStr(fname), StringValueCStr(snippet), &error);
379
+ if (error) {
380
+ raise_format_error(vm->vm, result, rb_enc_get(fname));
381
+ }
382
+ return str_new_json(vm->vm, result, enc);
383
+ }
384
+
258
385
  void
259
386
  rubyjsonnet_init_vm(VALUE mJsonnet)
260
387
  {
@@ -262,6 +389,8 @@ rubyjsonnet_init_vm(VALUE mJsonnet)
262
389
  rb_define_singleton_method(cVM, "new", vm_s_new, -1);
263
390
  rb_define_private_method(cVM, "eval_file", vm_evaluate_file, 3);
264
391
  rb_define_private_method(cVM, "eval_snippet", vm_evaluate, 3);
392
+ rb_define_private_method(cVM, "fmt_file", vm_fmt_file, 2);
393
+ rb_define_private_method(cVM, "fmt_snippet", vm_fmt_snippet, 2);
265
394
  rb_define_method(cVM, "ext_var", vm_ext_var, 2);
266
395
  rb_define_method(cVM, "ext_code", vm_ext_code, 2);
267
396
  rb_define_method(cVM, "tla_var", vm_tla_var, 2);
@@ -272,22 +401,30 @@ rubyjsonnet_init_vm(VALUE mJsonnet)
272
401
  rb_define_method(cVM, "gc_growth_trigger=", vm_set_gc_growth_trigger, 1);
273
402
  rb_define_method(cVM, "string_output=", vm_set_string_output, 1);
274
403
  rb_define_method(cVM, "max_trace=", vm_set_max_trace, 1);
404
+ rb_define_method(cVM, "fmt_indent=", vm_set_fmt_indent, 1);
405
+ rb_define_method(cVM, "fmt_max_blank_lines=", vm_set_fmt_max_blank_lines, 1);
406
+ rb_define_method(cVM, "fmt_string=", vm_set_fmt_string, 1);
407
+ rb_define_method(cVM, "fmt_comment=", vm_set_fmt_comment, 1);
408
+ rb_define_method(cVM, "fmt_pad_arrays=", vm_set_fmt_pad_arrays, 1);
409
+ rb_define_method(cVM, "fmt_pad_objects=", vm_set_fmt_pad_objects, 1);
410
+ rb_define_method(cVM, "fmt_pretty_field_names=", vm_set_fmt_pretty_field_names, 1);
411
+ rb_define_method(cVM, "fmt_sort_imports=", vm_set_fmt_sort_imports, 1);
412
+
413
+ rb_define_const(mJsonnet, "STRING_STYLE_DOUBLE", rb_str_new_cstr("d"));
414
+ rb_define_const(mJsonnet, "STRING_STYLE_SINGLE", rb_str_new_cstr("s"));
415
+ rb_define_const(mJsonnet, "STRING_STYLE_LEAVE", rb_str_new_cstr("l"));
416
+ rb_define_const(mJsonnet, "COMMENT_STYLE_HASH", rb_str_new_cstr("h"));
417
+ rb_define_const(mJsonnet, "COMMENT_STYLE_SLASH", rb_str_new_cstr("s"));
418
+ rb_define_const(mJsonnet, "COMMENT_STYLE_LEAVE", rb_str_new_cstr("l"));
275
419
 
276
420
  rubyjsonnet_init_callbacks(cVM);
277
421
 
278
422
  eEvaluationError = rb_define_class_under(mJsonnet, "EvaluationError", rb_eRuntimeError);
423
+ eFormatError = rb_define_class_under(mJsonnet, "FormatError", rb_eRuntimeError);
279
424
  }
280
425
 
281
- /**
282
- * raises an EvaluationError whose message is \c msg.
283
- * @param[in] vm a JsonnetVM
284
- * @param[in] msg must be a NUL-terminated string returned by \c vm.
285
- * @return never returns
286
- * @throw EvaluationError
287
- * @sa rescue_callback
288
- */
289
426
  static void
290
- raise_eval_error(struct JsonnetVm *vm, char *msg, rb_encoding *enc)
427
+ raise_error(VALUE exception_class, struct JsonnetVm *vm, char *msg, rb_encoding *enc)
291
428
  {
292
429
  VALUE ex;
293
430
  const int state = rubyjsonnet_jump_tag(msg);
@@ -300,11 +437,31 @@ raise_eval_error(struct JsonnetVm *vm, char *msg, rb_encoding *enc)
300
437
  rb_jump_tag(state);
301
438
  }
302
439
 
303
- ex = rb_exc_new3(eEvaluationError, rb_enc_str_new_cstr(msg, enc));
440
+ ex = rb_exc_new3(exception_class, rb_enc_str_new_cstr(msg, enc));
304
441
  jsonnet_realloc(vm, msg, 0);
305
442
  rb_exc_raise(ex);
306
443
  }
307
444
 
445
+ /**
446
+ * raises an EvaluationError whose message is \c msg.
447
+ * @param[in] vm a JsonnetVM
448
+ * @param[in] msg must be a NUL-terminated string returned by \c vm.
449
+ * @return never returns
450
+ * @throw EvaluationError
451
+ * @sa rescue_callback
452
+ */
453
+ static void
454
+ raise_eval_error(struct JsonnetVm *vm, char *msg, rb_encoding *enc)
455
+ {
456
+ raise_error(eEvaluationError, vm, msg, enc);
457
+ }
458
+
459
+ static void
460
+ raise_format_error(struct JsonnetVm *vm, char *msg, rb_encoding *enc)
461
+ {
462
+ raise_error(eFormatError, vm, msg, enc);
463
+ }
464
+
308
465
  /**
309
466
  * Returns a String whose contents is equal to \c json.
310
467
  * It automatically frees \c json just after constructing the return value.
@@ -21,8 +21,8 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_runtime_dependency "mini_portile2", ">= 2.2.0"
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.7"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "test-unit", "~> 3.1.3"
27
- spec.add_development_dependency "rake-compiler", "~> 0.9.5"
24
+ spec.add_development_dependency "bundler", ">= 1.7"
25
+ spec.add_development_dependency "rake", ">= 10.0"
26
+ spec.add_development_dependency "test-unit", ">= 3.1.3"
27
+ spec.add_development_dependency "rake-compiler", ">= 0.9.5"
28
28
  end
@@ -1,3 +1,3 @@
1
1
  module Jsonnet
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -14,9 +14,9 @@ module Jsonnet
14
14
  # @see #evaluate
15
15
  def evaluate(snippet, options = {})
16
16
  snippet_check = ->(key, value) { key.to_s.match(/^filename|multi$/) }
17
- snippet_options = options.select &snippet_check
18
- vm_options = options.reject &snippet_check
19
- new(vm_options).evaluate(snippet, snippet_options)
17
+ snippet_options = options.select(&snippet_check)
18
+ vm_options = options.reject(&snippet_check)
19
+ new(vm_options).evaluate(snippet, **snippet_options)
20
20
  end
21
21
 
22
22
  ##
@@ -30,9 +30,9 @@ module Jsonnet
30
30
  # @see #evaluate_file
31
31
  def evaluate_file(filename, options = {})
32
32
  file_check = ->(key, value) { key.to_s.match(/^encoding|multi$/) }
33
- file_options = options.select &file_check
34
- vm_options = options.reject &file_check
35
- new(vm_options).evaluate_file(filename, file_options)
33
+ file_options = options.select(&file_check)
34
+ vm_options = options.reject(&file_check)
35
+ new(vm_options).evaluate_file(filename, **file_options)
36
36
  end
37
37
  end
38
38
 
@@ -88,14 +88,39 @@ module Jsonnet
88
88
  eval_file(filename, encoding, multi)
89
89
  end
90
90
 
91
+ ##
92
+ # Format Jsonnet file.
93
+ #
94
+ # @param [String] filename filename of a Jsonnet source file.
95
+ # @return [String] a formatted Jsonnet representation
96
+ # @raise [FormatError] raised when the formatting results an error.
97
+ def format_file(filename, encoding: Encoding.default_external)
98
+ fmt_file(filename, encoding)
99
+ end
100
+
101
+ ##
102
+ # Format Jsonnet snippet.
103
+ #
104
+ # @param [String] jsonnet Jsonnet source string. Must be encoded in ASCII-compatible encoding.
105
+ # @param [String] filename filename of the source. Used in stacktrace.
106
+ # @return [String] a formatted Jsonnet representation
107
+ # @raise [FormatError] raised when the formatting results an error.
108
+ # @raise [UnsupportedEncodingError] raised when the encoding of jsonnt is not ASCII-compatible.
109
+ def format(jsonnet, filename: "(jsonnet)")
110
+ fmt_snippet(jsonnet, filename)
111
+ end
112
+
91
113
  ##
92
114
  # Lets the given block handle "import" expression of Jsonnet.
93
115
  # @yieldparam [String] base base path to resolve "rel" from.
94
116
  # @yieldparam [String] rel a relative or absolute path to the file to be imported
95
117
  # @yieldreturn [Array<String>] a pair of the content of the imported file and
96
118
  # its path.
97
- def handle_import
98
- self.import_callback = to_method(Proc.new)
119
+ def handle_import(&block)
120
+ if block.nil?
121
+ raise ArgumentError, 'handle_import requires a block'
122
+ end
123
+ self.import_callback = to_method(block)
99
124
  nil
100
125
  end
101
126
 
@@ -112,8 +137,11 @@ module Jsonnet
112
137
  # Also all the positional optional parameters of the body are interpreted
113
138
  # as required parameters. And the body cannot have keyword, rest or
114
139
  # keyword rest paramters.
115
- def define_function(name, body = nil)
116
- body = body ? body.to_proc : Proc.new
140
+ def define_function(name, body = nil, &block)
141
+ body = body ? body.to_proc : block
142
+ if body.nil?
143
+ raise ArgumentError, 'define_function requires a body argument or a block'
144
+ end
117
145
  params = body.parameters.map.with_index do |(type, name), i|
118
146
  raise ArgumentError, "rest or keyword parameters are not allowed: #{type}" \
119
147
  unless [:req, :opt].include? type
@@ -38,7 +38,7 @@ class TestJsonnet < Test::Unit::TestCase
38
38
  private
39
39
 
40
40
  def example_jsonnet_file
41
- example = Tempfile.open("example.jsonnet") do |f|
41
+ Tempfile.open("example.jsonnet") do |f|
42
42
  f.write %<
43
43
  local myvar = 1;
44
44
  {
@@ -474,6 +474,96 @@ class TestVM < Test::Unit::TestCase
474
474
  end
475
475
  end
476
476
 
477
+ test "Jsonnet::VM#format_file formats Jsonnet file" do
478
+ vm = Jsonnet::VM.new
479
+ vm.fmt_indent = 4
480
+ with_example_file(%<
481
+ local myvar = 1;
482
+ {
483
+ "foo": myvar
484
+ }
485
+ >) {|fname|
486
+ result = vm.format_file(fname)
487
+ assert_equal <<-EOS, result
488
+ local myvar = 1;
489
+ {
490
+ foo: myvar,
491
+ }
492
+ EOS
493
+ }
494
+ end
495
+
496
+ test "Jsonnet::VM#format formats Jsonnet snippet" do
497
+ vm = Jsonnet::VM.new
498
+ vm.fmt_string = 'd'
499
+ result = vm.format(<<-EOS)
500
+ local myvar = 'myvar';
501
+ {
502
+ foo: [myvar,myvar]
503
+ }
504
+ EOS
505
+ assert_equal <<-EOS, result
506
+ local myvar = "myvar";
507
+ {
508
+ foo: [myvar, myvar],
509
+ }
510
+ EOS
511
+ end
512
+
513
+ test "Jsonnet::VM#fmt_string only accepts 'd', 's', or 'l'" do
514
+ vm = Jsonnet::VM.new
515
+ vm.fmt_string = Jsonnet::STRING_STYLE_DOUBLE
516
+ vm.fmt_string = Jsonnet::STRING_STYLE_SINGLE
517
+ vm.fmt_string = Jsonnet::STRING_STYLE_LEAVE
518
+ assert_raise(ArgumentError) do
519
+ vm.fmt_string = ''
520
+ end
521
+ assert_raise(ArgumentError) do
522
+ vm.fmt_string = 'a'
523
+ end
524
+ assert_raise(ArgumentError) do
525
+ vm.fmt_string = 'ds'
526
+ end
527
+ assert_raise(TypeError) do
528
+ vm.fmt_string = 0
529
+ end
530
+ end
531
+
532
+ test "Jsonnet::VM#fmt_comment only accepts 'h', 's', or 'l'" do
533
+ vm = Jsonnet::VM.new
534
+ vm.fmt_comment = Jsonnet::COMMENT_STYLE_HASH
535
+ vm.fmt_comment = Jsonnet::COMMENT_STYLE_SLASH
536
+ vm.fmt_comment = Jsonnet::COMMENT_STYLE_LEAVE
537
+ assert_raise(ArgumentError) do
538
+ vm.fmt_comment = ''
539
+ end
540
+ assert_raise(ArgumentError) do
541
+ vm.fmt_comment = 'a'
542
+ end
543
+ assert_raise(ArgumentError) do
544
+ vm.fmt_comment = 'hs'
545
+ end
546
+ assert_raise(TypeError) do
547
+ vm.fmt_comment = 0
548
+ end
549
+ end
550
+
551
+ test "Jsonnet::VM#fmt_file raises FormatError on error" do
552
+ vm = Jsonnet::VM.new
553
+ with_example_file('{foo: }') do |fname|
554
+ assert_raise(Jsonnet::FormatError) do
555
+ vm.format_file(fname)
556
+ end
557
+ end
558
+ end
559
+
560
+ test "Jsonnet::VM#fmt_snippet raises FormatError on error" do
561
+ vm = Jsonnet::VM.new
562
+ assert_raise(Jsonnet::FormatError) do
563
+ vm.format('{foo: }')
564
+ end
565
+ end
566
+
477
567
  private
478
568
  def with_example_file(content)
479
569
  Tempfile.open("example.jsonnet") {|f|
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.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuki Yugui Sonoda
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-01 00:00:00.000000000 Z
11
+ date: 2020-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mini_portile2
@@ -28,56 +28,56 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.7'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.7'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '10.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: test-unit
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: 3.1.3
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 3.1.3
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake-compiler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.9.5
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.9.5
83
83
  description: Wraps the official C++ implementation of Jsonnet
@@ -114,7 +114,7 @@ homepage: ''
114
114
  licenses:
115
115
  - MIT
116
116
  metadata: {}
117
- post_install_message:
117
+ post_install_message:
118
118
  rdoc_options: []
119
119
  require_paths:
120
120
  - lib
@@ -129,9 +129,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
131
  requirements: []
132
- rubyforge_project:
133
- rubygems_version: 2.7.3
134
- signing_key:
132
+ rubygems_version: 3.1.2
133
+ signing_key:
135
134
  specification_version: 4
136
135
  summary: Jsonnet library
137
136
  test_files: