繁体   English   中英

YAML对象属性

[英]YAML object properties

我在YAML中定义代码审查配置。 我需要保持配置尽可能紧凑,而无需像名称/值对那样显式定义xml / json。

- group: Naming convention
  severity: medium
  rules:
   - name: Check API naming convention
     type: pattern
     element: api.@name
     pattern: '.*\-.*\-\d\.\d'
     properties:
      - exit-on-fail
      - skip-and-proceed
      - etc.

我在这里不喜欢定义标签“ properties”来添加操作。 动作可以存在于对象级别吗?

就缩进而言,它们可以存在于对象级别:

- group: Naming convention
  severity: medium
  rules:
   - name: Check API naming convention
     type: pattern
     element: api.@name
     pattern: '.*\-.*\-\d\.\d'
     properties:
     - exit-on-fail
     - skip-and-proceed
     - etc.

之所以可行-是因为YAML将-视为缩进,因此,仍会创建一个列表作为properties:键的值。

为了简化,您也可以像daggett建议的那样以内联方式编写它们:

- group: Naming convention
  severity: medium
  rules:
   - name: Check API naming convention
     type: pattern
     element: api.@name
     pattern: '.*\-.*\-\d\.\d'
     properties: [exit-on-fail, skip-and-proceed, etc]

最后, 只要它们不与任何其他字段共享名称 ,就可以将它们放入对象映射

- group: Naming convention
  severity: medium
  rules:
   - name: Check API naming convention
     type: pattern
     element: api.@name
     pattern: '.*\-.*\-\d\.\d'
     ? exit-on-fail
     ? skip-and-proceed
     ? etc.

这将在您的对象中创建三个附加的键值对,其中三个属性为键,而空字符串(根据您使用的YAML实现,可能为空值)为该值。 如果这样做,您将需要编写一个自定义构造函数以将其加载到本机数据结构中,因为您需要区分对象字段和动作。 同样,如何执行此操作取决于您的YAML实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM