Это старая версия документа.


Приемы при составлении yaml-описаний

Online parser

Группировка

Довольно часто может потребоваться описать несколько наборов параметров с небольшими, либо отсутствующими различиями, например:

module.ser:
  - portnum:   1
    sysname:   /dev/ttyMXUSB0
    baud:      9600
    databits:  8
    parity:    0
    stopbits:  1
    timeout:   200

  - portnum:   2
    sysname:   /dev/ttyMXUSB1
    baud:      9600
    databits:  8
    parity:    0
    stopbits:  1
    timeout:   200

Как видно, отличия лишь в двух параметрах - portnum и sysname. В следующем примере мы вынесем общие параметры в отдельную группу:

group: &group
    baud:      9600
    databits:  8
    parity:    0
    stopbits:  1
    timeout:   200
    
module.ser:
  - portnum:   1
    sysname:   /dev/ttyMXUSB0
    <<:        *group

  - portnum:   2
    sysname:   /dev/ttyMXUSB1
    <<:        *group

Теперь, если потребуется изменить параметр baud сразу всем, достаточно будет изменить его в группе. В тоже время параметры можно указывать явно, чтобы перекрыть значение, установленное в группе, например:

group: &group
    baud:      9600
    databits:  8
    parity:    0
    stopbits:  1
    timeout:   200
    
module.ser:
  - portnum:   1
    sysname:   /dev/ttyMXUSB0
    <<:        *group

  - portnum:   2
    sysname:   /dev/ttyMXUSB1
    baud:      115200
    <<:        *group

Группа обязательно должна располагаться выше места ее использования.

doc/jroboplc/notes/yaml_techniques.1368551110.txt.gz · Последние изменения: 2013/05/14 21:05 — jamis7005
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0