Method: Hash#booleanize!

Defined in:
lib/morpheus/ext/hash.rb

#booleanize!(true_values = ['true','on'], false_values = ['false','off']) ⇒ Object

convert recognizable strings to booleans



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/morpheus/ext/hash.rb', line 65

def booleanize!(true_values=['true','on'], false_values=['false','off'])
  self.each_pair do |k, v|
    if v.is_a?(Hash)
      self[k].booleanize!
    elsif v.is_a?(Array)
      self[k].each do |it|
        if it.is_a?(Hash)
          it.booleanize!
        elsif self[k] == nil || self[k] == ''
          # meh, preserve 'empty' array elements
        end
      end
    else
      if true_values.include?(v)
        self[k] = true
      elsif false_values.include?(v)
        self[k] = false
      end
    end
  end
  self
end