norikra 0.0.23-java → 0.0.24-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.
- data/lib/norikra/fieldset.rb +5 -0
 - data/lib/norikra/version.rb +1 -1
 - data/spec/fieldset_spec.rb +11 -0
 - data/spec/typedef_spec.rb +18 -0
 - metadata +1 -1
 
    
        data/lib/norikra/fieldset.rb
    CHANGED
    
    | 
         @@ -38,6 +38,11 @@ module Norikra 
     | 
|
| 
       38 
38 
     | 
    
         
             
                end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
                def self.leaves(container)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  unless container.is_a?(Array) || container.is_a?(Hash)
         
     | 
| 
      
 42 
     | 
    
         
            +
                    raise ::ArgumentError, "FieldSet#leaves accepts Array or Hash only"
         
     | 
| 
      
 43 
     | 
    
         
            +
                  end
         
     | 
| 
      
 44 
     | 
    
         
            +
                  return [] if container.empty?
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
       41 
46 
     | 
    
         
             
                  # returns list of [ [key-chain-items-flatten-list, value] ]
         
     | 
| 
       42 
47 
     | 
    
         
             
                  dig = Proc.new do |obj|
         
     | 
| 
       43 
48 
     | 
    
         
             
                    if obj.is_a?(Array)
         
     | 
    
        data/lib/norikra/version.rb
    CHANGED
    
    
    
        data/spec/fieldset_spec.rb
    CHANGED
    
    | 
         @@ -50,6 +50,17 @@ describe Norikra::FieldSet do 
     | 
|
| 
       50 
50 
     | 
    
         
             
                end
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
       52 
52 
     | 
    
         
             
                describe '.leaves' do
         
     | 
| 
      
 53 
     | 
    
         
            +
                  it 'raises ArgumentError for non-container values' do
         
     | 
| 
      
 54 
     | 
    
         
            +
                    expect { Norikra::FieldSet.leaves('value') }.to raise_error(ArgumentError)
         
     | 
| 
      
 55 
     | 
    
         
            +
                    expect { Norikra::FieldSet.leaves('') }.to raise_error(ArgumentError)
         
     | 
| 
      
 56 
     | 
    
         
            +
                    expect { Norikra::FieldSet.leaves(1024) }.to raise_error(ArgumentError)
         
     | 
| 
      
 57 
     | 
    
         
            +
                    expect { Norikra::FieldSet.leaves(nil) }.to raise_error(ArgumentError)
         
     | 
| 
      
 58 
     | 
    
         
            +
                  end
         
     | 
| 
      
 59 
     | 
    
         
            +
                  it 'returns blank array for empty container' do
         
     | 
| 
      
 60 
     | 
    
         
            +
                    expect( Norikra::FieldSet.leaves({}) ).to eql([])
         
     | 
| 
      
 61 
     | 
    
         
            +
                    expect( Norikra::FieldSet.leaves([]) ).to eql([])
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
       53 
64 
     | 
    
         
             
                  it 'returns field access chains to all keys of 1-depth Hash container' do
         
     | 
| 
       54 
65 
     | 
    
         
             
                    leaves = Norikra::FieldSet.leaves({'field1' => 1, 'field2' => 2})
         
     | 
| 
       55 
66 
     | 
    
         
             
                    expect(leaves.size).to eql(2)
         
     | 
    
        data/spec/typedef_spec.rb
    CHANGED
    
    | 
         @@ -378,6 +378,24 @@ describe Norikra::Typedef do 
     | 
|
| 
       378 
378 
     | 
    
         
             
                    expect(r['key4$f2$$0']).to eql('long')
         
     | 
| 
       379 
379 
     | 
    
         
             
                    expect(r['key5']).to eql('string')
         
     | 
| 
       380 
380 
     | 
    
         
             
                  end
         
     | 
| 
      
 381 
     | 
    
         
            +
             
     | 
| 
      
 382 
     | 
    
         
            +
                  it 'ignores empty container fieldss' do
         
     | 
| 
      
 383 
     | 
    
         
            +
                    typedef = Norikra::Typedef.new({'key1' => 'boolean', 'key2' => 'long', 'key3.$0.key4' => 'string'})
         
     | 
| 
      
 384 
     | 
    
         
            +
                    typedef.waiting_fields = ['key4.f1', 'key4.f2.$0', 'key5']
         
     | 
| 
      
 385 
     | 
    
         
            +
             
     | 
| 
      
 386 
     | 
    
         
            +
                    t = typedef.simple_guess({
         
     | 
| 
      
 387 
     | 
    
         
            +
                        'key1' => true,
         
     | 
| 
      
 388 
     | 
    
         
            +
                        'key2' => 10,
         
     | 
| 
      
 389 
     | 
    
         
            +
                        'key3' => [],
         
     | 
| 
      
 390 
     | 
    
         
            +
                        'key4' => {},
         
     | 
| 
      
 391 
     | 
    
         
            +
                        'key5' => 'foobar'
         
     | 
| 
      
 392 
     | 
    
         
            +
                      }, true, true)
         
     | 
| 
      
 393 
     | 
    
         
            +
                    r = t.definition
         
     | 
| 
      
 394 
     | 
    
         
            +
                    expect(r.size).to eql(3)
         
     | 
| 
      
 395 
     | 
    
         
            +
                    expect(r['key1']).to eql('boolean')
         
     | 
| 
      
 396 
     | 
    
         
            +
                    expect(r['key2']).to eql('long')
         
     | 
| 
      
 397 
     | 
    
         
            +
                    expect(r['key5']).to eql('string')
         
     | 
| 
      
 398 
     | 
    
         
            +
                  end
         
     | 
| 
       381 
399 
     | 
    
         
             
                end
         
     | 
| 
       382 
400 
     | 
    
         | 
| 
       383 
401 
     | 
    
         
             
                describe '#refer' do
         
     |