簡體   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