class Simphi::Request
Public Instance Methods
normalize_hash_params()
click to toggle source
# File lib/simphi/request.rb, line 5 def normalize_hash_params params.each do |key, value| normalize_to_proper_params(value) if with_hash? value if with_hash? key param = delete_param(key) update_param(key.gsub(/-simphi/, ''), normalized_hash(param)) end end if with_hash? params end
Private Instance Methods
normalize_to_proper_params(hash)
click to toggle source
# File lib/simphi/request.rb, line 37 def normalize_to_proper_params(hash) if hash.is_a? Hash list = hash.map do |k, v| normalize_to_proper_params(v) if with_hash? v if with_hash? k { key: k, obj: { k.gsub(/-simphi/, '') => normalized_hash(v) } } end end.compact list.each do |v| hash.delete(v[:key]) hash.merge!(v[:obj]) end end end
normalized_hash(params)
click to toggle source
# File lib/simphi/request.rb, line 25 def normalized_hash(params) hashes = params.map do |_, v| if v.length <= 1 || !v.has_key?('key') || !v.has_key?('value') raise ArgumentError, 'Every hash element should include key and value' end { v['key'] => v['value'] } if v['key'].present? && v['value'].present? end.compact hashes.reduce Hash.new, :merge end
with_hash?(param)
click to toggle source
# File lib/simphi/request.rb, line 20 def with_hash?(param) return param =~ /-simphi/ if param.is_a? String return param.to_s =~ /-simphi/ if param.is_a? Hash end