class EBSCO::EDS::Options
Attributes
Actions[RW]
Comment[RW]
RetrievalCriteria[RW]
SearchCriteria[RW]
Public Class Methods
new(options = {}, info)
click to toggle source
# File lib/ebsco/eds/options.rb, line 10 def initialize(options = {}, info) @SearchCriteria = EBSCO::EDS::SearchCriteria.new(options, info) @RetrievalCriteria = EBSCO::EDS::RetrievalCriteria.new(options, info) @Actions = [] @Comment = '' # add DefaultOn=y Type=select limiters # info.available_limiters.each do |limiter| # if limiter['DefaultOn'] == 'n' and limiter['Type'] == 'select' # @Actions.push "addLimiter(#{limiter['Id']}:y)" # end # end # add page default of 1 unless options.has_key?('page') || options.has_key?('page_number') options['page'] = 1 end options.each do |key, value| case key when :actions add_actions(options[:actions], info) # SOLR: Need to add page actions whenever other actions are present since the other actions # will always reset the page to 1 even though a PageNumber is present in RetrievalCriteria. when 'page', 'page_number' @Actions.push "GoToPage(#{value.to_i})" end end end
Public Instance Methods
add_actions(actions, info)
click to toggle source
# File lib/ebsco/eds/options.rb, line 49 def add_actions(actions, info) if actions.kind_of?(Array) && actions.count > 0 actions.each do |item| #if is_valid_action(item, info) @Actions.push item #end end else #if is_valid_action(actions, info) @Actions = [actions] #else #end end end
to_query_string()
click to toggle source
Caution: experimental, not ready for production query-1=AND,volcano&sort=relevance&includefacets=y&searchmode=all&autosuggest=n&view=brief&resultsperpage=20&pagenumber=1&highlight=y
# File lib/ebsco/eds/options.rb, line 85 def to_query_string qs = '' # SEARCH CRITERIA: # query # if @SearchCriteria.Queries[0].has_key? :BooleanOperator # qs << 'query=' + @SearchCriteria.Queries[0][:BooleanOperator] # else # qs << 'query=AND' # end # if @SearchCriteria.Queries[0].has_key? :FieldCode # qs << ',' + @SearchCriteria.Queries[0][:FieldCode] # end qs << 'query=' + @SearchCriteria.Queries[0][:Term] # mode qs << '&searchmode=' + @SearchCriteria.SearchMode # facets qs << '&includefacets=' + @SearchCriteria.IncludeFacets # sort qs << '&sort=' + @SearchCriteria.Sort # auto-suggest qs << '&autosuggest=' + @SearchCriteria.AutoSuggest # auto-correct qs << '&autocorrect=' + @SearchCriteria.AutoCorrect # limiters unless @SearchCriteria.Limiters.nil? qs << '&limiter=' + @SearchCriteria.Limiters.join(',') end # expanders qs << '&expander=' + @SearchCriteria.Expanders.join(',') # facet filters unless @SearchCriteria.FacetFilters.nil? qs << '&facetfilter=1,' + @SearchCriteria.FacetFilters.join(',') end # related content unless @SearchCriteria.RelatedContent.nil? qs << '&relatedcontent=' + @SearchCriteria.RelatedContent.join(',') end # Retrieval Criteria unless @RetrievalCriteria.View.nil? qs << '&view=' + @RetrievalCriteria.View end unless @RetrievalCriteria.ResultsPerPage.nil? qs << '&resultsperpage=' + @RetrievalCriteria.ResultsPerPage.to_s end unless @RetrievalCriteria.PageNumber.nil? qs << '&pagenumber=' + @RetrievalCriteria.PageNumber.to_s end unless @RetrievalCriteria.Highlight.nil? qs << '&highlight=' + @RetrievalCriteria.Highlight.to_s end unless @Actions.nil? @Actions.each do |action| qs << '&action=' + action end end qs end