class NLBSG::SearchRequest
Constants
- ALL_SEARCH_FIELDS
- MODIFIERS
- OPTIONAL_SEARCH_FIELDS
- REQUIRED_SEARCH_FIELDS
Public Class Methods
new(string_or_hash)
click to toggle source
# File lib/nlbsg/request/search.rb, line 28 def initialize(string_or_hash) if string_or_hash.is_a?(String) @options = { keywords: string_or_hash } elsif string_or_hash.is_a?(Hash) @options = string_or_hash else raise ArgumentError end end
Public Instance Methods
build()
click to toggle source
Calls superclass method
NLBSG::RequestBase#build
# File lib/nlbsg/request/search.rb, line 38 def build search_items = prepare_search_items modifiers = prepare_modifiers query = prepare_query(search_items, modifiers) super(query) end
Private Instance Methods
add_search_item(field:, terms:)
click to toggle source
# File lib/nlbsg/request/search.rb, line 86 def add_search_item(field:, terms:) { search_field: field.to_s.split('_').collect(&:capitalize).join, search_terms: terms } end
prepare_modifiers()
click to toggle source
# File lib/nlbsg/request/search.rb, line 64 def prepare_modifiers keys = options.keys & MODIFIERS modifiers = {} keys.each do |key| modifiers[key] = options[key] end modifiers end
prepare_query(search_items, modifiers)
click to toggle source
# File lib/nlbsg/request/search.rb, line 76 def prepare_query(search_items, modifiers) { search_items: { search_item: search_items }, modifiers: modifiers } end
prepare_search_items()
click to toggle source
# File lib/nlbsg/request/search.rb, line 48 def prepare_search_items if (options.keys & REQUIRED_SEARCH_FIELDS).empty? raise ArgumentError end keys = options.keys & ALL_SEARCH_FIELDS search_items = [] keys.each do |key| search_items << add_search_item(field: key, terms: options[key]) end search_items end