fluent-plugin-parse_multiple_value_query 0.0.4 → 0.0.5
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 +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
|