Module: ClientApiBuilder::QueryParams
- Defined in:
- lib/client_api_builder/query_params.rb
Class Method Summary collapse
- .to_query(data, namespace = nil, name_value_separator = '=', param_separator = '&') ⇒ Object
- .to_query_from_array(array, namespace, name_value_separator) ⇒ Object
- .to_query_from_hash(hsh, namespace, name_value_separator) ⇒ Object
Class Method Details
.to_query(data, namespace = nil, name_value_separator = '=', param_separator = '&') ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/client_api_builder/query_params.rb', line 8 def to_query(data, namespace = nil, name_value_separator = '=', param_separator = '&') case data when Hash to_query_from_hash(data, (namespace ? CGI.escape(namespace) : nil), name_value_separator).join(param_separator) when Array to_query_from_array(data, (namespace ? "#{CGI.escape(namespace)}[]" : '[]'), name_value_separator).join(param_separator) else if namespace "#{CGI.escape(namespace)}#{name_value_separator}#{CGI.escape(data.to_s)}" else CGI.escape(data.to_s) end end end |
.to_query_from_array(array, namespace, name_value_separator) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/client_api_builder/query_params.rb', line 43 def to_query_from_array(array, namespace, name_value_separator) query_params = [] array.each do |value| case value when Hash query_params += to_query_from_hash(value, namespace, name_value_separator) when Array query_params += to_query_from_array(value, "#{namespace}[]", name_value_separator) else query_params << "#{namespace}#{name_value_separator}#{CGI.escape(value.to_s)}" end end query_params end |
.to_query_from_hash(hsh, namespace, name_value_separator) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/client_api_builder/query_params.rb', line 23 def to_query_from_hash(hsh, namespace, name_value_separator) query_params = [] hsh.each do |key, value| case value when Array array_namespace = namespace ? "#{namespace}[#{CGI.escape(key.to_s)}][]" : "#{CGI.escape(key.to_s)}[]" query_params += to_query_from_array(value, array_namespace, name_value_separator) when Hash hash_namespace = namespace ? "#{namespace}[#{CGI.escape(key.to_s)}]" : "#{CGI.escape(key.to_s)}" query_params += to_query_from_hash(value, hash_namespace, name_value_separator) else query_name = namespace ? "#{namespace}[#{CGI.escape(key.to_s)}]" : "#{CGI.escape(key.to_s)}" query_params << "#{query_name}#{name_value_separator}#{CGI.escape(value.to_s)}" end end query_params end |