norikra 1.0.6-java → 1.0.7-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changes.md +4 -0
- data/lib/norikra/typedef.rb +10 -24
- data/lib/norikra/typedef_manager.rb +1 -1
- data/lib/norikra/version.rb +1 -1
- data/spec/typedef_spec.rb +26 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89c004c84e1c294cb0a07cb42fb8af1f09ce5bb9
|
4
|
+
data.tar.gz: 5d8907d43f09fd2c772c55dc7e1bfc97bbc2508b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebb8eb23d2656c6006f12a780be1c839d09a581cb13de2da983d27424dadc2f603a61633ca564353d71456781f13f969563e8af93a98fcc1137fef4027cd1581
|
7
|
+
data.tar.gz: 26b751b08b6686c9925c91956835f96f71a4746168368eb6c83d15d405118b0c743023caa36605615f092dbf1c647a7b3dcf1cbe45baf669b929ce46f996fe68
|
data/Changes.md
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
Changes of norikra.
|
4
4
|
|
5
5
|
## v1
|
6
|
+
* v1.0.7:
|
7
|
+
* Fix bug to set nested values as always required if the first event includes container fields (issue #51)
|
8
|
+
* v1.0.6:
|
9
|
+
* Fix bug not to receive events on '/send' of JSON API
|
6
10
|
* v1.0.5:
|
7
11
|
* Add option `--log4j-properties-path` to specify logger configurations by log4j.properties file
|
8
12
|
* Add HTTP RPC headers to allow requests from different origins
|
data/lib/norikra/typedef.rb
CHANGED
@@ -172,13 +172,19 @@ module Norikra
|
|
172
172
|
true
|
173
173
|
end
|
174
174
|
|
175
|
-
def simple_guess(data,
|
175
|
+
def simple_guess(data, opts={})
|
176
|
+
unless opts.has_key?(:optional)
|
177
|
+
opts[:optional] = true
|
178
|
+
end
|
179
|
+
|
176
180
|
flatten_key_value_pairs = []
|
177
181
|
|
178
182
|
data.each do |key,value|
|
179
|
-
next if strict && !(@fields.has_key?(key) || @waiting_fields.include?(key) || value.is_a?(Hash) || value.is_a?(Array))
|
183
|
+
next if opts[:strict] && !(@fields.has_key?(key) || @waiting_fields.include?(key) || value.is_a?(Hash) || value.is_a?(Array))
|
180
184
|
|
181
185
|
if value.is_a?(Hash) || value.is_a?(Array)
|
186
|
+
next if opts[:baseset]
|
187
|
+
|
182
188
|
Norikra::FieldSet.leaves(value).map{|chain| [key] + chain}.each do |chain|
|
183
189
|
value = chain.pop
|
184
190
|
key = Norikra::Field.regulate_key_chain(chain).join('.')
|
@@ -203,34 +209,14 @@ module Norikra
|
|
203
209
|
}
|
204
210
|
]
|
205
211
|
|
206
|
-
FieldSet.new(mapping, optional)
|
212
|
+
FieldSet.new(mapping, opts[:optional])
|
207
213
|
end
|
208
214
|
|
209
|
-
# def self.guess(data, optional=true)
|
210
|
-
# mapping = Hash[
|
211
|
-
# data.map{|key,value|
|
212
|
-
# sval = value.to_s
|
213
|
-
# type = case
|
214
|
-
# when val.is_a?(TrueClass) || val.is_a?(FalseClass) || sval =~ /^(?:true|false)$/i
|
215
|
-
# 'boolean'
|
216
|
-
# when val.is_a?(Integer) || sval =~ /^-?\d+[lL]?$/
|
217
|
-
# 'long'
|
218
|
-
# when val.is_a?(Float) || sval =~ /^-?\d+\.\d+(?:[eE]-?\d+|[dDfF])?$/
|
219
|
-
# 'double'
|
220
|
-
# else
|
221
|
-
# 'string'
|
222
|
-
# end
|
223
|
-
# [key,type]
|
224
|
-
# }
|
225
|
-
# ]
|
226
|
-
# self.new(mapping, optional)
|
227
|
-
# end
|
228
|
-
|
229
215
|
def refer(data, strict=false)
|
230
216
|
field_names_key = FieldSet.field_names_key(data, self, strict, @waiting_fields)
|
231
217
|
return @set_map[field_names_key] if @set_map.has_key?(field_names_key)
|
232
218
|
|
233
|
-
guessed = self.simple_guess(data, false, strict)
|
219
|
+
guessed = self.simple_guess(data, optional: false, strict: strict)
|
234
220
|
guessed_fields = guessed.fields
|
235
221
|
@fields.each do |key,field|
|
236
222
|
if guessed_fields.has_key?(key)
|
@@ -101,7 +101,7 @@ module Norikra
|
|
101
101
|
end
|
102
102
|
|
103
103
|
def generate_base_fieldset(target, event)
|
104
|
-
guessed = @typedefs[target].simple_guess(event, false, false) # all fields are non-optional
|
104
|
+
guessed = @typedefs[target].simple_guess(event, optional: false, strict: false, baseset: true) # all fields are non-optional
|
105
105
|
guessed.update(@typedefs[target].fields, false)
|
106
106
|
guessed
|
107
107
|
end
|
data/lib/norikra/version.rb
CHANGED
data/spec/typedef_spec.rb
CHANGED
@@ -334,7 +334,7 @@ describe Norikra::Typedef do
|
|
334
334
|
|
335
335
|
it 'can guess about fields already known with strict mode' do
|
336
336
|
typedef = Norikra::Typedef.new({'key1' => 'boolean', 'key2' => 'boolean', 'key3' => 'long'})
|
337
|
-
t = typedef.simple_guess({'key1' => true, 'key2' => false, 'key3' => 10, 'key4' => 3.1415, 'key5' => 'foobar'}, true, true)
|
337
|
+
t = typedef.simple_guess({'key1' => true, 'key2' => false, 'key3' => 10, 'key4' => 3.1415, 'key5' => 'foobar'}, optional: true, strict: true)
|
338
338
|
r = t.definition
|
339
339
|
expect(r['key1']).to eql('boolean')
|
340
340
|
expect(r['key2']).to eql('boolean')
|
@@ -348,7 +348,7 @@ describe Norikra::Typedef do
|
|
348
348
|
typedef = Norikra::Typedef.new({'key1' => 'boolean', 'key2' => 'boolean', 'key3' => 'long'})
|
349
349
|
typedef.waiting_fields = ['key5']
|
350
350
|
|
351
|
-
t = typedef.simple_guess({'key1' => true, 'key2' => false, 'key3' => 10, 'key4' => 3.1415, 'key5' => 'foobar'}, true, true)
|
351
|
+
t = typedef.simple_guess({'key1' => true, 'key2' => false, 'key3' => 10, 'key4' => 3.1415, 'key5' => 'foobar'}, optional: true, strict: true)
|
352
352
|
r = t.definition
|
353
353
|
expect(r['key1']).to eql('boolean')
|
354
354
|
expect(r['key2']).to eql('boolean')
|
@@ -368,7 +368,7 @@ describe Norikra::Typedef do
|
|
368
368
|
'key3' => [{'k2' => 1, 'k3' => 'sssss', 'key4' => 'baz'}],
|
369
369
|
'key4' => {'f1' => 'xxx', 'f2' => [30, true]},
|
370
370
|
'key5' => 'foobar'
|
371
|
-
}, true, true)
|
371
|
+
}, optional: true, strict: true)
|
372
372
|
r = t.definition
|
373
373
|
expect(r.size).to eql(6)
|
374
374
|
expect(r['key1']).to eql('boolean')
|
@@ -379,7 +379,7 @@ describe Norikra::Typedef do
|
|
379
379
|
expect(r['key5']).to eql('string')
|
380
380
|
end
|
381
381
|
|
382
|
-
it 'ignores empty container
|
382
|
+
it 'ignores empty container fields' do
|
383
383
|
typedef = Norikra::Typedef.new({'key1' => 'boolean', 'key2' => 'long', 'key3.$0.key4' => 'string'})
|
384
384
|
typedef.waiting_fields = ['key4.f1', 'key4.f2.$0', 'key5']
|
385
385
|
|
@@ -389,13 +389,34 @@ describe Norikra::Typedef do
|
|
389
389
|
'key3' => [],
|
390
390
|
'key4' => {},
|
391
391
|
'key5' => 'foobar'
|
392
|
-
}, true, true)
|
392
|
+
}, optional: true, strict: true)
|
393
393
|
r = t.definition
|
394
394
|
expect(r.size).to eql(3)
|
395
395
|
expect(r['key1']).to eql('boolean')
|
396
396
|
expect(r['key2']).to eql('long')
|
397
397
|
expect(r['key5']).to eql('string')
|
398
398
|
end
|
399
|
+
|
400
|
+
it 'ignores any container fields if baseset option specified' do
|
401
|
+
typedef = Norikra::Typedef.new(nil) # lazy typedef for baseset generation test
|
402
|
+
typedef.waiting_fields = ['key1.a1', 'key1.a2', 'key2.$0']
|
403
|
+
|
404
|
+
t = typedef.simple_guess({
|
405
|
+
'key1' => {'a1' => 1, 'a2' => 2},
|
406
|
+
'key2' => [3, 4],
|
407
|
+
}, optional: false, strict: false, baseset: true)
|
408
|
+
r = t.definition
|
409
|
+
expect(r.size).to eql(0)
|
410
|
+
|
411
|
+
t = typedef.simple_guess({
|
412
|
+
'key1' => {'a1' => 1, 'a2' => 2},
|
413
|
+
'key2' => [3, 4],
|
414
|
+
'key3' => true,
|
415
|
+
}, optional: false, strict: false, baseset: true)
|
416
|
+
r = t.definition
|
417
|
+
expect(r.size).to eql(1)
|
418
|
+
expect(r['key3']).to eql('boolean')
|
419
|
+
end
|
399
420
|
end
|
400
421
|
|
401
422
|
describe '#refer' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: norikra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- TAGOMORI Satoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mizuno
|