module FinApps::Utils::QueryBuilder
Public Instance Methods
build_query_path(root_url, params)
click to toggle source
# File lib/finapps/utils/query_builder.rb 6 def build_query_path(root_url, params) 7 filter_obj = build_filter(params) 8 filter = "filter=#{ERB::Util.url_encode(filter_obj.to_json)}" unless filter_obj.empty? 9 query_join(root_url, [page(params), requested(params), sort(params), filter]) 10 end
Private Instance Methods
build_filter(_params)
click to toggle source
# File lib/finapps/utils/query_builder.rb 31 def build_filter(_params) 32 # stub, to be overwritten by classes that include this module 33 {} 34 end
page(params)
click to toggle source
# File lib/finapps/utils/query_builder.rb 14 def page(params) 15 "page=#{params[:page].to_i}" if params[:page] 16 end
query_join(root_url, params_array)
click to toggle source
# File lib/finapps/utils/query_builder.rb 26 def query_join(root_url, params_array) 27 query_string = params_array.compact.join('&') 28 [root_url, query_string].reject(&:empty?).join('?') 29 end
requested(params)
click to toggle source
# File lib/finapps/utils/query_builder.rb 18 def requested(params) 19 "requested=#{params[:requested].to_i}" if params[:requested] 20 end
sort(params)
click to toggle source
# File lib/finapps/utils/query_builder.rb 22 def sort(params) 23 "sort=#{ERB::Util.url_encode(params[:sort])}" if params[:sort] 24 end