fluent-plugin-parse_multiple_value_query 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Rakefile +2 -2
- data/fluent-plugin-parse_multiple_value_query.gemspec +21 -20
- data/lib/fluent/plugin/out_parse_multiple_value_query.rb +21 -26
- data/lib/fluent/plugin/parse_multiple_value_query/version.rb +2 -2
- data/test/helper.rb +6 -6
- data/test/plugin/test_out_parse_multiple_value_query.rb +78 -83
- metadata +27 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8a9f71c79216b8f4f89f2ef193b35fbba2db9ab4375011550415b515ff62843d
|
4
|
+
data.tar.gz: f4a4781d85297762eb2a45909d5c46aff5bc667ca94842f6221f80d284123adf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9fedf5ae06ed3ece152a6f5539d8ee722e76745915fac93261e9ff023f315787e7e8186a396dd20d185e6833296d7c694745a0078f581dd8e309d142b7ede5e5
|
7
|
+
data.tar.gz: f5a56b81370433de026091bc5e8725c4e48b2f480d2864f12249f5238a91c96ae1e29f317dc30a334e25c38e382bffe1d72ea80fc92e1b1ddb62e5cbc76b3fcf
|
data/Rakefile
CHANGED
@@ -1,29 +1,30 @@
|
|
1
|
-
|
1
|
+
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
2
2
|
require 'fluent/plugin/parse_multiple_value_query/version'
|
3
3
|
|
4
4
|
Gem::Specification.new do |spec|
|
5
|
-
spec.name =
|
5
|
+
spec.name = 'fluent-plugin-parse_multiple_value_query'
|
6
6
|
spec.version = Fluent::ParseMultipleValueQuery::VERSION
|
7
|
-
spec.authors = [
|
8
|
-
spec.email = [
|
9
|
-
spec.summary =
|
10
|
-
spec.description =
|
11
|
-
spec.homepage =
|
12
|
-
spec.license =
|
7
|
+
spec.authors = ['Hirokazu Hata']
|
8
|
+
spec.email = ['h.hata.ai.t@gmail.com']
|
9
|
+
spec.summary = 'Fluentd plugin to parse query string with rails format'
|
10
|
+
spec.description = 'Fluentd plugin to parse query string with rails format'
|
11
|
+
spec.homepage = ''
|
12
|
+
spec.license = 'MIT'
|
13
13
|
|
14
14
|
spec.files = `git ls-files -z`.split("\x0")
|
15
15
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
16
16
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
17
|
-
spec.require_paths = [
|
17
|
+
spec.require_paths = ['lib']
|
18
18
|
|
19
|
-
spec.add_dependency
|
20
|
-
spec.add_dependency
|
21
|
-
spec.add_development_dependency
|
22
|
-
spec.add_development_dependency
|
23
|
-
spec.add_development_dependency
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
28
|
-
spec.add_development_dependency
|
29
|
-
|
19
|
+
spec.add_dependency 'fluentd'
|
20
|
+
spec.add_dependency 'rack', '>= 1.6.11'
|
21
|
+
spec.add_development_dependency 'bundler'
|
22
|
+
spec.add_development_dependency 'pry'
|
23
|
+
spec.add_development_dependency 'pry-byebug'
|
24
|
+
spec.add_development_dependency 'pry-nav'
|
25
|
+
spec.add_development_dependency 'rake'
|
26
|
+
spec.add_development_dependency 'rr'
|
27
|
+
spec.add_development_dependency 'rubocop'
|
28
|
+
spec.add_development_dependency 'test-unit'
|
29
|
+
spec.add_development_dependency 'timecop'
|
30
|
+
end
|
@@ -3,11 +3,11 @@ module Fluent
|
|
3
3
|
Fluent::Plugin.register_output('parse_multiple_value_query', self)
|
4
4
|
|
5
5
|
config_param :key, :string
|
6
|
-
config_param :tag_prefix, :string, :
|
7
|
-
config_param :only_query_string, :bool, :
|
8
|
-
config_param :remove_empty_array, :bool, :
|
9
|
-
config_param :sub_key, :string, :
|
10
|
-
config_param :without_host, :bool, :
|
6
|
+
config_param :tag_prefix, :string, default: 'parsed.'
|
7
|
+
config_param :only_query_string, :bool, default: false
|
8
|
+
config_param :remove_empty_array, :bool, default: false
|
9
|
+
config_param :sub_key, :string, default: nil
|
10
|
+
config_param :without_host, :bool, default: false
|
11
11
|
|
12
12
|
def initialize
|
13
13
|
super
|
@@ -15,9 +15,7 @@ module Fluent
|
|
15
15
|
end
|
16
16
|
|
17
17
|
# Define `log` method for v0.10.42 or earlier
|
18
|
-
unless method_defined?(:log)
|
19
|
-
define_method("log") { $log }
|
20
|
-
end
|
18
|
+
define_method('log') { $log } unless method_defined?(:log)
|
21
19
|
|
22
20
|
def configure(conf)
|
23
21
|
super
|
@@ -32,31 +30,28 @@ module Fluent
|
|
32
30
|
end
|
33
31
|
|
34
32
|
def emit(tag, es, chain)
|
35
|
-
es.each
|
33
|
+
es.each do |time, record|
|
36
34
|
t = tag.dup
|
37
35
|
new_record = parse_uri(record)
|
38
36
|
|
39
37
|
t = @tag_prefix + t unless @tag_prefix.nil?
|
40
38
|
|
41
39
|
Engine.emit(t, time, new_record)
|
42
|
-
|
40
|
+
end
|
43
41
|
chain.next
|
44
|
-
rescue => e
|
42
|
+
rescue StandardError => e
|
45
43
|
log.warn("out_parse_multiple_value_uri_query: error_class:#{e.class} error_message:#{e.message} tag:#{tag} es:#{es} bactrace:#{e.backtrace.first}")
|
46
44
|
end
|
47
45
|
|
48
46
|
def parse_uri(record)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
url = without_host ? "http://example.com#{record[key]}" : record[key]
|
47
|
+
return unless record[key]
|
48
|
+
if only_query_string
|
49
|
+
parse_query_string(record, record[key])
|
50
|
+
else
|
51
|
+
url = without_host ? "http://example.com#{record[key]}" : record[key]
|
55
52
|
|
56
|
-
|
57
|
-
|
58
|
-
return record
|
59
|
-
end
|
53
|
+
query = URI.parse(url).query
|
54
|
+
parse_query_string(record, query)
|
60
55
|
end
|
61
56
|
end
|
62
57
|
|
@@ -66,11 +61,11 @@ module Fluent
|
|
66
61
|
|
67
62
|
parsed_query = Rack::Utils.parse_nested_query(query_string)
|
68
63
|
parsed_query.each do |key, value|
|
69
|
-
if value ==
|
70
|
-
target[key] =
|
64
|
+
if value == ''
|
65
|
+
target[key] = ''
|
71
66
|
else
|
72
67
|
if value.class == Array && remove_empty_array
|
73
|
-
if value.empty? || value == [
|
68
|
+
if value.empty? || value == [''] || value == [nil]
|
74
69
|
target.delete(key)
|
75
70
|
else
|
76
71
|
target[key] = value
|
@@ -80,10 +75,10 @@ module Fluent
|
|
80
75
|
end
|
81
76
|
end
|
82
77
|
end
|
83
|
-
rescue => e
|
78
|
+
rescue StandardError => e
|
84
79
|
log.warn("out_parse_multiple_value_uri_query: error_class:#{e.class} error_message:#{e.message} record:#{record} bactrace:#{e.backtrace.first}")
|
85
80
|
end
|
86
|
-
|
81
|
+
record
|
87
82
|
end
|
88
83
|
end
|
89
84
|
end
|
data/test/helper.rb
CHANGED
@@ -3,8 +3,8 @@ require 'bundler'
|
|
3
3
|
begin
|
4
4
|
Bundler.setup(:default, :development)
|
5
5
|
rescue Bundler::BundlerError => e
|
6
|
-
|
7
|
-
|
6
|
+
warn e.message
|
7
|
+
warn 'Run `bundle install` to install missing gems'
|
8
8
|
exit e.status_code
|
9
9
|
end
|
10
10
|
require 'test/unit'
|
@@ -12,17 +12,17 @@ require 'test/unit'
|
|
12
12
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
13
13
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
14
14
|
require 'fluent/test'
|
15
|
-
unless ENV.
|
15
|
+
unless ENV.key?('VERBOSE')
|
16
16
|
nulllogger = Object.new
|
17
|
-
nulllogger.instance_eval
|
17
|
+
nulllogger.instance_eval do |_obj|
|
18
18
|
def method_missing(method, *args)
|
19
19
|
# pass
|
20
20
|
end
|
21
|
-
|
21
|
+
end
|
22
22
|
$log = nulllogger
|
23
23
|
end
|
24
24
|
|
25
25
|
require 'fluent/plugin/out_parse_multiple_value_query'
|
26
26
|
|
27
27
|
class Test::Unit::TestCase
|
28
|
-
end
|
28
|
+
end
|
@@ -4,12 +4,11 @@ require 'timecop'
|
|
4
4
|
require 'fluent/plugin/out_parse_multiple_value_query'
|
5
5
|
|
6
6
|
class ParseMultipleValueQueryOutTest < Test::Unit::TestCase
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
WITHOUT_HOST = '/test/url?foo=bar&baz=qux&multiple[]=1&multiple[]=2&multiple[]=3&multiple2[]='
|
7
|
+
URL = 'http://example.com:80/?foo=bar&baz=qux&multiple[]=1&multiple[]=2&multiple[]=3&multiple2[]='.freeze
|
8
|
+
URL_INCLUDE_JP = 'http://example.com:80/?foo=bar&baz=qux&%E3%81%BE%E3%81%84%E3%81%91%E3%82%8B%5B%5D=%E3%82%AD%E3%82%B9%E3%82%AF&%E3%81%BE%E3%81%84%E3%81%91%E3%82%8B%5B%5D=%E3%82%B7%E3%82%A7%E3%83%B3%E3%82%AB%E3%83%BC&%E3%81%BE%E3%81%84%E3%81%91%E3%82%8B%5B%5D=%E3%82%B8%E3%83%A3%E3%82%AF%E3%82%BD%E3%83%B3'.freeze
|
9
|
+
ONLY_QUERY_STRING_TEST = 'foo=bar&baz=qux&multiple[]=1&multiple[]=2&multiple[]=3&%E3%81%BE%E3%81%84%E3%81%91%E3%82%8B%5B%5D=%E3%82%AD%E3%82%B9%E3%82%AF&%E3%81%BE%E3%81%84%E3%81%91%E3%82%8B%5B%5D=%E3%82%B7%E3%82%A7%E3%83%B3%E3%82%AB%E3%83%BC&%E3%81%BE%E3%81%84%E3%81%91%E3%82%8B%5B%5D=%E3%82%B8%E3%83%A3%E3%82%AF%E3%82%BD%E3%83%B3'.freeze
|
10
|
+
REMOVE_EMPTY_KEY = 'http://example.com:80/?foo=bar&baz=qux&multiple[]=&%E3%81%BE%E3%81%84%E3%81%91%E3%82%8B%5B%5D=%E3%82%AD%E3%82%B9%E3%82%AF&%E3%81%BE%E3%81%84%E3%81%91%E3%82%8B%5B%5D=%E3%82%B7%E3%82%A7%E3%83%B3%E3%82%AB%E3%83%BC&%E3%81%BE%E3%81%84%E3%81%91%E3%82%8B%5B%5D=%E3%82%B8%E3%83%A3%E3%82%AF%E3%82%BD%E3%83%B3&multiple2[]'.freeze
|
11
|
+
WITHOUT_HOST = '/test/url?foo=bar&baz=qux&multiple[]=1&multiple[]=2&multiple[]=3&multiple2[]='.freeze
|
13
12
|
|
14
13
|
def setup
|
15
14
|
Fluent::Test.setup
|
@@ -26,170 +25,166 @@ class ParseMultipleValueQueryOutTest < Test::Unit::TestCase
|
|
26
25
|
).configure(conf)
|
27
26
|
end
|
28
27
|
|
29
|
-
def emit(conf, record, tag='test')
|
28
|
+
def emit(conf, record, tag = 'test')
|
30
29
|
d = create_driver(conf, tag)
|
31
|
-
d.run {d.emit(record)}
|
32
|
-
|
30
|
+
d.run { d.emit(record) }
|
31
|
+
d.emits
|
33
32
|
end
|
34
33
|
|
35
34
|
def test_configure
|
36
|
-
d = create_driver(%
|
35
|
+
d = create_driver(%(
|
37
36
|
key url
|
38
37
|
only_query_string true
|
39
|
-
|
38
|
+
), 'test')
|
40
39
|
|
41
40
|
assert_equal 'url', d.instance.key
|
42
41
|
assert_equal true, d.instance.only_query_string
|
43
42
|
end
|
44
43
|
|
45
44
|
def test_filter_record
|
46
|
-
conf = %
|
45
|
+
conf = %(
|
47
46
|
key url
|
48
|
-
|
47
|
+
)
|
49
48
|
|
50
49
|
record = {
|
51
|
-
'url' => URL
|
50
|
+
'url' => URL
|
52
51
|
}
|
53
52
|
|
54
53
|
emits = emit(conf, record)
|
55
|
-
# binding.pry
|
56
|
-
emits.each_with_index do |(tag, time, record), i|
|
57
|
-
assert_equal 'parsed.test', tag
|
58
|
-
assert_equal URL, record['url']
|
59
|
-
assert_equal 'bar', record['foo']
|
60
|
-
assert_equal 'qux', record['baz']
|
61
|
-
assert_equal ["1", "2", "3"], record['multiple']
|
62
|
-
assert_equal [""], record['multiple2']
|
63
|
-
end
|
64
54
|
|
55
|
+
emits.each_with_index do |(tag, _time, emit_record), _i|
|
56
|
+
assert_equal 'parsed.test', tag
|
57
|
+
assert_equal URL, emit_record['url']
|
58
|
+
assert_equal 'bar', emit_record['foo']
|
59
|
+
assert_equal 'qux', emit_record['baz']
|
60
|
+
assert_equal %w[1 2 3], emit_record['multiple']
|
61
|
+
assert_equal [''], emit_record['multiple2']
|
62
|
+
end
|
65
63
|
end
|
66
64
|
|
67
65
|
def test_jp_filter_record
|
68
|
-
conf = %
|
66
|
+
conf = %(
|
69
67
|
key url
|
70
|
-
|
68
|
+
)
|
71
69
|
|
72
70
|
record = {
|
73
|
-
'url' => URL_INCLUDE_JP
|
71
|
+
'url' => URL_INCLUDE_JP
|
74
72
|
}
|
75
73
|
|
76
74
|
emits = emit(conf, record)
|
77
75
|
|
78
|
-
emits.each_with_index do |(tag,
|
79
|
-
assert_equal 'parsed.test',
|
80
|
-
assert_equal URL_INCLUDE_JP,
|
81
|
-
assert_equal 'bar',
|
82
|
-
assert_equal 'qux',
|
83
|
-
assert_equal [
|
76
|
+
emits.each_with_index do |(tag, _time, emit_record), _i|
|
77
|
+
assert_equal 'parsed.test', tag
|
78
|
+
assert_equal URL_INCLUDE_JP, emit_record['url']
|
79
|
+
assert_equal 'bar', emit_record['foo']
|
80
|
+
assert_equal 'qux', emit_record['baz']
|
81
|
+
assert_equal %w[キスク シェンカー ジャクソン], emit_record['まいける']
|
84
82
|
end
|
85
|
-
|
86
83
|
end
|
87
84
|
|
88
85
|
def test_only_query_string_filter_record
|
89
|
-
conf = %
|
86
|
+
conf = %(
|
90
87
|
key query_string
|
91
88
|
only_query_string true
|
92
|
-
|
89
|
+
)
|
93
90
|
|
94
91
|
record = {
|
95
|
-
'query_string' => ONLY_QUERY_STRING_TEST
|
92
|
+
'query_string' => ONLY_QUERY_STRING_TEST
|
96
93
|
}
|
97
94
|
|
98
95
|
emits = emit(conf, record)
|
99
96
|
|
100
|
-
emits.each_with_index do |(tag,
|
101
|
-
assert_equal 'parsed.test',
|
102
|
-
assert_equal ONLY_QUERY_STRING_TEST,
|
103
|
-
assert_equal 'bar',
|
104
|
-
assert_equal 'qux',
|
105
|
-
assert_equal [
|
106
|
-
assert_equal [
|
97
|
+
emits.each_with_index do |(tag, _time, emit_record), _i|
|
98
|
+
assert_equal 'parsed.test', tag
|
99
|
+
assert_equal ONLY_QUERY_STRING_TEST, emit_record['query_string']
|
100
|
+
assert_equal 'bar', emit_record['foo']
|
101
|
+
assert_equal 'qux', emit_record['baz']
|
102
|
+
assert_equal %w[1 2 3], emit_record['multiple']
|
103
|
+
assert_equal %w[キスク シェンカー ジャクソン], emit_record['まいける']
|
107
104
|
end
|
108
105
|
end
|
109
106
|
|
110
107
|
def test_remove_empty_array
|
111
|
-
conf = %
|
108
|
+
conf = %(
|
112
109
|
key url
|
113
110
|
remove_empty_array true
|
114
|
-
|
111
|
+
)
|
115
112
|
|
116
113
|
record = {
|
117
|
-
'url' => REMOVE_EMPTY_KEY
|
114
|
+
'url' => REMOVE_EMPTY_KEY
|
118
115
|
}
|
119
116
|
|
120
117
|
emits = emit(conf, record)
|
121
118
|
|
122
|
-
emits.each_with_index do |(tag,
|
123
|
-
assert_equal 'parsed.test',
|
124
|
-
assert_equal REMOVE_EMPTY_KEY,
|
125
|
-
assert_equal 'bar',
|
126
|
-
assert_equal 'qux',
|
127
|
-
assert_equal nil,
|
128
|
-
assert_equal nil,
|
119
|
+
emits.each_with_index do |(tag, _time, emit_record), _i|
|
120
|
+
assert_equal 'parsed.test', tag
|
121
|
+
assert_equal REMOVE_EMPTY_KEY, emit_record['url']
|
122
|
+
assert_equal 'bar', emit_record['foo']
|
123
|
+
assert_equal 'qux', emit_record['baz']
|
124
|
+
assert_equal nil, emit_record['multiple']
|
125
|
+
assert_equal nil, emit_record['multiple2']
|
129
126
|
end
|
130
127
|
end
|
131
128
|
|
132
129
|
def test_tag_prefix
|
133
|
-
conf = %
|
130
|
+
conf = %(
|
134
131
|
key url
|
135
132
|
tag_prefix prefix.
|
136
|
-
|
133
|
+
)
|
137
134
|
|
138
135
|
record = {
|
139
|
-
'url' => URL
|
136
|
+
'url' => URL
|
140
137
|
}
|
141
138
|
|
142
139
|
emits = emit(conf, record)
|
143
140
|
|
144
|
-
emits.each_with_index do |(tag,
|
145
|
-
assert_equal 'prefix.test',
|
146
|
-
assert_equal URL,
|
147
|
-
assert_equal 'bar',
|
148
|
-
assert_equal 'qux',
|
149
|
-
assert_equal [
|
141
|
+
emits.each_with_index do |(tag, _time, emit_record), _i|
|
142
|
+
assert_equal 'prefix.test', tag
|
143
|
+
assert_equal URL, emit_record['url']
|
144
|
+
assert_equal 'bar', emit_record['foo']
|
145
|
+
assert_equal 'qux', emit_record['baz']
|
146
|
+
assert_equal %w[1 2 3], emit_record['multiple']
|
150
147
|
end
|
151
148
|
end
|
152
149
|
|
153
150
|
def test_sub_key
|
154
|
-
conf = %
|
151
|
+
conf = %(
|
155
152
|
key url
|
156
153
|
sub_key url_parsed
|
157
|
-
|
154
|
+
)
|
158
155
|
|
159
156
|
record = {
|
160
|
-
'url' => URL
|
157
|
+
'url' => URL
|
161
158
|
}
|
162
159
|
|
163
160
|
emits = emit(conf, record)
|
164
161
|
|
165
|
-
emits.each_with_index do |(
|
166
|
-
assert_equal URL,
|
167
|
-
assert_equal 'bar',
|
168
|
-
assert_equal 'qux',
|
169
|
-
assert_equal [
|
162
|
+
emits.each_with_index do |(_tag, _time, emit_record), _i|
|
163
|
+
assert_equal URL, emit_record['url']
|
164
|
+
assert_equal 'bar', emit_record['url_parsed']['foo']
|
165
|
+
assert_equal 'qux', emit_record['url_parsed']['baz']
|
166
|
+
assert_equal %w[1 2 3], emit_record['url_parsed']['multiple']
|
170
167
|
end
|
171
168
|
end
|
172
169
|
|
173
170
|
def test_without_host
|
174
|
-
conf = %
|
171
|
+
conf = %(
|
175
172
|
key url
|
176
173
|
without_host true
|
177
|
-
|
174
|
+
)
|
178
175
|
|
179
176
|
record = {
|
180
|
-
'url' => WITHOUT_HOST
|
177
|
+
'url' => WITHOUT_HOST
|
181
178
|
}
|
182
179
|
|
183
180
|
emits = emit(conf, record)
|
184
|
-
|
185
|
-
emits.each_with_index do |(tag, time, record), i|
|
186
|
-
assert_equal 'parsed.test', tag
|
187
|
-
assert_equal 'bar', record['foo']
|
188
|
-
assert_equal 'qux', record['baz']
|
189
|
-
assert_equal ["1", "2", "3"], record['multiple']
|
190
|
-
assert_equal [""], record['multiple2']
|
191
|
-
end
|
192
181
|
|
182
|
+
emits.each_with_index do |(tag, _time, emit_record), _i|
|
183
|
+
assert_equal 'parsed.test', tag
|
184
|
+
assert_equal 'bar', emit_record['foo']
|
185
|
+
assert_equal 'qux', emit_record['baz']
|
186
|
+
assert_equal %w[1 2 3], emit_record['multiple']
|
187
|
+
assert_equal [''], emit_record['multiple2']
|
188
|
+
end
|
193
189
|
end
|
194
|
-
|
195
|
-
end
|
190
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-parse_multiple_value_query
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hirokazu Hata
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: rack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: 1.6.11
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
40
|
+
version: 1.6.11
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name: pry
|
70
|
+
name: pry-byebug
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name: pry-
|
84
|
+
name: pry-nav
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: rake
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: rr
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
@@ -123,7 +123,21 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: rubocop
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: test-unit
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
143
|
- - ">="
|
@@ -188,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
202
|
version: '0'
|
189
203
|
requirements: []
|
190
204
|
rubyforge_project:
|
191
|
-
rubygems_version: 2.
|
205
|
+
rubygems_version: 2.7.3
|
192
206
|
signing_key:
|
193
207
|
specification_version: 4
|
194
208
|
summary: Fluentd plugin to parse query string with rails format
|