--- %YAML:1.0
test: Simple Sequence 
brief: | 
    You can specify a list in YAML by placing each 
    member of the list on a new line with an opening 
    dash. These lists are called sequences. 
yaml: | 
    - apple 
    - banana 
    - carrot 
perl: |
    ['apple', 'banana', 'carrot']  
python: |
    [  
        ['apple', 'banana', 'carrot']  
    ] 
ruby: |
    ['apple', 'banana', 'carrot']  
 
--- 
test: Nested Sequences 
brief: | 
    You can include a sequence within another 
    sequence by giving the sequence an empty 
    dash, followed by an indented list. 
yaml: | 
    - 
     - foo 
     - bar 
     - baz 
perl: | 
    [['foo', 'bar', 'baz']] 
python: | 
    [ 
        [['foo', 'bar', 'baz']] 
    ] 
ruby: | 
    [['foo', 'bar', 'baz']] 
 
--- 
test: Mixed Sequences 
brief: | 
    Sequences can contain any YAML data, 
    including strings and other sequences. 
yaml: | 
    - apple 
    - 
     - foo 
     - bar 
     - x123 
    - banana 
    - carrot 
perl: | 
    ['apple', ['foo', 'bar', 'x123'], 'banana', 'carrot'] 
python: | 
    [ 
        ['apple', ['foo', 'bar', 'x123'], 'banana', 'carrot'] 
    ] 
ruby: | 
    ['apple', ['foo', 'bar', 'x123'], 'banana', 'carrot'] 
 
--- 
test: Deeply Nested Sequences 
brief: | 
    Sequences can be nested even deeper, with each 
    level of indentation representing a level of 
    depth. 
yaml: | 
    - 
     - 
      - uno 
      - dos 
perl: | 
    [[['uno', 'dos']]] 
python: | 
    [ 
        [[['uno', 'dos']]] 
    ] 
ruby: | 
    [[['uno', 'dos']]] 
 
--- 
test: Simple Mapping 
brief: | 
    You can add a keyed list (also known as a dictionary or 
    hash) to your document by placing each member of the 
    list on a new line, with a colon seperating the key 
    from its value.  In YAML, this type of list is called 
    a mapping. 
yaml: | 
    foo: whatever 
    bar: stuff 
perl: | 
    { foo => 'whatever', bar => 'stuff' } 
python: | 
    [ 
        {'foo': 'whatever', 'bar': 'stuff'} 
    ] 
ruby: | 
    { 'foo' => 'whatever', 'bar' => 'stuff' } 
 
--- 
test: Sequence in a Mapping 
brief: | 
    A value in a mapping can be a sequence. 
yaml: | 
    foo: whatever 
    bar: 
     - uno 
     - dos 
perl: | 
    { foo => 'whatever', bar => [ 'uno', 'dos' ] } 
python: | 
    [ 
        {'foo': 'whatever', 'bar': ['uno', 'dos']} 
    ] 
ruby: | 
    { 'foo' => 'whatever', 'bar' => [ 'uno', 'dos' ] } 
 
--- 
test: Nested Mappings 
brief: | 
    A value in a mapping can be another mapping. 
yaml: | 
    foo: whatever 
    bar: 
     fruit: apple 
     name: steve 
     sport: baseball 
perl: | 
    { foo => 'whatever',  
      bar => { 
         fruit => 'apple',  
         name => 'steve', 
         sport => 'baseball' 
       } 
    } 
python: | 
    [ 
        {'foo': 'whatever',  
         'bar': { 
            'fruit': 'apple',  
            'name': 'steve', 
            'sport': 'baseball' 
            } 
        } 
    ] 
ruby: | 
    { 'foo' => 'whatever',  
      'bar' => { 
         'fruit' => 'apple',  
         'name' => 'steve', 
         'sport' => 'baseball' 
       } 
    } 
 
--- 
test: Mixed Mapping 
brief: | 
    A mapping can contain any assortment 
    of mappings and sequences as values. 
yaml: | 
    foo: whatever 
    bar: 
     - 
       fruit: apple 
       name: steve 
       sport: baseball 
     - more 
     - 
       python: rocks 
       perl: papers 
       ruby: scissorses 
perl: | 
    { foo => 'whatever',  
      bar => [ 
        { 
            fruit => 'apple',  
            name => 'steve', 
            sport => 'baseball' 
        }, 
        'more', 
        { 
            python => 'rocks', 
            perl => 'papers', 
            ruby => 'scissorses' 
        } 
      ] 
    } 
python: | 
    [ 
        {'foo': 'whatever',  
         'bar': [ 
            { 
                'fruit': 'apple',  
                'name': 'steve', 
                'sport': 'baseball' 
            }, 
            'more', 
            { 
                'python': 'rocks', 
                'perl':  'papers', 
                'ruby': 'scissorses' 
            } 
         ] 
        } 
    ] 
ruby: | 
    { 'foo' => 'whatever',  
      'bar' => [ 
        { 
            'fruit' => 'apple',  
            'name' => 'steve', 
            'sport' => 'baseball' 
        }, 
        'more', 
        { 
            'python' => 'rocks', 
            'perl' => 'papers', 
            'ruby' => 'scissorses' 
        } 
      ] 
    } 
 
--- 
test: Mapping-in-Sequence Shortcut 
brief: | 
     If you are adding a mapping to a sequence, you 
     can place the mapping on the same line as the 
     dash as a shortcut. 
yaml: | 
     - work on YAML.py: 
        - work on Store 
perl: | 
    [ { 'work on YAML.py' => ['work on Store'] } ] 
python: | 
    [ 
        [ {'work on YAML.py': ['work on Store']} ] 
    ] 
ruby: | 
    [ { 'work on YAML.py' => ['work on Store'] } ] 

---
test: Sequence-in-Mapping Shortcut
brief: |
     The dash in a sequence counts as indentation, so
     you can add a sequence inside of a mapping without
     needing spaces as indentation.
yaml: |
     allow:
     - 'localhost'
     - '%.sourceforge.net'
     - '%.freepan.org'
perl: |
     { 'allow' => [ 'localhost', '%.sourceforge.net', '%.freepan.org' ] }
python: |
     [
         { 'allow': [ 'localhost', '%.sourceforge.net', '%.freepan.org' ] }
     ]
ruby: |
     { 'allow' => [ 'localhost', '%.sourceforge.net', '%.freepan.org' ] }

---
test: Merge key
brief: |
     A merge key ('<<') can be used in a mapping to insert other mappings.  If
     the value associated with the merge key is a mapping, each of its key/value
     pairs is inserted into the current mapping.
yaml: |
     mapping:
       name: Joe
       job: Accountant
       <<:
         age: 38
ruby: |
     { 'mapping' =>
       { 'name' => 'Joe',
         'job' => 'Accountant',
         'age' => 38
       }
     }

