module Exlibris::Primo::WebService::Request::BaseElements

Public Class Methods

included(klass) click to toggle source
# File lib/exlibris/primo/web_service/request/base/base_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 base_elements

Calls superclass method
# File lib/exlibris/primo/web_service/request/base/base_elements.rb, line 52
def method_missing(method, *args, &block)
  if base_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 base elements accessors.

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

Protected Instance Methods

base_elements() click to toggle source
# File lib/exlibris/primo/web_service/request/base/base_elements.rb, line 33
def base_elements
  @base_element ||= self.class.base_elements
end
base_elements_xml() click to toggle source
# File lib/exlibris/primo/web_service/request/base/base_elements.rb, line 38
def base_elements_xml
  (base_elements.collect { |opt|
    value = send(opt)
    name = opt.id2name.camelize(:lower)
    build_xml do |xml|
      xml.send(name, value) unless value.nil?
    end
  }).join
end