[英]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.