class SearchYJ::UriManager
Manage the URI instance
@author [indeep-xyz]
Constants
- IndexError
- PageSizeError
- QUERY_DEFAULT
- SearchTermError
- URI_BASE
Public Class Methods
new(query = {})
click to toggle source
# File lib/searchyj/uri_manager.rb, line 30 def initialize(query = {}) @query = QUERY_DEFAULT.merge(query) end
Public Instance Methods
base()
click to toggle source
# File lib/searchyj/uri_manager.rb, line 42 def base URI_BASE end
index()
click to toggle source
# File lib/searchyj/uri_manager.rb, line 38 def index (@query[:b] < 1) ? 1 : @query[:b] end
index=(index)
click to toggle source
# File lib/searchyj/uri_manager.rb, line 52 def index=(index) fail IndexError unless index.is_a?(Integer) fail IndexError if index < 1 @query[:b] = index end
move_index(distance)
click to toggle source
# File lib/searchyj/uri_manager.rb, line 65 def move_index(distance) @query[:b] += distance @query[:b] = 1 if @query[:b] < 1 end
search_term()
click to toggle source
# File lib/searchyj/uri_manager.rb, line 34 def search_term @query[:p] end
search_term=(search_term)
click to toggle source
# File lib/searchyj/uri_manager.rb, line 46 def search_term=(search_term) fail SearchTermError unless search_term.is_a?(String) @query[:p] = search_term end
to_s()
click to toggle source
# File lib/searchyj/uri_manager.rb, line 59 def to_s uri = URI(URI_BASE) uri.query = create_query_string uri.to_s end
Private Instance Methods
available_value?(v)
click to toggle source
# File lib/searchyj/uri_manager.rb, line 100 def available_value?(v) (v.is_a?(Hash) || v.is_a?(Array)) && v.empty? end
create_query_string()
click to toggle source
# File lib/searchyj/uri_manager.rb, line 85 def create_query_string query = optimize_query stock = [] query.each do |k, v| next if available_value?(v) k = k.to_s unless k.is_a?(String) v = v.to_s unless v.is_a?(String) stock << "#{CGI.escape(k)}=#{CGI.escape(v)}" end stock.compact * '&' end
optimize_query()
click to toggle source
# File lib/searchyj/uri_manager.rb, line 72 def optimize_query query = @query.dup query[:b] = query[:b].to_i if query[:b].nil? || query[:b] < 2 query.delete(:b) query.delete(:pstart) end query end