norikra 1.0.6-java → 1.0.7-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/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
|