class GithubSearch::SearchStringBuilder

Public Instance Methods

args_untangler(args) click to toggle source
# File lib/github-search/search_string_builder.rb, line 17
def args_untangler(args)
  search_params = "?q="
  plus = ""
  args.each do |search_term|
    search_params += "#{plus}#{search_term}"
    plus = "+"
  end
  search_params
end
build_search_string(args, opts, model) click to toggle source
# File lib/github-search/search_string_builder.rb, line 7
def build_search_string(args, opts, model)

  args_string = args_untangler(args)
  opts_string = opts_untangler(opts, model)

  search_string = args_string
  search_string += "+" if opts_string
  search_string += opts_string
end
opts_untangler(opts, model) click to toggle source
# File lib/github-search/search_string_builder.rb, line 27
def opts_untangler(opts, model)
  sort_string = sort_untangler(opts[:sort], model) if opts[:sort]
  opts.delete(:sort)

  order_string = order_untangler(opts[:order]) if opts[:order]
  opts.delete(:order)

  search_params = ""
  plus = ""
  opts.each do |key, value|
    search_params += "#{plus}#{key}:#{value}"
    plus = "+"
  end
  search_params += sort_string || ""
  search_params += order_string || ""
end
order_untangler(order_param) click to toggle source
# File lib/github-search/search_string_builder.rb, line 53
def order_untangler(order_param)
  if [:asc, :desc].include?(order_param)
    order_string = "&order=#{order_param.to_s}"
  else
    # todo: error handling
    puts "You can only order repositories with :asc or :desc (default is desc)"
  end
end
sort_untangler(sort_param, model) click to toggle source
# File lib/github-search/search_string_builder.rb, line 44
def sort_untangler(sort_param, model)
  if model.sort_options.include?(sort_param)
    sort_string = "&sort=#{sort_param.to_s}"
  else
    # todo: error handling
    puts "You can only sort a #{model} for #{model.sort_options}. (default is best match)"
  end
end