module Facter::Utils
Public Class Methods
deep_stringify_keys(object)
click to toggle source
# File lib/facter/util/utils.rb, line 20 def self.deep_stringify_keys(object) case object when Hash object.each_with_object({}) do |(key, value), result| result[key.to_s] = deep_stringify_keys(value) end when Array object.map { |e| deep_stringify_keys(e) } else object end end
sort_hash_by_key(hash, recursive = true, &block)
click to toggle source
Sort nested hash.
# File lib/facter/util/utils.rb, line 6 def self.sort_hash_by_key(hash, recursive = true, &block) hash.keys.sort(&block).each_with_object(hash.class.new) do |key, seed| seed[key] = hash[key] seed[key] = sort_hash_by_key(seed[key], true, &block) if recursive && seed[key].is_a?(Hash) seed end end
split_user_query(user_query)
click to toggle source
# File lib/facter/util/utils.rb, line 15 def self.split_user_query(user_query) queries = user_query.split('.') queries.map! { |query| query =~ /^[0-9]+$/ ? query.to_i : query } end
try_to_bool(value)
click to toggle source
# File lib/facter/util/utils.rb, line 33 def self.try_to_bool(value) case value.to_s when 'true' true when 'false' false else value end end
try_to_int(value)
click to toggle source
# File lib/facter/util/utils.rb, line 44 def self.try_to_int(value) Integer(value) rescue ArgumentError, TypeError value end