client-api 0.3.3 → 0.3.4

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: c0a612f5c50744b4c1f7ecdea839fa8d222f7e2e39148f57f1dc4d4716eaa2c8
4
- data.tar.gz: c2671c223b7d26c4600a0b9b48189347d5aef8cdd09d3ca6f921dcede096cb3c
3
+ metadata.gz: d2e9cdee9c77e69f0b74fba761bd250516ac0d08f7cf8f1ad62486f74dac57ab
4
+ data.tar.gz: b57b1ef0522cf9bc785a01f422b7c032639cb386e09b10bec3eceef4ecc35ef9
5
5
  SHA512:
6
- metadata.gz: 732762a2aa97f9d09f20230e0fb91fa16606a41cb93241529e45ef121eb42bb2f85c0366a421c9882943c8b098fe194721ddd876cfa230324bb96bada91f86c8
7
- data.tar.gz: a1ecf533512e3524076db73a859d010b07aa474f45384bdff686234fc4378824fd7b69f8e2fff694692649488cb30a5c6359dc3d277101b7643c9878fe395805
6
+ metadata.gz: 4513c7768af1d60ee8186716b0dd3599e97c5af909eedeebf9b4b7a492e3cbd820d565318f00fb2b39ca1d5a7cd1821dd4ea530f546e83b956b3a15c36fc5973
7
+ data.tar.gz: 6010df3cc068384700d77017ec106458edbcf16ea20da01f91ca4a1ac76744d8f2718554fb5e976cc943d4b599d4c8382e8ca96dda0d6b1e0ee9ca9efb6647c0
@@ -3,13 +3,14 @@ require "json-schema"
3
3
  module ClientApi
4
4
 
5
5
  def validate(res, *options)
6
+
7
+ # noinspection RubyScope
6
8
  options.map do |data|
7
9
  raise('"key": ""'.green + ' field is missing'.red) if data[:key].nil?
8
- raise('"operator":'.green + ' or'.red + ' "size":'.green + ' or'.red + ' "empty":'.green + ' "has_key":'.green + ' field is not given!'.red) if data[:operator].nil? && data[:size].nil? && data[:empty].nil? && data[:has_key].nil?
9
- raise('"value":'.green + ' or'.red + ' "size":'.green + ' or'.red + ' "type":'.green + ' field is not given!'.red) if data[:value].nil? && data[:type].nil? && data[:size].nil? if data[:operator] != nil
10
+ raise('Need at least one field to validate'.green) if data[:value].nil? && data[:type].nil? && data[:size].nil? && data[:empty].nil? && data[:has_key].nil?
10
11
 
11
12
  value ||= data[:value]
12
- operator ||= data[:operator]
13
+ operator ||= (data[:operator] || '==').downcase
13
14
  type ||= data[:type]
14
15
  size ||= data[:size]
15
16
  empty ||= data[:empty]
@@ -18,159 +19,162 @@ module ClientApi
18
19
  @resp = JSON.parse(res.to_json)
19
20
  key = data[:key].split("->")
20
21
 
22
+ @err_method = []
23
+
21
24
  key.map do |method|
22
25
  method = method.to_i if is_num?(method)
26
+ @err_method = @err_method << method
27
+
23
28
  begin
29
+ if method.is_a? Integer
30
+ raise %[key: ]+ %[#{@err_method.join('->')}].green + %[ does not exist! please check the key once again].red if ((@resp.class != Array) || (method.to_i >= @resp.count)) && data[:has_key].nil?
31
+ else
32
+ raise %[key: ]+ %[#{@err_method.join('->')}].green + %[ does not exist! please check the key once again].red if !@resp.include?(method) && data[:has_key].nil?
33
+ end
24
34
  @resp = @resp.send(:[], method)
25
35
  rescue NoMethodError
26
- raise "[key]: \"#{data[:key]}\"".blue + "\n does not exist"+"\n" if data[:has_key].nil?
36
+ raise %[key: ]+ %[#{@err_method.join('->')}].green + %[ does not exist! please check the key once again].red if data[:has_key].nil?
27
37
  end
28
38
  end
29
39
 
30
- if operator != nil
31
- case operator
32
- when '=', '==', 'eql', 'eql?', 'equal', 'equal?'
33
- # value validation
34
- expect(value).to eq(@resp), lambda {"[key]: \"#{data[:key]}\"".blue + "\n didn't match \n[value]: \"#{data[:value]}\"\n"} if value != nil
35
-
36
- # datatype validation
37
- if (type == 'boolean') || (type == 'bool')
38
- expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
39
- elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
40
- expect(datatype(type, value)).to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
41
- end
40
+ case operator
41
+ when '=', '==', 'eql', 'eql?', 'equal', 'equal?'
42
+ # has key validation
43
+ validate_key(has_key, data) if has_key != nil
42
44
 
43
- # size validation
44
- validate_size(size, data) if size != nil
45
+ # value validation
46
+ expect(value).to eq(@resp), lambda {"[key]: \"#{data[:key]}\"".blue + "\n didn't match \n[value]: \"#{data[:value]}\"\n"} if value != nil
45
47
 
46
- # is empty validation
47
- validate_empty(empty, data) if empty != nil
48
+ # datatype validation
49
+ if (type == 'boolean') || (type == 'bool')
50
+ expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
51
+ elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
52
+ expect(datatype(type, value)).to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
53
+ end
48
54
 
49
- # has key validation
50
- validate_key(has_key, data) if has_key != nil
55
+ # size validation
56
+ validate_size(size, data) if size != nil
51
57
 
52
- when '!', '!=', '!eql', '!eql?', 'not eql', 'not equal', '!equal?'
53
- # value validation
54
- expect(value).not_to eq(@resp), lambda {"[key]: \"#{data[:key]}\"".blue + "\n didn't match \n[value]: \"#{data[:value]}\"\n"} if value != nil
58
+ # is empty validation
59
+ validate_empty(empty, data) if empty != nil
55
60
 
56
- # datatype validation
57
- if (type == 'boolean') || (type == 'bool')
58
- expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).not_to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
59
- elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
60
- expect(datatype(type, value)).not_to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
61
- end
61
+ when '!', '!=', '!eql', '!eql?', 'not eql', 'not equal', '!equal?'
62
+ # has key validation
63
+ validate_key(has_key, data) if has_key != nil
62
64
 
63
- # size validation
64
- if size != nil
65
- begin
66
- expect(size).not_to eq(@resp.count), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size shouldn't match" + "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "[size not expected]: #{size}".green}
67
- rescue NoMethodError
68
- expect(size).not_to eq(0), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size shouldn't match" + "\n\n" + "[ actual size ]: 0" + "\n" + "[size not expected]: #{size}".green}
69
- rescue ArgumentError
70
- expect(size).not_to eq(0), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size shouldn't match" + "\n\n" + "[ actual size ]: 0" + "\n" + "[size not expected]: #{size}".green}
71
- end
65
+ # value validation
66
+ expect(value).not_to eq(@resp), lambda {"[key]: \"#{data[:key]}\"".blue + "\n didn't match \n[value]: \"#{data[:value]}\"\n"} if value != nil
67
+
68
+ # datatype validation
69
+ if (type == 'boolean') || (type == 'bool')
70
+ expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).not_to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
71
+ elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
72
+ expect(datatype(type, value)).not_to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
73
+ end
74
+
75
+ # size validation
76
+ if size != nil
77
+ begin
78
+ expect(size).not_to eq(@resp.count), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size shouldn't match" + "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "[size not expected]: #{size}".green}
79
+ rescue NoMethodError
80
+ expect(size).not_to eq(0), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size shouldn't match" + "\n\n" + "[ actual size ]: 0" + "\n" + "[size not expected]: #{size}".green}
81
+ rescue ArgumentError
82
+ expect(size).not_to eq(0), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size shouldn't match" + "\n\n" + "[ actual size ]: 0" + "\n" + "[size not expected]: #{size}".green}
72
83
  end
84
+ end
73
85
 
74
- # is empty validation
75
- validate_empty(empty, data) if empty != nil
86
+ # is empty validation
87
+ validate_empty(empty, data) if empty != nil
76
88
 
77
- # has key validation
78
- validate_key(has_key, data) if has_key != nil
89
+ when '>', '>=', '<', '<=', 'greater than', 'greater than or equal to', 'less than', 'less than or equal to', 'lesser than', 'lesser than or equal to'
90
+ message = 'is not greater than (or) equal to' if operator == '>=' || operator == 'greater than or equal to'
91
+ message = 'is not greater than' if operator == '>' || operator == 'greater than'
92
+ message = 'is not lesser than (or) equal to' if operator == '<=' || operator == 'less than or equal to'
93
+ message = 'is not lesser than' if operator == '<' || operator == 'less than' || operator == 'lesser than'
79
94
 
80
- when '>', '>=', '<', '<=', 'greater than', 'greater than or equal to', 'less than', 'less than or equal to', 'lesser than', 'lesser than or equal to'
81
- message = 'is not greater than (or) equal to' if operator == '>=' || operator == 'greater than or equal to'
82
- message = 'is not greater than' if operator == '>' || operator == 'greater than'
83
- message = 'is not lesser than (or) equal to' if operator == '<=' || operator == 'less than or equal to'
84
- message = 'is not lesser than' if operator == '<' || operator == 'less than' || operator == 'lesser than'
95
+ # has key validation
96
+ validate_key(has_key, data) if has_key != nil
85
97
 
86
- # value validation
87
- expect(@resp.to_i.public_send(operator, value)).to eq(true), "[key]: \"#{data[:key]}\"".blue + "\n #{message} \n[value]: \"#{data[:value]}\"\n" if value != nil
98
+ # value validation
99
+ expect(@resp.to_i.public_send(operator, value)).to eq(true), "[key]: \"#{data[:key]}\"".blue + "\n #{message} \n[value]: \"#{data[:value]}\"\n" if value != nil
88
100
 
89
- # datatype validation
90
- expect(datatype(type, value)).to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"} if type != nil
101
+ # datatype validation
102
+ expect(datatype(type, value)).to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"} if type != nil
91
103
 
92
- # size validation
93
- if size != nil
94
- begin
95
- expect(@resp.count.to_i.public_send(operator, size)).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "#{message} #{size}" + "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "expected size to be #{operator} #{size}".green}
96
- rescue NoMethodError
97
- expect(0.public_send(operator, size)).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "#{message} #{size}" + "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to be #{operator} #{size}".green}
98
- rescue ArgumentError
99
- expect(0.public_send(operator, size)).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "#{message} #{size}" + "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to be #{operator} #{size}".green}
100
- end
104
+ # size validation
105
+ if size != nil
106
+ begin
107
+ expect(@resp.count.to_i.public_send(operator, size)).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "#{message} #{size}" + "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "expected size to be #{operator} #{size}".green}
108
+ rescue NoMethodError
109
+ expect(0.public_send(operator, size)).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "#{message} #{size}" + "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to be #{operator} #{size}".green}
110
+ rescue ArgumentError
111
+ expect(0.public_send(operator, size)).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "#{message} #{size}" + "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to be #{operator} #{size}".green}
101
112
  end
113
+ end
102
114
 
103
- # is empty validation
104
- validate_empty(empty, data) if empty != nil
115
+ # is empty validation
116
+ validate_empty(empty, data) if empty != nil
105
117
 
106
- # has key validation
107
- validate_key(has_key, data) if has_key != nil
118
+ when 'contains', 'has', 'contains?', 'has?', 'include', 'include?'
119
+ # has key validation
120
+ validate_key(has_key, data) if has_key != nil
108
121
 
109
- when 'contains', 'has', 'contains?', 'has?', 'include', 'include?'
110
- # value validation
111
- expect(@resp.to_s).to include(value.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n not contains \n[value]: \"#{data[:value]}\"\n"} if value != nil
122
+ # value validation
123
+ expect(@resp.to_s).to include(value.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n not contains \n[value]: \"#{data[:value]}\"\n"} if value != nil
112
124
 
113
- # datatype validation
114
- if (type == 'boolean') || (type == 'bool')
115
- expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
116
- elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
117
- expect(datatype(type, value)).to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
118
- end
125
+ # datatype validation
126
+ if (type == 'boolean') || (type == 'bool')
127
+ expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
128
+ elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
129
+ expect(datatype(type, value)).to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
130
+ end
119
131
 
120
- # size validation
121
- if size != nil
122
- begin
123
- expect(@resp.count.to_s).to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size not contains #{size}"+ "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "expected size to contain: #{size}".green}
124
- rescue NoMethodError
125
- expect(0.to_s).to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size not contains #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to contain: #{size}".green}
126
- rescue ArgumentError
127
- expect(0.to_s).to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size not contains #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to contain: #{size}".green}
128
- end
132
+ # size validation
133
+ if size != nil
134
+ begin
135
+ expect(@resp.count.to_s).to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size not contains #{size}"+ "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "expected size to contain: #{size}".green}
136
+ rescue NoMethodError
137
+ expect(0.to_s).to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size not contains #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to contain: #{size}".green}
138
+ rescue ArgumentError
139
+ expect(0.to_s).to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size not contains #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to contain: #{size}".green}
129
140
  end
141
+ end
130
142
 
131
- # is empty validation
132
- validate_empty(empty, data) if empty != nil
133
-
134
- when 'not contains', '!contains', 'not include', '!include'
135
- # value validation
136
- expect(@resp.to_s).not_to include(value.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n should not contain \n[value]: \"#{data[:value]}\"\n"} if value != nil
137
-
138
- # datatype validation
139
- if (type == 'boolean') || (type == 'bool')
140
- expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).not_to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
141
- elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
142
- expect(datatype(type, value)).not_to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
143
- end
143
+ # is empty validation
144
+ validate_empty(empty, data) if empty != nil
144
145
 
145
- # size validation
146
- if size != nil
147
- begin
148
- expect(@resp.count.to_s).not_to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size should not contain #{size}"+ "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "expected size not to contain: #{size}".green}
149
- rescue NoMethodError
150
- expect(0.to_s).not_to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size should not contain #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size not to contain: #{size}".green}
151
- rescue ArgumentError
152
- expect(0.to_s).not_to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size should not contain #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size not to contain: #{size}".green}
153
- end
154
- end
146
+ when 'not contains', '!contains', 'not include', '!include'
147
+ # has key validation
148
+ validate_key(has_key, data) if has_key != nil
155
149
 
156
- # is empty validation
157
- validate_empty(empty, data) if empty != nil
150
+ # value validation
151
+ expect(@resp.to_s).not_to include(value.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n should not contain \n[value]: \"#{data[:value]}\"\n"} if value != nil
158
152
 
159
- # has key validation
160
- validate_key(has_key, data) if has_key != nil
153
+ # datatype validation
154
+ if (type == 'boolean') || (type == 'bool')
155
+ expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).not_to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
156
+ elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
157
+ expect(datatype(type, value)).not_to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
158
+ end
161
159
 
162
- else
163
- raise('operator not matching')
160
+ # size validation
161
+ if size != nil
162
+ begin
163
+ expect(@resp.count.to_s).not_to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size should not contain #{size}"+ "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "expected size not to contain: #{size}".green}
164
+ rescue NoMethodError
165
+ expect(0.to_s).not_to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size should not contain #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size not to contain: #{size}".green}
166
+ rescue ArgumentError
167
+ expect(0.to_s).not_to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size should not contain #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size not to contain: #{size}".green}
168
+ end
164
169
  end
165
170
 
166
- elsif ((size != nil) || (empty != nil) || (has_key != nil)) && operator.nil?
171
+ # is empty validation
167
172
  validate_empty(empty, data) if empty != nil
168
- validate_size(size, data) if size != nil
169
- validate_key(has_key, data) if has_key != nil
170
173
 
171
174
  else
172
- raise('invalid validation fields')
175
+ raise('operator not matching')
173
176
  end
177
+
174
178
  end
175
179
 
176
180
  end
@@ -1,3 +1,3 @@
1
1
  module ClientApi
2
- VERSION = "0.3.3".freeze
2
+ VERSION = "0.3.4".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: client-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Prashanth Sams
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-11 00:00:00.000000000 Z
11
+ date: 2019-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler