其實這篇是因為在寫 puppet template (erb) 的時候遇到的問題,看起來會很常用到,先記錄下來
要講問題之前,先看看 Ruby 的資料型別
一般狀況下判斷各種 data type 可以用 value.is_a? 或 value.kind_of? 的方式,例如:
value.is_a? String value.kind_of? Integer
可是從上圖來看,Ruby 並沒有 Boolean 這個型別,而是 TrueClass 和 FalseClass
如果想要一行判斷 Boolean 中的 true 和 false 型別的話,要用 include 的方式來做
[true, false].include? value
寫在 puppet template 的話就像這樣:
<%- if [true, false].include? value -%> ... <%- end -%>
這樣可以少寫一點 code (煙 …
參考資料:
Elegantly check for boolean type in rails
提供一個也是一行的判斷式, 但是可讀性沒有文章裡的好, 純粹看個人喜好或習慣
if !!value = value