norikra 1.3.1-java → 1.4.0-java
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 +4 -4
- data/.ruby-version +1 -1
- data/Changes.md +5 -0
- data/README.md +2 -0
- data/lib/norikra/cli.rb +4 -0
- data/lib/norikra/listener.rb +24 -12
- data/lib/norikra/version.rb +1 -1
- data/norikra.gemspec +2 -2
- data/public/js/norikra.webui.js +1 -0
- data/spec/listener_spec.rb +75 -2
- metadata +36 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 594b7ff8b47b9244aec8b1c1557118398d38cd6f
|
4
|
+
data.tar.gz: a175ef83ae11f3253337b3c827b74e96a6cade22
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2157ac962cee967607c357c065039c1b6c8844703a1d5023ffd91415c021741427c442d6689b5de1a6fc2b399c7a4faf5de65ad56b2980ab303c1fadb6af0848
|
7
|
+
data.tar.gz: 0cdeb1f5572a3909ecdce291ab3638793db913bacd88ae8e3fceca02ffd47c26c484c0b11d3adcbf447213c713dc757b3c1193e9ce29bc569d88489e3fee4503
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
jruby-1.7.
|
1
|
+
jruby-1.7.20
|
data/Changes.md
CHANGED
@@ -3,6 +3,11 @@
|
|
3
3
|
Changes of norikra.
|
4
4
|
|
5
5
|
## v1
|
6
|
+
* v1.4.0
|
7
|
+
* Add `-D` option handling to pass JVM system properties
|
8
|
+
* Add `-agentlib` option handling to pass it to JVM
|
9
|
+
* Dependency update for msgpack.gem
|
10
|
+
* Fix Bug to raise error for queries using irstream
|
6
11
|
* v1.3.1
|
7
12
|
* Fix to enable SO_REUSEPORT for listening ports to help "address already in use" exception in restarts
|
8
13
|
* v1.3.0
|
data/README.md
CHANGED
data/lib/norikra/cli.rb
CHANGED
@@ -152,6 +152,10 @@ module Norikra
|
|
152
152
|
jruby_options.push('-J-verbose:gc')
|
153
153
|
elsif arg =~ /^-javaagent:(.+)$/
|
154
154
|
jruby_options.push('-J-javaagent:' + $1)
|
155
|
+
elsif arg =~ /^-agentlib:(.+)$/
|
156
|
+
jruby_options.push('-J-agentlib:' + $1)
|
157
|
+
elsif arg =~ /^-D(.+)$/
|
158
|
+
jruby_options.push('-J-D' + $1)
|
155
159
|
else
|
156
160
|
argv.push(arg)
|
157
161
|
end
|
data/lib/norikra/listener.rb
CHANGED
@@ -158,18 +158,24 @@ module Norikra
|
|
158
158
|
end
|
159
159
|
end
|
160
160
|
|
161
|
+
def apply_type_convert_to_events(events)
|
162
|
+
if events.respond_to?(:map)
|
163
|
+
events.map{|e| type_convert(e) }
|
164
|
+
else
|
165
|
+
type_convert(events)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
161
169
|
def update(new_events, old_events)
|
162
170
|
t = Time.now.to_i
|
163
171
|
if @mode == :sync
|
164
|
-
news = new_events
|
165
|
-
olds =
|
166
|
-
old_events.map{|e| type_convert(e) }
|
167
|
-
else
|
168
|
-
type_convert(old_events)
|
169
|
-
end
|
172
|
+
news = apply_type_convert_to_events(new_events)
|
173
|
+
olds = apply_type_convert_to_events(old_events)
|
170
174
|
trace("produced events"){ { listener: self.class, query: @query_name, group: @query_group, news: news, olds: olds } }
|
171
175
|
process_sync(news, olds)
|
172
|
-
|
176
|
+
if news.respond_to?(:size)
|
177
|
+
@events_statistics[:output] += news.size
|
178
|
+
end
|
173
179
|
else # async
|
174
180
|
events = new_events.map{|e| [t, type_convert(e)]}
|
175
181
|
trace("pushed events"){ { listener: self.class, query: @query_name, group: @query_group, event: events } }
|
@@ -188,8 +194,10 @@ module Norikra
|
|
188
194
|
|
189
195
|
def process_sync(news, olds)
|
190
196
|
t = Time.now.to_i
|
191
|
-
|
192
|
-
|
197
|
+
if news.respond_to?(:map)
|
198
|
+
events = news.map{|e| [t, e]}
|
199
|
+
@output_pool.push(@query_name, @query_group, events)
|
200
|
+
end
|
193
201
|
end
|
194
202
|
end
|
195
203
|
|
@@ -224,7 +232,9 @@ module Norikra
|
|
224
232
|
# We does NOT convert 'container.$0' into container['field'].
|
225
233
|
# Use escaped names like 'container__0'. That is NOT so confused.
|
226
234
|
trace("loopback event"){ { query: @query_name, group: @query_group, event: news } }
|
227
|
-
|
235
|
+
if news.respond_to?(:each)
|
236
|
+
@engine.send(@argument, news)
|
237
|
+
end
|
228
238
|
end
|
229
239
|
end
|
230
240
|
|
@@ -241,8 +251,10 @@ module Norikra
|
|
241
251
|
end
|
242
252
|
|
243
253
|
def process_sync(news, olds)
|
244
|
-
news.each
|
245
|
-
|
254
|
+
if news.respond_to?(:each)
|
255
|
+
news.each do |e|
|
256
|
+
@stdout.puts @query_name + "\t" + JSON.dump(e)
|
257
|
+
end
|
246
258
|
end
|
247
259
|
end
|
248
260
|
end
|
data/lib/norikra/version.rb
CHANGED
data/norikra.gemspec
CHANGED
@@ -22,8 +22,8 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_runtime_dependency "mizuno", ">= 0.6.10"
|
23
23
|
spec.add_runtime_dependency "rack"
|
24
24
|
spec.add_runtime_dependency "thor"
|
25
|
-
spec.add_runtime_dependency "msgpack-rpc-over-http", "
|
26
|
-
spec.add_runtime_dependency "norikra-client", "~> 1.
|
25
|
+
spec.add_runtime_dependency "msgpack-rpc-over-http", "~> 0.1.0"
|
26
|
+
spec.add_runtime_dependency "norikra-client", "~> 1.4.0"
|
27
27
|
spec.add_runtime_dependency "sinatra"
|
28
28
|
spec.add_runtime_dependency "sinatra-contrib"
|
29
29
|
spec.add_runtime_dependency "erubis"
|
data/public/js/norikra.webui.js
CHANGED
@@ -60,6 +60,7 @@ $(function(){
|
|
60
60
|
button.popover({
|
61
61
|
placement: 'top',
|
62
62
|
html: true,
|
63
|
+
template: '<div class="popover" role="tooltip" style="height: 50%; overflow-y: scroll;"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
|
63
64
|
content: table_html
|
64
65
|
}).popover('toggle');
|
65
66
|
$('table.target-fields').closest('div').css('padding', '0');
|
data/spec/listener_spec.rb
CHANGED
@@ -96,6 +96,61 @@ describe Norikra::Listener::Base do
|
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
99
|
+
describe '#apply_type_convert_to_events' do
|
100
|
+
statistics = {output: 0}
|
101
|
+
listener = DummySyncListener.new('', 'name', 'group')
|
102
|
+
listener.events_statistics = statistics
|
103
|
+
|
104
|
+
it 'returns value itself for nil' do
|
105
|
+
val = nil
|
106
|
+
expect(listener.apply_type_convert_to_events(val)).to eq(val)
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'returns type_convert-ed events for non-nil events' do
|
110
|
+
s1 = "乗鞍".force_encoding("ASCII-8BIT")
|
111
|
+
events = [
|
112
|
+
[100, 100.01, false, true, nil, s1],
|
113
|
+
{
|
114
|
+
"100" => 100,
|
115
|
+
"100_01" => 100.01,
|
116
|
+
"bool$false" => false,
|
117
|
+
"bool$true" => true,
|
118
|
+
"object$$0" => nil,
|
119
|
+
"string" => s1,
|
120
|
+
"list" => [0, 1, 2],
|
121
|
+
"percentiles" => {
|
122
|
+
"10" => 0.1,
|
123
|
+
"50" => 0.5,
|
124
|
+
"99" => 0.99
|
125
|
+
}
|
126
|
+
}
|
127
|
+
]
|
128
|
+
revents = listener.apply_type_convert_to_events(events)
|
129
|
+
expect(revents).to be_a(Array)
|
130
|
+
expect(revents.size).to eql(2)
|
131
|
+
|
132
|
+
expect(revents[0]).to be_a(Array)
|
133
|
+
expect(revents[0][0]).to eql(100)
|
134
|
+
expect(revents[0][1]).to eql(100.01)
|
135
|
+
expect(revents[0][2]).to eq(false)
|
136
|
+
expect(revents[0][3]).to eq(true)
|
137
|
+
expect(revents[0][4]).to be_nil
|
138
|
+
expect(revents[0][5].encoding.to_s).to eql("UTF-8")
|
139
|
+
expect(revents[0][5]).to eql("乗鞍")
|
140
|
+
|
141
|
+
expect(revents[1]).to be_a(Hash)
|
142
|
+
expect(revents[1]["100"]).to eql(100)
|
143
|
+
expect(revents[1]["100_01"]).to eql(100.01)
|
144
|
+
expect(revents[1]["bool.false"]).to eq(false)
|
145
|
+
expect(revents[1]["bool.true"]).to eq(true)
|
146
|
+
expect(revents[1]["object.$0"]).to be_nil
|
147
|
+
expect(revents[1]["string"].encoding.to_s).to eql("UTF-8")
|
148
|
+
expect(revents[1]["string"]).to eql("乗鞍")
|
149
|
+
expect(revents[1]["list"]).to eql([0,1,2])
|
150
|
+
expect(revents[1]["percentiles"]).to eql({"10" => 0.1, "50" => 0.5, "99" => 0.99})
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
99
154
|
### TODO: add specs of .parse, #start, #shutdown, #push and #update
|
100
155
|
end
|
101
156
|
|
@@ -108,9 +163,9 @@ describe Norikra::Listener::MemoryPool do
|
|
108
163
|
|
109
164
|
describe '#process_sync' do
|
110
165
|
listener = Norikra::Listener::MemoryPool.new(nil, 'name', 'group')
|
111
|
-
listener.output_pool = dummy_pool = Norikra::ListenerSpecHelper::DummyOutputPool.new
|
112
166
|
|
113
167
|
it 'pushs events into pool, with current time' do
|
168
|
+
listener.output_pool = dummy_pool = Norikra::ListenerSpecHelper::DummyOutputPool.new
|
114
169
|
listener.process_sync([{"n1" => 100, "s" => "string one"}, {"n1" => 101, "s" => "string two"}], [])
|
115
170
|
expect(dummy_pool.pool['group']['name'].size).to eql(2)
|
116
171
|
expect(dummy_pool.pool['group']['name'][0][0]).to be_a(Fixnum)
|
@@ -120,6 +175,12 @@ describe Norikra::Listener::MemoryPool do
|
|
120
175
|
listener.process_sync([{"n1" => 102, "s" => "string three"}], [])
|
121
176
|
expect(dummy_pool.pool['group']['name'].size).to eql(3)
|
122
177
|
end
|
178
|
+
|
179
|
+
it 'sends nil events into pool with current time' do
|
180
|
+
listener.output_pool = dummy_pool = Norikra::ListenerSpecHelper::DummyOutputPool.new
|
181
|
+
listener.process_sync(nil, nil)
|
182
|
+
expect(dummy_pool.pool['group']).to be_nil
|
183
|
+
end
|
123
184
|
end
|
124
185
|
end
|
125
186
|
|
@@ -138,9 +199,9 @@ describe Norikra::Listener::Loopback do
|
|
138
199
|
|
139
200
|
describe '#process_sync' do
|
140
201
|
listener = Norikra::Listener::Loopback.new('target1', 'name', 'LOOPBACK(target1)')
|
141
|
-
listener.engine = dummy_engine = Norikra::ListenerSpecHelper::DummyEngine.new
|
142
202
|
|
143
203
|
it 'sends events into engine with target name' do
|
204
|
+
listener.engine = dummy_engine = Norikra::ListenerSpecHelper::DummyEngine.new
|
144
205
|
listener.process_sync([{"n1" => 100, "s" => "string one"}, {"n1" => 101, "s" => "string two"}], [])
|
145
206
|
expect(dummy_engine.events['target1'].size).to eql(2)
|
146
207
|
expect(dummy_engine.events['target1'][0]).to eql({"n1" => 100, "s" => "string one"})
|
@@ -149,6 +210,12 @@ describe Norikra::Listener::Loopback do
|
|
149
210
|
listener.process_sync([{"n1" => 102, "s" => "string three"}], [])
|
150
211
|
expect(dummy_engine.events['target1'].size).to eql(3)
|
151
212
|
end
|
213
|
+
|
214
|
+
it 'sends nil events into engine with target name' do
|
215
|
+
listener.engine = dummy_engine = Norikra::ListenerSpecHelper::DummyEngine.new
|
216
|
+
listener.process_sync(nil, nil)
|
217
|
+
expect(dummy_engine.events).to be_empty
|
218
|
+
end
|
152
219
|
end
|
153
220
|
end
|
154
221
|
|
@@ -187,5 +254,11 @@ describe Norikra::Listener::Stdout do
|
|
187
254
|
end
|
188
255
|
expect(results).to eql(events1 + events2)
|
189
256
|
end
|
257
|
+
|
258
|
+
it 'sends nil events into engine with target name' do
|
259
|
+
dummyio.truncate(0)
|
260
|
+
listener.process_sync(nil, nil)
|
261
|
+
expect(dummyio.string).to eql('')
|
262
|
+
end
|
190
263
|
end
|
191
264
|
end
|
metadata
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: norikra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- TAGOMORI Satoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
|
-
- -
|
16
|
+
- - ">="
|
17
17
|
- !ruby/object:Gem::Version
|
18
18
|
version: 0.6.10
|
19
19
|
name: mizuno
|
@@ -21,13 +21,13 @@ dependencies:
|
|
21
21
|
type: :runtime
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.6.10
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
|
-
- -
|
30
|
+
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '0'
|
33
33
|
name: rack
|
@@ -35,13 +35,13 @@ dependencies:
|
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0'
|
47
47
|
name: thor
|
@@ -49,41 +49,41 @@ dependencies:
|
|
49
49
|
type: :runtime
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- -
|
58
|
+
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0.0
|
60
|
+
version: 0.1.0
|
61
61
|
name: msgpack-rpc-over-http
|
62
62
|
prerelease: false
|
63
63
|
type: :runtime
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.0
|
68
|
+
version: 0.1.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- - ~>
|
72
|
+
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: 1.
|
74
|
+
version: 1.4.0
|
75
75
|
name: norikra-client
|
76
76
|
prerelease: false
|
77
77
|
type: :runtime
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.
|
82
|
+
version: 1.4.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
|
-
- -
|
86
|
+
- - ">="
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '0'
|
89
89
|
name: sinatra
|
@@ -91,13 +91,13 @@ dependencies:
|
|
91
91
|
type: :runtime
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
requirement: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
|
-
- -
|
100
|
+
- - ">="
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '0'
|
103
103
|
name: sinatra-contrib
|
@@ -105,13 +105,13 @@ dependencies:
|
|
105
105
|
type: :runtime
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
|
-
- -
|
114
|
+
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
117
|
name: erubis
|
@@ -119,13 +119,13 @@ dependencies:
|
|
119
119
|
type: :runtime
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
requirement: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
|
-
- - ~>
|
128
|
+
- - "~>"
|
129
129
|
- !ruby/object:Gem::Version
|
130
130
|
version: '1.3'
|
131
131
|
name: bundler
|
@@ -133,13 +133,13 @@ dependencies:
|
|
133
133
|
type: :development
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- - ~>
|
136
|
+
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '1.3'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
requirement: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
|
-
- -
|
142
|
+
- - ">="
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: '0'
|
145
145
|
name: rake
|
@@ -147,13 +147,13 @@ dependencies:
|
|
147
147
|
type: :development
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- -
|
150
|
+
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
requirement: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
|
-
- -
|
156
|
+
- - ">="
|
157
157
|
- !ruby/object:Gem::Version
|
158
158
|
version: '0'
|
159
159
|
name: rspec
|
@@ -161,13 +161,13 @@ dependencies:
|
|
161
161
|
type: :development
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- -
|
164
|
+
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
requirement: !ruby/object:Gem::Requirement
|
169
169
|
requirements:
|
170
|
-
- -
|
170
|
+
- - ">="
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: '0'
|
173
173
|
name: pry
|
@@ -175,7 +175,7 @@ dependencies:
|
|
175
175
|
type: :development
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- -
|
178
|
+
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
181
|
description: Norikra is a open source server software provides "Schema-les Stream Processing" with SQL, written in JRuby, runs on JVM, licensed under GPLv2.
|
@@ -186,9 +186,9 @@ executables:
|
|
186
186
|
extensions: []
|
187
187
|
extra_rdoc_files: []
|
188
188
|
files:
|
189
|
-
- .gitignore
|
190
|
-
- .ruby-version
|
191
|
-
- .travis.yml
|
189
|
+
- ".gitignore"
|
190
|
+
- ".ruby-version"
|
191
|
+
- ".travis.yml"
|
192
192
|
- Changes.md
|
193
193
|
- Gemfile
|
194
194
|
- LICENSE
|
@@ -285,17 +285,17 @@ require_paths:
|
|
285
285
|
- esper
|
286
286
|
required_ruby_version: !ruby/object:Gem::Requirement
|
287
287
|
requirements:
|
288
|
-
- -
|
288
|
+
- - ">="
|
289
289
|
- !ruby/object:Gem::Version
|
290
290
|
version: '0'
|
291
291
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
292
292
|
requirements:
|
293
|
-
- -
|
293
|
+
- - ">="
|
294
294
|
- !ruby/object:Gem::Version
|
295
295
|
version: '0'
|
296
296
|
requirements: []
|
297
297
|
rubyforge_project:
|
298
|
-
rubygems_version: 2.4.
|
298
|
+
rubygems_version: 2.4.8
|
299
299
|
signing_key:
|
300
300
|
specification_version: 4
|
301
301
|
summary: Schema-less stream processing server with SQL
|