babl-json 0.5.5 → 0.5.6

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
  SHA1:
3
- metadata.gz: 06e7d0d6838bd28a3c50434afec9a7ef3673f659
4
- data.tar.gz: 8e4d913e0e5b97e9280a2535543a73c069e2cf84
3
+ metadata.gz: ea8f407140ea61dc83be26fece70b85e47280b09
4
+ data.tar.gz: d2503155b43b8ae0064d30808c30843c56b25702
5
5
  SHA512:
6
- metadata.gz: eb6f0a919e68efd724dffbe3ffccdda0b48a780dc73e41b50c963868d7c1ce5ca92d3935f1566eeeff1e02e9f1d8a3ec8627aba46cc052dbc69052b50de5596c
7
- data.tar.gz: 263c993251039ad9266380382ad0b41206eed7b554cb917aae4b70b5d693a8246ac249201cc7b8df51567f6ecade0775d5981cf92460430c794f6cad2d87736d
6
+ metadata.gz: 0725f1502d153f9de8dbd126dd3b5c03c9211c696b39a778aa756f9d8bc85f6db4fe10260bd39626edaf71b59d074af20b9af6aba49cba736e0eb72a70aca759
7
+ data.tar.gz: 4e213c4de1d6bcd517e7b945b6eb3cd0004891c1356065a2c4716269f669b8fee63049897cbc4c4fc7be504ee8a6b02c209e3ba0a282fe1cd541331efaef2d9f
@@ -11,8 +11,6 @@ module Babl
11
11
  # Since the BABL code is run via #instance_exec within an instance of this class, we want to
12
12
  # define as few methods as possible here.
13
13
  class TemplateBase
14
- attr_reader :builder
15
-
16
14
  def initialize(builder = ChainBuilder.new(&:itself))
17
15
  @builder = builder
18
16
  freeze
@@ -40,7 +38,7 @@ module Babl
40
38
  pretty: pretty,
41
39
  node: tree,
42
40
  dependencies: dependencies,
43
- json_schema: schema.json
41
+ schema: schema
44
42
  )
45
43
  end
46
44
 
@@ -50,6 +48,8 @@ module Babl
50
48
 
51
49
  protected
52
50
 
51
+ attr_reader :builder
52
+
53
53
  def validate(tree)
54
54
  # NOOP
55
55
  end
@@ -65,8 +65,6 @@ module Babl
65
65
  def construct_terminal(&block)
66
66
  self.class.new builder.construct_terminal(&block)
67
67
  end
68
-
69
- protected :builder
70
68
  end
71
69
  end
72
70
  end
@@ -6,18 +6,26 @@ require 'babl/schema'
6
6
  module Babl
7
7
  module Nodes
8
8
  class Concat < Utils::Value.new(:nodes)
9
- def dependencies
9
+ memoize def dependencies
10
10
  Babl::Utils::Hash.deep_merge(*nodes.map(&:dependencies))
11
11
  end
12
12
 
13
- def pinned_dependencies
13
+ memoize def pinned_dependencies
14
14
  Babl::Utils::Hash.deep_merge(*nodes.map(&:pinned_dependencies))
15
15
  end
16
16
 
17
- def schema
17
+ memoize def schema
18
18
  nodes.map(&:schema).reduce(Schema::FixedArray::EMPTY) { |a, b| merge_doc(a, b) }
19
19
  end
20
20
 
21
+ memoize def optimize
22
+ optimize_empty ||
23
+ optimize_single ||
24
+ optimize_concatenated_arrays ||
25
+ optimize_preconcat_constant ||
26
+ self
27
+ end
28
+
21
29
  def render(frame)
22
30
  out = []
23
31
  nodes.each { |node|
@@ -31,14 +39,6 @@ module Babl
31
39
  out
32
40
  end
33
41
 
34
- def optimize
35
- optimize_empty ||
36
- optimize_single ||
37
- optimize_concatenated_arrays ||
38
- optimize_preconcat_constant ||
39
- self
40
- end
41
-
42
42
  private
43
43
 
44
44
  def optimize_empty
@@ -10,21 +10,27 @@ module Babl
10
10
  end
11
11
  end
12
12
 
13
- def schema
13
+ memoize def schema
14
14
  node.schema
15
15
  end
16
16
 
17
- def dependencies
17
+ memoize def dependencies
18
18
  Babl::Utils::Hash.deep_merge(node.dependencies, node.pinned_dependencies[ref] || Utils::Hash::EMPTY)
19
19
  end
20
20
 
21
- def pinned_dependencies
21
+ memoize def pinned_dependencies
22
22
  node.pinned_dependencies.reject { |k, _v| k == ref }
23
23
  end
24
24
 
25
- def optimize
25
+ memoize def optimize
26
26
  optimized = node.optimize
27
- optimized.pinned_dependencies[ref] ? CreatePin.new(optimized, ref) : optimized
27
+ if !optimized.pinned_dependencies[ref]
28
+ optimized
29
+ elsif optimized.equal?(node)
30
+ self
31
+ else
32
+ CreatePin.new(optimized, ref)
33
+ end
28
34
  end
29
35
  end
30
36
  end
@@ -8,20 +8,21 @@ module Babl
8
8
  node.render(frame)
9
9
  end
10
10
 
11
- def schema
11
+ memoize def schema
12
12
  node.schema
13
13
  end
14
14
 
15
- def pinned_dependencies
15
+ memoize def pinned_dependencies
16
16
  node.pinned_dependencies
17
17
  end
18
18
 
19
- def dependencies
19
+ memoize def dependencies
20
20
  Babl::Utils::Hash.deep_merge(node.dependencies, path)
21
21
  end
22
22
 
23
- def optimize
24
- Dep.new(node.optimize, path)
23
+ memoize def optimize
24
+ optimized = node.optimize
25
+ optimized.equal?(node) ? self : Dep.new(optimized, path)
25
26
  end
26
27
  end
27
28
  end
@@ -6,7 +6,7 @@ require 'babl/utils'
6
6
  module Babl
7
7
  module Nodes
8
8
  class Each < Utils::Value.new(:node)
9
- def dependencies
9
+ memoize def dependencies
10
10
  node_deps = node.dependencies
11
11
  child_deps = node_deps.reject { |key, _| key == Parent::PARENT_MARKER }
12
12
 
@@ -16,14 +16,19 @@ module Babl
16
16
  )
17
17
  end
18
18
 
19
- def schema
19
+ memoize def schema
20
20
  Schema::DynArray.new(node.schema)
21
21
  end
22
22
 
23
- def pinned_dependencies
23
+ memoize def pinned_dependencies
24
24
  node.pinned_dependencies
25
25
  end
26
26
 
27
+ memoize def optimize
28
+ optimized = node.optimize
29
+ optimized.equal?(node) ? self : Each.new(node.optimize)
30
+ end
31
+
27
32
  def render(frame)
28
33
  collection = frame.object
29
34
  unless Enumerable === collection
@@ -36,10 +41,6 @@ module Babl
36
41
  end
37
42
  end
38
43
  end
39
-
40
- def optimize
41
- Each.new(node.optimize)
42
- end
43
44
  end
44
45
  end
45
46
  end
@@ -8,27 +8,33 @@ module Babl
8
8
  class FixedArray < Utils::Value.new(:nodes)
9
9
  EMPTY = new(Utils::Array::EMPTY)
10
10
 
11
- def schema
11
+ memoize def schema
12
12
  Schema::FixedArray.new(nodes.map(&:schema))
13
13
  end
14
14
 
15
- def dependencies
15
+ memoize def dependencies
16
16
  Babl::Utils::Hash.deep_merge(*nodes.map(&:dependencies))
17
17
  end
18
18
 
19
- def pinned_dependencies
19
+ memoize def pinned_dependencies
20
20
  Babl::Utils::Hash.deep_merge(*nodes.map(&:pinned_dependencies))
21
21
  end
22
22
 
23
- def render(frame)
24
- nodes.map { |node| node.render(frame) }
23
+ memoize def optimize
24
+ optimized_nodes = nodes.map(&:optimize)
25
+
26
+ fixed_array = self if optimized_nodes.each_with_index.all? { |v, idx| v.equal?(nodes[idx]) }
27
+ fixed_array ||= FixedArray.new(optimized_nodes)
28
+
29
+ if optimized_nodes.all? { |node| Constant === node }
30
+ Constant.new(optimized_nodes.map(&:value).freeze, fixed_array.schema)
31
+ else
32
+ fixed_array
33
+ end
25
34
  end
26
35
 
27
- def optimize
28
- optimized_nodes = nodes.map(&:optimize)
29
- fixed_array = FixedArray.new(optimized_nodes)
30
- return fixed_array unless optimized_nodes.all? { |node| Constant === node }
31
- Constant.new(fixed_array.nodes.map(&:value).freeze, fixed_array.schema)
36
+ def render(frame)
37
+ nodes.map { |node| node.render(frame) }
32
38
  end
33
39
  end
34
40
  end
@@ -5,28 +5,34 @@ require 'babl/nodes/constant'
5
5
  module Babl
6
6
  module Nodes
7
7
  class GotoPin < Utils::Value.new(:node, :ref)
8
- def dependencies
8
+ memoize def dependencies
9
9
  Utils::Hash::EMPTY
10
10
  end
11
11
 
12
- def pinned_dependencies
12
+ memoize def pinned_dependencies
13
13
  Babl::Utils::Hash.deep_merge(node.pinned_dependencies, ref => node.dependencies)
14
14
  end
15
15
 
16
- def schema
16
+ memoize def schema
17
17
  node.schema
18
18
  end
19
19
 
20
+ memoize def optimize
21
+ optimized = node.optimize
22
+ if Constant === optimized
23
+ optimized
24
+ elsif optimized.equal?(node)
25
+ self
26
+ else
27
+ GotoPin.new(optimized, ref)
28
+ end
29
+ end
30
+
20
31
  def render(frame)
21
32
  frame.goto_pin(ref) do |new_frame|
22
33
  node.render(new_frame)
23
34
  end
24
35
  end
25
-
26
- def optimize
27
- optimized = node.optimize
28
- Constant === optimized ? optimized : GotoPin.new(optimized, ref)
29
- end
30
36
  end
31
37
  end
32
38
  end
@@ -7,27 +7,19 @@ require 'babl/nodes/constant'
7
7
  module Babl
8
8
  module Nodes
9
9
  class Merge < Utils::Value.new(:nodes)
10
- def dependencies
10
+ memoize def dependencies
11
11
  Babl::Utils::Hash.deep_merge(*nodes.map(&:dependencies))
12
12
  end
13
13
 
14
- def pinned_dependencies
14
+ memoize def pinned_dependencies
15
15
  Babl::Utils::Hash.deep_merge(*nodes.map(&:pinned_dependencies))
16
16
  end
17
17
 
18
- def schema
18
+ memoize def schema
19
19
  nodes.map(&:schema).reduce(Schema::Object::EMPTY) { |a, b| merge_doc(a, b) }
20
20
  end
21
21
 
22
- def render(frame)
23
- nodes.map { |node| node.render(frame) }.compact.reduce({}) { |acc, val|
24
- raise Errors::RenderingError, "Only objects can be merged\n" +
25
- frame.formatted_stack unless ::Hash === val
26
- acc.merge!(val)
27
- }
28
- end
29
-
30
- def optimize
22
+ memoize def optimize
31
23
  optimize_empty ||
32
24
  optimize_single ||
33
25
  optimize_nested_merges ||
@@ -36,6 +28,14 @@ module Babl
36
28
  self
37
29
  end
38
30
 
31
+ def render(frame)
32
+ nodes.map { |node| node.render(frame) }.compact.reduce({}) { |acc, val|
33
+ raise Errors::RenderingError, "Only objects can be merged\n" +
34
+ frame.formatted_stack unless ::Hash === val
35
+ acc.merge!(val)
36
+ }
37
+ end
38
+
39
39
  private
40
40
 
41
41
  def optimize_empty
@@ -6,7 +6,7 @@ require 'babl/nodes/parent'
6
6
  module Babl
7
7
  module Nodes
8
8
  class Nav < Utils::Value.new(:property, :node)
9
- def dependencies
9
+ memoize def dependencies
10
10
  node_deps = node.dependencies
11
11
  child_deps = node_deps.reject { |key, _| key == Parent::PARENT_MARKER }
12
12
 
@@ -16,14 +16,22 @@ module Babl
16
16
  )
17
17
  end
18
18
 
19
- def schema
19
+ memoize def schema
20
20
  node.schema
21
21
  end
22
22
 
23
- def pinned_dependencies
23
+ memoize def pinned_dependencies
24
24
  node.pinned_dependencies
25
25
  end
26
26
 
27
+ memoize def optimize
28
+ optimized = node.optimize
29
+ return optimized if Constant === optimized
30
+ return optimized.node if Parent === optimized
31
+ return self if optimized.equal?(node)
32
+ Nav.new(property, optimized)
33
+ end
34
+
27
35
  def render(frame)
28
36
  value = begin
29
37
  object = frame.object
@@ -36,13 +44,6 @@ module Babl
36
44
  node.render(new_frame)
37
45
  end
38
46
  end
39
-
40
- def optimize
41
- optimized = node.optimize
42
- return optimized if Constant === optimized
43
- return optimized.node if Parent === optimized
44
- Nav.new(property, optimized)
45
- end
46
47
  end
47
48
  end
48
49
  end
@@ -8,31 +8,33 @@ module Babl
8
8
  class Object < Utils::Value.new(:nodes)
9
9
  EMPTY = new(Utils::Hash::EMPTY)
10
10
 
11
- def dependencies
11
+ memoize def dependencies
12
12
  Babl::Utils::Hash.deep_merge(*nodes.values.map(&:dependencies))
13
13
  end
14
14
 
15
- def pinned_dependencies
15
+ memoize def pinned_dependencies
16
16
  Babl::Utils::Hash.deep_merge(*nodes.values.map(&:pinned_dependencies))
17
17
  end
18
18
 
19
- def schema
19
+ memoize def schema
20
20
  properties = nodes.map { |k, v| Schema::Object::Property.new(k, v.schema, true) }
21
21
  Schema::Object.new(properties, false)
22
22
  end
23
23
 
24
+ memoize def optimize
25
+ optimized_nodes = nodes.map { |k, v| [k, v.optimize] }.to_h
26
+ object = self if optimized_nodes.all? { |k, v| v.equal?(nodes[k]) }
27
+ object ||= Object.new(optimized_nodes)
28
+
29
+ return object unless optimized_nodes.values.all? { |node| Constant === node }
30
+ Constant.new(optimized_nodes.map { |k, v| [k, v.value] }.to_h.freeze, object.schema)
31
+ end
32
+
24
33
  def render(frame)
25
34
  out = {}
26
35
  nodes.each { |k, v| out[k] = v.render(frame) }
27
36
  out
28
37
  end
29
-
30
- def optimize
31
- optimized_nodes = nodes.map { |k, v| [k, v.optimize] }.to_h
32
- optimized_object = Object.new(optimized_nodes)
33
- return optimized_object unless optimized_nodes.values.all? { |node| Constant === node }
34
- Constant.new(optimized_object.nodes.map { |k, v| [k, v.value] }.to_h.freeze, optimized_object.schema)
35
- end
36
38
  end
37
39
  end
38
40
  end
@@ -7,28 +7,30 @@ module Babl
7
7
  class Parent < Utils::Value.new(:node)
8
8
  PARENT_MARKER = Utils::Ref.new
9
9
 
10
- def schema
10
+ memoize def schema
11
11
  node.schema
12
12
  end
13
13
 
14
- def pinned_dependencies
14
+ memoize def pinned_dependencies
15
15
  node.pinned_dependencies
16
16
  end
17
17
 
18
- def dependencies
18
+ memoize def dependencies
19
19
  { PARENT_MARKER => node.dependencies }
20
20
  end
21
21
 
22
+ memoize def optimize
23
+ optimized = node.optimize
24
+ return optimized if Constant === optimized
25
+ return self if optimized.equal?(node)
26
+ Parent.new(optimized)
27
+ end
28
+
22
29
  def render(frame)
23
30
  frame.move_backward do |new_frame|
24
31
  node.render(new_frame)
25
32
  end
26
33
  end
27
-
28
- def optimize
29
- optimized = node.optimize
30
- Constant === optimized ? optimized : Parent.new(optimized)
31
- end
32
34
  end
33
35
  end
34
36
  end
@@ -13,24 +13,19 @@ module Babl
13
13
  super
14
14
  end
15
15
 
16
- def dependencies
16
+ memoize def dependencies
17
17
  Babl::Utils::Hash.deep_merge(*nodes.flatten(1).map(&:dependencies))
18
18
  end
19
19
 
20
- def pinned_dependencies
20
+ memoize def pinned_dependencies
21
21
  Babl::Utils::Hash.deep_merge(*nodes.flatten(1).map(&:pinned_dependencies))
22
22
  end
23
23
 
24
- def schema
24
+ memoize def schema
25
25
  Schema::AnyOf.canonicalized(nodes.map(&:last).map(&:schema))
26
26
  end
27
27
 
28
- def render(frame)
29
- nodes.each { |cond, value| return value.render(frame) if cond.render(frame) }
30
- raise Errors::RenderingError, 'A least one switch() condition must be taken'
31
- end
32
-
33
- def optimize
28
+ memoize def optimize
34
29
  optimize_condition_and_values ||
35
30
  optimize_falsy_conditions ||
36
31
  optimize_truthy_conditions ||
@@ -40,6 +35,11 @@ module Babl
40
35
  self
41
36
  end
42
37
 
38
+ def render(frame)
39
+ nodes.each { |cond, value| return value.render(frame) if cond.render(frame) }
40
+ raise Errors::RenderingError, 'A least one switch() condition must be taken'
41
+ end
42
+
43
43
  private
44
44
 
45
45
  def optimize_continue_to_switch
@@ -5,25 +5,34 @@ require 'babl/nodes/constant'
5
5
  module Babl
6
6
  module Nodes
7
7
  class With < Utils::Value.new(:node, :nodes, :block)
8
- def schema
8
+ memoize def schema
9
9
  node.schema
10
10
  end
11
11
 
12
- def dependencies
12
+ memoize def dependencies
13
13
  Babl::Utils::Hash.deep_merge(
14
14
  *nodes.map(&:dependencies),
15
15
  node.dependencies[Parent::PARENT_MARKER] || Utils::Hash::EMPTY
16
16
  )
17
17
  end
18
18
 
19
- def pinned_dependencies
19
+ memoize def pinned_dependencies
20
20
  Babl::Utils::Hash.deep_merge(*(nodes + [node]).map(&:pinned_dependencies))
21
21
  end
22
22
 
23
+ memoize def optimize
24
+ optimized = node.optimize
25
+ return optimized if Constant === optimized
26
+ return optimized.node if Parent === optimized
27
+ optimized_nodes = nodes.map(&:optimize)
28
+ return self if optimized.equal?(node) && optimized_nodes.each_with_index.all? { |n, idx| n.equal?(nodes[idx]) }
29
+ With.new(optimized, optimized_nodes, block)
30
+ end
31
+
23
32
  def render(frame)
24
- values = nodes.map { |n| n.render(frame) }
33
+ values = nodes.empty? ? nil : nodes.map { |n| n.render(frame) }
25
34
  value = begin
26
- block.arity.zero? ? frame.object.instance_exec(&block) : block.call(*values)
35
+ nodes.empty? ? frame.object.instance_exec(&block) : block.call(*values)
27
36
  rescue StandardError => e
28
37
  raise Errors::RenderingError, "#{e.message}\n" + frame.formatted_stack(:__block__), e.backtrace
29
38
  end
@@ -32,13 +41,6 @@ module Babl
32
41
  node.render(new_frame)
33
42
  end
34
43
  end
35
-
36
- def optimize
37
- optimized = node.optimize
38
- return optimized if Constant === optimized
39
- return optimized.node if Parent === optimized
40
- With.new(optimized, nodes.map(&:optimize), block)
41
- end
42
44
  end
43
45
  end
44
46
  end
@@ -8,7 +8,11 @@ module Babl
8
8
  module DSL
9
9
  # Interpret whatever is passed to this method as BABL template. It is idempotent.
10
10
  def call(*args, &block)
11
- return with(*args, &block) unless block.nil?
11
+ if block
12
+ raise Errors::InvalidTemplate, 'call() expects no argument when a block is given' unless args.empty?
13
+ return with(&block)
14
+ end
15
+
12
16
  raise Errors::InvalidTemplate, 'call() expects exactly 1 argument (unless block)' unless args.size == 1
13
17
 
14
18
  arg = args.first
@@ -5,7 +5,7 @@ require 'babl/utils'
5
5
 
6
6
  module Babl
7
7
  module Rendering
8
- class CompiledTemplate < Utils::Value.new(:node, :dependencies, :preloader, :pretty, :json_schema)
8
+ class CompiledTemplate < Utils::Value.new(:node, :dependencies, :preloader, :pretty, :schema)
9
9
  def json(root)
10
10
  data = render(root)
11
11
  ::MultiJson.dump(data, pretty: pretty)
@@ -17,6 +17,10 @@ module Babl
17
17
  frame.object = preloaded_data
18
18
  node.render(frame)
19
19
  end
20
+
21
+ memoize def json_schema
22
+ schema.json
23
+ end
20
24
  end
21
25
  end
22
26
  end
@@ -17,7 +17,7 @@ module Babl
17
17
  undef_method(method) unless NON_PROXIED_METHODS.include?(method)
18
18
  end
19
19
 
20
- # rubocop:disable Style/MethodMissing
20
+ # rubocop:disable Style/MethodMissingSuper
21
21
  def method_missing(method, *args, &block)
22
22
  if @__receiver__.respond_to?(method)
23
23
  @__receiver__.__send__(method, *args, &block)
@@ -25,7 +25,7 @@ module Babl
25
25
  @__fallback__.__send__(method, *args, &block)
26
26
  end
27
27
  end
28
- # rubocop:enable Style/MethodMissing
28
+ # rubocop:enable Style/MethodMissingSuper
29
29
 
30
30
  def respond_to_missing?(method, include_private = false)
31
31
  @__receiver__.respond_to?(method, include_private) ||
@@ -8,7 +8,6 @@ module Babl
8
8
  # - Properties are assumed deeply immutable (#hash is assumed constant & store permanently)
9
9
  # - Constructor requires all arguments
10
10
  # - #== has the same meaning as #eql?
11
- # - The object is frozen
12
11
  #
13
12
  # Goals :
14
13
  # - Create completely immutable value objects
@@ -21,14 +20,17 @@ module Babl
21
20
 
22
21
  clazz = super(:_cached_hash, *fields)
23
22
  clazz.const_set(:FIELDS, fields)
24
- clazz.class_eval <<-RUBY
23
+ clazz.class_eval <<-RUBY, __FILE__, __LINE__ + 1
25
24
  def initialize(#{field_aliases.join(',')})
26
25
  super(#{['nil', field_aliases].join(',')})
27
26
  hash
28
- freeze
29
27
  end
30
28
  RUBY
31
29
 
30
+ fields.each { |field|
31
+ clazz.send(:define_method, :"#{field}=") { |*| raise ::RuntimeError, 'Object is immutable' }
32
+ }
33
+
32
34
  clazz
33
35
  end
34
36
 
@@ -40,9 +42,25 @@ module Babl
40
42
  eql?(other)
41
43
  end
42
44
 
43
- def self.with(hash = Utils::Hash::EMPTY)
44
- raise ::ArgumentError unless ::Hash === hash && (hash.keys - self::FIELDS).empty?
45
- new(*self::FIELDS.map { |f| hash.fetch(f) })
45
+ class << self
46
+ def with(hash = Utils::Hash::EMPTY)
47
+ raise ::ArgumentError unless ::Hash === hash && (hash.keys - self::FIELDS).empty?
48
+ new(*self::FIELDS.map { |f| hash.fetch(f) })
49
+ end
50
+
51
+ private
52
+
53
+ def memoize(method_name)
54
+ old_name = :"_unmemoized_#{method_name}"
55
+ alias_method old_name, method_name
56
+
57
+ class_eval <<-RUBY, __FILE__, __LINE__ + 1
58
+ def #{method_name}
59
+ return @#{old_name} if defined? @#{old_name}
60
+ @#{old_name} = #{old_name}
61
+ end
62
+ RUBY
63
+ end
46
64
  end
47
65
  end
48
66
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Babl
3
- VERSION = '0.5.5'
3
+ VERSION = '0.5.6'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: babl-json
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frederic Terrazzoni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-04 00:00:00.000000000 Z
11
+ date: 2018-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coveralls
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: '0.51'
103
+ version: '0.57'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: '0.51'
110
+ version: '0.57'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: multi_json
113
113
  requirement: !ruby/object:Gem::Requirement