class CDMDEXER::FilteredSetSpecs

Attributes

callback[R]
oai_base_url[R]
oai_client[R]

Public Class Methods

new(oai_base_url: :missing_oai_base_url, oai_client: OaiClient, callback: CDMDEXER::DefaultSetFilterCallback.new) click to toggle source
# File lib/cdmdexer/filtered_set_specs.rb, line 13
def initialize(oai_base_url: :missing_oai_base_url,
               oai_client: OaiClient,
               callback: CDMDEXER::DefaultSetFilterCallback.new)
  @oai_base_url = oai_base_url
  @oai_client   = oai_client
  @callback     = callback
end

Public Instance Methods

filtered_sets() click to toggle source
# File lib/cdmdexer/filtered_set_specs.rb, line 25
def filtered_sets
  @filtered_sets ||= sets.select do |set|
    callback.valid?(set: set)
  end
end
set_specs() click to toggle source
# File lib/cdmdexer/filtered_set_specs.rb, line 21
def set_specs
  filtered_sets.map { |set| set['setSpec'] }
end

Private Instance Methods

list_sets() click to toggle source
# File lib/cdmdexer/filtered_set_specs.rb, line 37
def list_sets
  @list_sets ||= oai_client.new(base_url: oai_base_url).request('verb=ListSets')
end
sets() click to toggle source
# File lib/cdmdexer/filtered_set_specs.rb, line 33
def sets
  @sets ||= list_sets['OAI_PMH']['ListSets']['set']
end