logstash-filter-units 0.1.0 → 0.1.1

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: 693aa67dfac7153254fb62cfdb716c9d108fb92c
4
- data.tar.gz: e10a3496e7c6ae1ce57972e3981be82776a20246
3
+ metadata.gz: 77351902d501e8d3ed2aff1d95be75078f4e6731
4
+ data.tar.gz: f8518e36bd0b3b9e4f70c03f18964f5debad93f7
5
5
  SHA512:
6
- metadata.gz: 714eec4b166ca567bf3c5440c752e01966cc1c09eb392e337d8094200dac7c98c4d8bbd53efe78284e51ddaf500fd6fbcde3e6064187391a6d3d2d48de650656
7
- data.tar.gz: d54019094055725ccb20cc9d5bc521b0c0a543e33862d38b81c48e78872e1e420efd46ddbbad6d94ce622e6b16adef49144b3452d7c45879d1530cada29912c2
6
+ metadata.gz: 797eec246d7f1b29e0e751a5fad410edbc1e89416233aaa926ae6ef26198977a799066190f8763bf6f6c7b45c69fc35ad9f62b1842768b345e3942484a7003a1
7
+ data.tar.gz: 1f36b803c1fc541cd54bd58c05ab2c7d757c6cf8972e4b1c7a277011843e5ee589df25717dd6a34670a7466b5ce781e286078dfb902a2a755646b13bf0be22c1
data/Gemfile CHANGED
@@ -1,12 +1,2 @@
1
1
  source 'http://rubygems.org'
2
- # gem 'treetop'
3
- # gem 'jrjackson'
4
- # gem 'stud'
5
- # gem 'clamp'
6
- # gem 'i18n'
7
- # gem 'filesize'
8
- # gem 'cabin'
9
- # gem 'rake'
10
- # gem 'unitwise'
11
- gem "logstash", :github => "elasticsearch/logstash", :branch => "1.5"
12
- gemspec
2
+ gemspec
@@ -3,278 +3,284 @@
3
3
  require "logstash/filters/base"
4
4
  require "logstash/namespace"
5
5
  require "unitwise"
6
+ # ------------------------------------------------------------------------------
6
7
 
7
8
  # The units filter is used for converting specified fields from one
8
9
  # unit of measure to another (or many others).
9
-
10
10
  class LogStash::Filters::Units < LogStash::Filters::Base
11
- config_name "units"
12
- milestone 1
13
-
14
- config(:fields, :validate => :array, :required => true)
15
- # The source fields to be converted
16
- # Fields may be specified in three different ways:
17
- # - Fields may be referenced specifically, by drilling
18
- # down the field hierarchy using the square bracket syntax. If
19
- # they are specified in this manner, then only the exact field
20
- # specified will be converted.
21
- # - Fields may also be specifed more generally simply by proving
22
- # the field name. If done this way, the given field will convert
23
- # any bottom level field of the same name.
24
- # - If provided a string rather than an array of fields, the field
25
- # provided will be converted in place rather then prepended with
26
- # additional fields.
27
- # Example:
28
- # [source,ruby]
29
- # filter {
30
- # units {
31
- # fields => ["top_level_field",
32
- # "bottom_level_field",
33
- # "[a][nested][field]"]
34
- # output_units => ["kilobyte", "megabyte"]
35
- # }
36
- # }
37
- # Example:
38
- # [source,ruby]
39
- # filter {
40
- # units {
41
- # fields => "in_place_conversion"
42
- # output_units => ["megabyte"]
43
- # }
44
- # }
11
+ config_name "units"
12
+ milestone 1
13
+
14
+ # The source fields to be converted
15
+ # Fields may be specified in three different ways:
16
+ # - Fields may be referenced specifically, by drilling
17
+ # down the field hierarchy using the square bracket syntax. If
18
+ # they are specified in this manner, then only the exact field
19
+ # specified will be converted.
20
+ # - Fields may also be specifed more generally simply by proving
21
+ # the field name. If done this way, the given field will convert
22
+ # any bottom level field of the same name.
23
+ # - If provided a string rather than an array of fields, the field
24
+ # provided will be converted in place rather then prepended with
25
+ # additional fields.
26
+ # Example:
27
+ # [source,ruby]
28
+ # filter {
29
+ # units {
30
+ # fields => ["top_level_field",
31
+ # "bottom_level_field",
32
+ # "[a][nested][field]"]
33
+ # output_units => ["kilobyte", "megabyte"]
34
+ # }
35
+ # }
36
+ # Example:
37
+ # [source,ruby]
38
+ # filter {
39
+ # units {
40
+ # fields => "in_place_conversion"
41
+ # output_units => ["megabyte"]
42
+ # }
43
+ # }
44
+ config(:fields, :validate => :array, :required => true)
45
+
45
46
 
46
- config(:input_unit, :validate => :string, :default => "byte")
47
- # The unit of measure of the source fields to be converted.
48
- # This parameter supports all units of measure specified by
49
- # the unitwise gem.
50
- # http://github.com/joshwlewis/unitwise
51
- # Example:
52
- # [source,ruby]
53
- # filter {
54
- # units {
55
- # fields => ["length", "height"]
56
- # input_unit => "millimeter"
57
- # output_units => ["centimeter", "meter"]
58
- # }
59
- # }
47
+ # The unit of measure of the source fields to be converted.
48
+ # This parameter supports all units of measure specified by
49
+ # the unitwise gem.
50
+ # http://github.com/joshwlewis/unitwise
51
+ # Example:
52
+ # [source,ruby]
53
+ # filter {
54
+ # units {
55
+ # fields => ["length", "height"]
56
+ # input_unit => "millimeter"
57
+ # output_units => ["centimeter", "meter"]
58
+ # }
59
+ # }
60
+ config(:input_unit, :validate => :string, :default => "byte")
60
61
 
61
- config(:output_units, :required => true)
62
- # The units of measure used for conversion.
63
- # This parameter supports all units of measure specified by
64
- # the unitwise gem.
65
- # http://github.com/joshwlewis/unitwise
66
- # By default, new fields will be named according to these units.
67
- # Example:
68
- # [source,ruby]
69
- # filter {
70
- # units {
71
- # fields => ["length", "height"]
72
- # input_unit => "millimeter"
73
- # output_units => ["centimeter", "meter"]
74
- # }
75
- # }
76
62
 
77
- config(:root_field, :validate => :string)
78
- # If specified, the fields generated by the filter will be
79
- # placed within a hierarchy mirroring that of the fields
80
- # listed within the fields parameter, which is itself nested
81
- # under the given root field.
82
- # For example, with this config:
83
- # [source,ruby]
84
- # filter {
85
- # units {
86
- # fields => ["c"]
87
- # input_unit => "byte"
88
- # output_units => ["kilobyte", "megabyte"]
89
- # root_field => "special"
90
- # }
91
- # }
92
- #
93
- # {
94
- # "a" => {
95
- # "b" => {
96
- # "c" => 1000000
97
- # }
98
- # }
99
- # }
100
- #
101
- # becomes
102
- #
103
- # {
104
- # "a" => {
105
- # "b" => {
106
- # "c" => 1000000
107
- # }
108
- # },
109
- # "special" => {
110
- # "a" => {
111
- # "b" => {
112
- # "c" => {
113
- # "kilobyte" => 1000,
114
- # "megabyte" => 1
115
- # }
116
- # }
117
- # }
118
- # }
119
- # }
63
+ # The units of measure used for conversion.
64
+ # This parameter supports all units of measure specified by
65
+ # the unitwise gem.
66
+ # http://github.com/joshwlewis/unitwise
67
+ # By default, new fields will be named according to these units.
68
+ # Example:
69
+ # [source,ruby]
70
+ # filter {
71
+ # units {
72
+ # fields => ["length", "height"]
73
+ # input_unit => "millimeter"
74
+ # output_units => ["centimeter", "meter"]
75
+ # }
76
+ # }
77
+ config(:output_units, :required => true)
120
78
 
121
- config(:rename_labels, :validate => :hash, :default => {})
122
- # Renames the resulting output fields according to a hash.
123
- # Keys should be the output fields and values should be their
124
- # desired names, respectively. Unamed fields will persist.
125
- # Example:
126
- # [source,ruby]
127
- # filter {
128
- # units {
129
- # fields => ["file_size"]
130
- # input_unit => "byte"
131
- # output_units => ["kilobyte", "megabyte"]
132
- # rename_labels => {
133
- # "kilobyte" => "kB"
134
- # "megabyte" => "mB"
135
- # }
136
- # }
137
- # }
79
+ # If specified, the fields generated by the filter will be
80
+ # placed within a hierarchy mirroring that of the fields
81
+ # listed within the fields parameter, which is itself nested
82
+ # under the given root field.
83
+ # For example, with this config:
84
+ # [source,ruby]
85
+ # filter {
86
+ # units {
87
+ # fields => ["c"]
88
+ # input_unit => "byte"
89
+ # output_units => ["kilobyte", "megabyte"]
90
+ # root_field => "special"
91
+ # }
92
+ # }
93
+ #
94
+ # {
95
+ # "a" => {
96
+ # "b" => {
97
+ # "c" => 1000000
98
+ # }
99
+ # }
100
+ # }
101
+ #
102
+ # becomes
103
+ #
104
+ # {
105
+ # "a" => {
106
+ # "b" => {
107
+ # "c" => 1000000
108
+ # }
109
+ # },
110
+ # "special" => {
111
+ # "a" => {
112
+ # "b" => {
113
+ # "c" => {
114
+ # "kilobyte" => 1000,
115
+ # "megabyte" => 1
116
+ # }
117
+ # }
118
+ # }
119
+ # }
120
+ # }
121
+ config(:root_field, :validate => :string)
138
122
 
139
- def initialize(*args)
140
- super(*args)
141
- end
123
+ # Renames the resulting output fields according to a hash.
124
+ # Keys should be the output fields and values should be their
125
+ # desired names, respectively. Unamed fields will persist.
126
+ # Example:
127
+ # [source,ruby]
128
+ # filter {
129
+ # units {
130
+ # fields => ["file_size"]
131
+ # input_unit => "byte"
132
+ # output_units => ["kilobyte", "megabyte"]
133
+ # rename_labels => {
134
+ # "kilobyte" => "kB"
135
+ # "megabyte" => "mB"
136
+ # }
137
+ # }
138
+ # }
139
+ config(:rename_labels, :validate => :hash, :default => {})
140
+ # ----------------------------------------------------------------------------
142
141
 
143
- public
144
- def register()
145
- end
142
+ def initialize(*args)
143
+ super(*args)
144
+ end
146
145
 
147
- private
148
- def nested_hash_to_matrix(data)
149
- @sep = '.'
150
- @output = []
151
- def _nested_hash_to_matrix(data, name)
152
- data.each do |key, val|
153
- new_key = name + @sep + key.to_s
154
- if val.is_a?(Hash) and val != {}
155
- _nested_hash_to_matrix(val, new_key)
156
- else
157
- @output.push([new_key, val])
158
- end
159
- end
160
- return @output
161
- end
146
+ public
147
+ def register()
148
+ end
149
+ # ----------------------------------------------------------------------------
150
+
151
+ private
152
+ def nested_hash_to_matrix(data)
153
+ @sep = '.'
154
+ @output = []
155
+ def _nested_hash_to_matrix(data, name)
156
+ data.each do |key, val|
157
+ new_key = name + @sep + key.to_s
158
+ if val.is_a?(Hash) and val != {}
159
+ _nested_hash_to_matrix(val, new_key)
160
+ else
161
+ @output.push([new_key, val])
162
+ end
163
+ end
164
+ return @output
165
+ end
162
166
 
163
- @output = _nested_hash_to_matrix(data, @sep)
164
- @output = @output.map { |key, val| [key.split('.')[2..-1], val] }
165
- return @output
166
- end
167
+ @output = _nested_hash_to_matrix(data, @sep)
168
+ @output = @output.map { |key, val| [key.split('.')[2..-1], val] }
169
+ return @output
170
+ end
167
171
 
168
- private
169
- def matrix_to_nested_hash(data)
170
- output = {}
171
- data.each do |keys, value|
172
- cursor = output
173
- for key in keys[0..-2]
174
- if !cursor.include?(key)
175
- cursor[key] = {}
176
- cursor = cursor[key]
177
- else
178
- cursor = cursor[key]
179
- end
180
- end
181
- cursor[keys[-1]] = value
182
- end
183
- return output
184
- end
172
+ private
173
+ def matrix_to_nested_hash(data)
174
+ output = {}
175
+ data.each do |keys, value|
176
+ cursor = output
177
+ for key in keys[0..-2]
178
+ if !cursor.include?(key)
179
+ cursor[key] = {}
180
+ cursor = cursor[key]
181
+ else
182
+ cursor = cursor[key]
183
+ end
184
+ end
185
+ cursor[keys[-1]] = value
186
+ end
187
+ return output
188
+ end
189
+ # ----------------------------------------------------------------------------
185
190
 
186
- private
187
- def convert_to_dict(value)
188
- # convert a single value to a hash of converted values
189
- output = {}
190
- for output_unit in @output_units do
191
- output_value = convert(value, output_unit)
192
- if @rename_labels.include?(output_unit)
193
- output_unit = @rename_labels[output_unit]
194
- end
195
- output[output_unit] = output_value
196
- end
197
- return output
198
- end
191
+ private
192
+ def convert_to_dict(value)
193
+ # convert a single value to a hash of converted values
194
+ output = {}
195
+ for output_unit in @output_units do
196
+ output_value = convert(value, output_unit)
197
+ if @rename_labels.include?(output_unit)
198
+ output_unit = @rename_labels[output_unit]
199
+ end
200
+ output[output_unit] = output_value
201
+ end
202
+ return output
203
+ end
199
204
 
200
- private
201
- def convert(value, output_unit)
202
- begin
203
- return output_value = Unitwise(value, @input_unit).convert_to(output_unit).value
204
- rescue Exception
205
- raise StandardError
206
- end
207
- end
205
+ private
206
+ def convert(value, output_unit)
207
+ begin
208
+ return output_value = Unitwise(value, @input_unit).convert_to(output_unit).value
209
+ rescue Exception
210
+ raise StandardError
211
+ end
212
+ end
208
213
 
209
- private
210
- def field_handler(fields)
211
- output = {"exact" => [], "partial" => []}
212
- for field in fields
213
- if /\[|\]/.match(field)
214
- temp = field.split(/\]\[|^\[|\]$/)[1..-1]
215
- output["exact"].push(temp)
216
- else
217
- output["partial"].push(field)
218
- end
219
- end
220
- return output
221
- end
214
+ private
215
+ def field_handler(fields)
216
+ output = {"exact" => [], "partial" => []}
217
+ for field in fields
218
+ if /\[|\]/.match(field)
219
+ temp = field.split(/\]\[|^\[|\]$/)[1..-1]
220
+ output["exact"].push(temp)
221
+ else
222
+ output["partial"].push(field)
223
+ end
224
+ end
225
+ return output
226
+ end
227
+ # ----------------------------------------------------------------------------
222
228
 
223
- public
224
- def filter(event)
225
- return unless filter?(event)
226
- begin
227
- # flag for converting a value in place or expanding it into
228
- # a hash
229
- inplace = @output_units.is_a?(String)
230
- matrix = nested_hash_to_matrix(event.to_hash)
229
+ public
230
+ def filter(event)
231
+ return unless filter?(event)
232
+ begin
233
+ # flag for converting a value in place or expanding it into
234
+ # a hash
235
+ inplace = @output_units.is_a?(String)
236
+ matrix = nested_hash_to_matrix(event.to_hash)
231
237
 
232
- # convert matching fields and remove rows that
233
- # do not contain leaf nodes that match @fields
234
- fields = field_handler(@fields)
235
- del = []
236
- matrix.each do |row|
237
- if fields["exact"].include?(row[0])
238
- if inplace
239
- row[1] = convert(row[1], @output_units)
240
- else
241
- row[1] = convert_to_dict(row[1])
242
- end
243
- elsif fields["partial"].include?(row[0][-1])
244
- if inplace
245
- row[1] = convert(row[1], @output_units)
246
- else
247
- row[1] = convert_to_dict(row[1])
248
- end
249
- else
250
- del.push(row)
251
- end
252
- end
253
- # delete all rows that do not have leaf nodes listed
254
- # in fields
255
- for row in del
256
- matrix.delete(row)
257
- end
258
-
259
- new_hash = matrix_to_nested_hash(matrix)
260
- if @root_field
261
- new_hash = {@root_field => new_hash}
262
- end
238
+ # convert matching fields and remove rows that
239
+ # do not contain leaf nodes that match @fields
240
+ fields = field_handler(@fields)
241
+ del = []
242
+ matrix.each do |row|
243
+ if fields["exact"].include?(row[0])
244
+ if inplace
245
+ row[1] = convert(row[1], @output_units)
246
+ else
247
+ row[1] = convert_to_dict(row[1])
248
+ end
249
+ elsif fields["partial"].include?(row[0][-1])
250
+ if inplace
251
+ row[1] = convert(row[1], @output_units)
252
+ else
253
+ row[1] = convert_to_dict(row[1])
254
+ end
255
+ else
256
+ del.push(row)
257
+ end
258
+ end
259
+ # delete all rows that do not have leaf nodes listed
260
+ # in fields
261
+ for row in del
262
+ matrix.delete(row)
263
+ end
264
+
265
+ new_hash = matrix_to_nested_hash(matrix)
266
+ if @root_field
267
+ new_hash = {@root_field => new_hash}
268
+ end
263
269
 
264
- # merge new hash into event's hash
265
- # assignment of items from new_hash with a prior merge
266
- # will destroy unmatched branches
267
- data = event.to_hash().merge(new_hash)
268
- data.each do |key, value|
269
- event[key] = value
270
- end
271
- return filter_matched(event)
272
- rescue StandardError
273
- event.tag("_unitsparsefailure")
274
- return event
275
- rescue Logstash::ShutdownSignal
276
- event.cancel()
277
- @logger.debug(e)
278
- end
279
- end
270
+ # merge new hash into event's hash
271
+ # assignment of items from new_hash with a prior merge
272
+ # will destroy unmatched branches
273
+ data = event.to_hash().merge(new_hash)
274
+ data.each do |key, value|
275
+ event[key] = value
276
+ end
277
+ return filter_matched(event)
278
+ rescue StandardError
279
+ event.tag("_unitsparsefailure")
280
+ return event
281
+ rescue Logstash::ShutdownSignal
282
+ event.cancel()
283
+ @logger.debug(e)
284
+ end
285
+ end
280
286
  end
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-units'
4
- s.version = '0.1.0'
4
+ s.version = '0.1.1'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "A filter for performing unit conversions on specified fields."
7
7
  s.description = "The units filter is used for converting specified fields from one unit of measure to another (or many others)."
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
21
21
 
22
22
  # Gem dependencies
23
23
  s.add_runtime_dependency "logstash", '>= 1.4.0', '< 2.0.0'
24
- s.add_runtime_dependency "unitwise", ">= 1.0.4"
24
+ s.add_runtime_dependency "unitwise"
25
25
  s.add_development_dependency "logstash-devutils"
26
+
26
27
  end
@@ -3,73 +3,73 @@ require "logstash/devutils/rspec/spec_helper"
3
3
  require "logstash/filters/units"
4
4
 
5
5
  describe LogStash::Filters::Units do
6
- describe "special field" do
7
- let(:config) do <<-CONFIG
8
- filter {
9
- units {
10
- fields => ["[a1][a2]", "b1", "c1", "d2"]
11
- input_unit => "byte"
12
- output_units => ["kibibyte", "mebibyte"]
13
- root_field => "special"
14
- rename_labels => {
15
- "kibibyte" => "kb"
16
- "mebibyte" => "mb"
17
- }
18
- }
19
- }
20
- CONFIG
21
- end
6
+ describe "special field" do
7
+ let(:config) do <<-CONFIG
8
+ filter {
9
+ units {
10
+ fields => ["[a1][a2]", "b1", "c1", "d2"]
11
+ input_unit => "byte"
12
+ output_units => ["kibibyte", "mebibyte"]
13
+ root_field => "special"
14
+ rename_labels => {
15
+ "kibibyte" => "kb"
16
+ "mebibyte" => "mb"
17
+ }
18
+ }
19
+ }
20
+ CONFIG
21
+ end
22
22
 
23
- event = {
24
- "a1" => {
25
- "a2" => 1024
26
- },
27
- "b1" => 1024,
28
- "c1" => 1024,
29
- "d1" => {
30
- "d2" => 1024
31
- }
32
- }
33
- sample(event) do
34
- insist { subject["special"]["a1"]["a2"]["kb"] } == 1
35
- insist { subject["special"]["a1"]["a2"]["kb"] } == 1
36
- insist { subject["special"]["b1"]["kb"] } == 1
37
- insist { subject["special"]["c1"]["kb"] } == 1
38
- insist { subject["special"]["d1"]["d2"]["kb"] } == 1
39
- end
40
- end
23
+ event = {
24
+ "a1" => {
25
+ "a2" => 1024
26
+ },
27
+ "b1" => 1024,
28
+ "c1" => 1024,
29
+ "d1" => {
30
+ "d2" => 1024
31
+ }
32
+ }
33
+ sample(event) do
34
+ insist { subject["special"]["a1"]["a2"]["kb"] } == 1
35
+ insist { subject["special"]["a1"]["a2"]["kb"] } == 1
36
+ insist { subject["special"]["b1"]["kb"] } == 1
37
+ insist { subject["special"]["c1"]["kb"] } == 1
38
+ insist { subject["special"]["d1"]["d2"]["kb"] } == 1
39
+ end
40
+ end
41
41
 
42
- describe "in place" do
43
- let(:config) do <<-CONFIG
44
- filter {
45
- units {
46
- fields => ["[a1][a2]", "b1", "c1", "d2"]
47
- input_unit => "byte"
48
- output_units => ["kibibyte", "mebibyte"]
49
- rename_labels => {
50
- "kibibyte" => "kb"
51
- "mebibyte" => "mb"
52
- }
53
- }
54
- }
55
- CONFIG
56
- end
42
+ describe "in place" do
43
+ let(:config) do <<-CONFIG
44
+ filter {
45
+ units {
46
+ fields => ["[a1][a2]", "b1", "c1", "d2"]
47
+ input_unit => "byte"
48
+ output_units => ["kibibyte", "mebibyte"]
49
+ rename_labels => {
50
+ "kibibyte" => "kb"
51
+ "mebibyte" => "mb"
52
+ }
53
+ }
54
+ }
55
+ CONFIG
56
+ end
57
57
 
58
- event = {
59
- "a1" => {
60
- "a2" => 1024**2
61
- },
62
- "b1" => 1024**2,
63
- "c1" => 1024**2,
64
- "d1" => {
65
- "d2" => 1024**2
66
- }
67
- }
68
- sample(event) do
69
- insist { subject["a1"]["a2"]["mb"] } == 1
70
- insist { subject["b1"]["mb"] } == 1
71
- insist { subject["c1"]["mb"] } == 1
72
- insist { subject["d1"]["d2"]["mb"] } == 1
73
- end
74
- end
58
+ event = {
59
+ "a1" => {
60
+ "a2" => 1024**2
61
+ },
62
+ "b1" => 1024**2,
63
+ "c1" => 1024**2,
64
+ "d1" => {
65
+ "d2" => 1024**2
66
+ }
67
+ }
68
+ sample(event) do
69
+ insist { subject["a1"]["a2"]["mb"] } == 1
70
+ insist { subject["b1"]["mb"] } == 1
71
+ insist { subject["c1"]["mb"] } == 1
72
+ insist { subject["d1"]["d2"]["mb"] } == 1
73
+ end
74
+ end
75
75
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-units
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Braun
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-16 00:00:00.000000000 Z
11
+ date: 2015-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash
@@ -36,12 +36,12 @@ dependencies:
36
36
  requirements:
37
37
  - - '>='
38
38
  - !ruby/object:Gem::Version
39
- version: 1.0.4
39
+ version: '0'
40
40
  requirement: !ruby/object:Gem::Requirement
41
41
  requirements:
42
42
  - - '>='
43
43
  - !ruby/object:Gem::Version
44
- version: 1.0.4
44
+ version: '0'
45
45
  prerelease: false
46
46
  type: :runtime
47
47
  - !ruby/object:Gem::Dependency