Module: Facter::Utils
- Defined in:
- lib/facter/util/utils.rb
Class Method Summary collapse
- .deep_copy(obj) ⇒ Object
- .deep_stringify_keys(object) ⇒ Object
-
.sort_hash_by_key(hash, recursive = true, &block) ⇒ Object
Sort nested hash.
- .split_user_query(user_query) ⇒ Object
Class Method Details
.deep_copy(obj) ⇒ Object
15 16 17 |
# File 'lib/facter/util/utils.rb', line 15 def self.deep_copy(obj) Marshal.load(Marshal.dump(obj)) end |
.deep_stringify_keys(object) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/facter/util/utils.rb', line 24 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) ⇒ Object
Sort nested hash.
6 7 8 9 10 11 12 13 |
# 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({}) 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) ⇒ Object
19 20 21 22 |
# File 'lib/facter/util/utils.rb', line 19 def self.split_user_query(user_query) queries = user_query.split('.') queries.map! { |query| query =~ /^[0-9]+$/ ? query.to_i : query } end |