class Hash def deep_include?(sub_hash, without_key) sub_hash.keys.all? do |key| next if key == without_key self.has_key?(key) && if sub_hash[key].is_a?(Hash) self[key].is_a?(Hash) && self[key].deep_include?(sub_hash[key]) else self[key] == sub_hash[key] end end end end class ZabbixApi class Basic def symbolize_keys(obj) return obj.inject({}){|memo,(k,v)| memo[k.to_sym] = symbolize_keys(v); memo} if obj.is_a? Hash return obj.inject([]){|memo,v | memo << symbolize_keys(v); memo} if obj.is_a? Array return obj end def parse_keys(data) case data when Hash data.empty? ? nil : data[keys][0].to_i when TrueClass true when FalseClass false else nil end end def merge_params(params) result = JSON.generate(default_options).to_s + "," + JSON.generate(params).to_s JSON.parse(result.gsub('},{', ',')) end end end