class Cccode::Misc
Public Class Methods
nested_keys(source_hash, *target_keys)
click to toggle source
# File lib/misc.rb, line 6 def self.nested_keys(source_hash, *target_keys) begin new_keys = target_keys new_hash = source_hash while new_keys.present? return nil unless valid_key?(new_keys[0], new_hash) chk_try = new_hash.try(:[], new_keys[0]) if chk_try new_hash = new_hash[new_keys[0]] new_keys.delete_at(0) return chk_try if new_keys.blank? else return nil end end if new_keys && new_hash new_hash rescue StandardError => e return nil end end
valid_key?(k, source=nil)
click to toggle source
# File lib/misc.rb, line 28 def self.valid_key?(k, source=nil) key_valid = k.is_a?(String) || k.is_a?(Integer) || k.is_a?(Symbol) ar_valid = source ? (source.is_a?(Array) ? k.is_a?(Integer) : true) : true key_valid && ar_valid end