class Apisync::Http::QueryString
Public Class Methods
new(filters:)
click to toggle source
# File lib/apisync/http/query_string.rb, line 4 def initialize(filters:) @filters = filters end
Public Instance Methods
to_s()
click to toggle source
# File lib/apisync/http/query_string.rb, line 8 def to_s result = "" result << format_filters if @filters result end
Private Instance Methods
format_filters()
click to toggle source
Takes a list of `[key]=value` strings and maps them adding `“filter”` as prefix.
Results in `filter=value&filter=value2`.
# File lib/apisync/http/query_string.rb, line 20 def format_filters recursive_brackets(@filters) .flatten .map { |filter| "filter#{filter}" } .join("&") end
recursive_brackets(hash, prefix = "")
click to toggle source
Takes a hash such as
{ field_one: 'value1', metadata: { field_two: "value2", field_three: "value3" } }
and returns
[ "[field-one]=value1", "[metadata][field-two]=value2", "[metadata][field-three]=value3" ]
This can be used for creating filter querystrings.
# File lib/apisync/http/query_string.rb, line 46 def recursive_brackets(hash, prefix = "") result = [] hash.each do |key, value| key = key.to_s if value.is_a?(Hash) prefix = "#{prefix}[#{key}]" top_nodes = recursive_brackets(value, prefix) result << top_nodes else result << "#{prefix}[#{key}]=#{value}" end end result end