module Exlibris::Primo::WebService::Request::SearchElements

Public Class Methods

included(klass) click to toggle source
# File lib/exlibris/primo/web_service/request/search/search_elements.rb, line 6
def self.included(klass)
  klass.class_eval do
    extend ClassAttributes
  end
end

Public Instance Methods

method_missing(method, *args, &block) click to toggle source

Dynamically sets attr_accessors for search_elements

Calls superclass method
# File lib/exlibris/primo/web_service/request/search/search_elements.rb, line 78
def method_missing(method, *args, &block)
  if search_elements.include?(attributize(method))
    self.class.send :attr_accessor, attributize(method)
    send method, *args, &block
  else
    super
  end
end
respond_to?(method, include_private = false) click to toggle source

Tell users that we respond to search elements accessors.

Calls superclass method
# File lib/exlibris/primo/web_service/request/search/search_elements.rb, line 90
def respond_to?(method, include_private = false)
  (search_elements.include?(attributize method)) ? true : super
end

Protected Instance Methods

default_search_elements() click to toggle source
# File lib/exlibris/primo/web_service/request/search/search_elements.rb, line 55
def default_search_elements
  @default_search_elements ||= self.class.default_search_elements
end
search_elements() click to toggle source
# File lib/exlibris/primo/web_service/request/search/search_elements.rb, line 50
def search_elements
  @search_elements ||= self.class.search_elements
end
search_elements_xml() click to toggle source

Returns a lambda that takes a Nokogiri::XML::Builder as an argument and appends search elements XML to it.

# File lib/exlibris/primo/web_service/request/search/search_elements.rb, line 64
def search_elements_xml
  lambda { |xml|
    search_elements.each do |element|
      value = (send element) ? (send element) : default_search_elements[element]
      name = element.id2name.camelize
      xml.send(name, value) unless value.nil?
    end
  }
end