Class: OAI::Provider::Base
- Inherits:
-
Object
- Object
- OAI::Provider::Base
- Includes:
- OAI::Provider
- Defined in:
- lib/oai/provider.rb
Class Attribute Summary collapse
-
.delete_support ⇒ Object
Returns the value of attribute delete_support.
-
.email ⇒ Object
Returns the value of attribute email.
-
.formats ⇒ Object
readonly
Returns the value of attribute formats.
-
.granularity ⇒ Object
Returns the value of attribute granularity.
-
.model ⇒ Object
Returns the value of attribute model.
-
.name ⇒ Object
Returns the value of attribute name.
-
.prefix ⇒ Object
Returns the value of attribute prefix.
-
.url ⇒ Object
Returns the value of attribute url.
Class Method Summary collapse
Instance Method Summary collapse
-
#get_record(options = {}) ⇒ Object
Equivalent to ‘&verb=GetRecord’, returns a record matching the required :identifier option.
-
#identify(options = {}) ⇒ Object
Equivalent to ‘&verb=Identify’, returns information about the repository.
-
#list_identifiers(options = {}) ⇒ Object
Equivalent to ‘&verb=ListIdentifiers’, returns a list of record headers that meet the supplied criteria.
-
#list_metadata_formats(options = {}) ⇒ Object
Equivalent to ‘&verb=ListMetadataFormats’, returns a list of metadata formats supported by the repository.
-
#list_records(options = {}) ⇒ Object
Equivalent to ‘&verb=ListRecords’, returns a list of records that meet the supplied criteria.
-
#list_sets(options = {}) ⇒ Object
Equivalent to ‘&verb=ListSets’, returns a list of sets that are supported by the repository or an error if sets are not supported.
-
#methodize(verb) ⇒ Object
Convert valid OAI-PMH verbs into ruby method calls.
-
#process_request(params = {}) ⇒ Object
xml_response = process_verb(‘ListRecords’, :from => ‘October 1, 2005’, :until => ‘November 1, 2005’) .
Class Attribute Details
.delete_support ⇒ Object
Returns the value of attribute delete_support.
187 188 189 |
# File 'lib/oai/provider.rb', line 187 def delete_support @delete_support end |
.email ⇒ Object
Returns the value of attribute email.
187 188 189 |
# File 'lib/oai/provider.rb', line 187 def email @email end |
.formats ⇒ Object (readonly)
Returns the value of attribute formats.
186 187 188 |
# File 'lib/oai/provider.rb', line 186 def formats @formats end |
.granularity ⇒ Object
Returns the value of attribute granularity.
187 188 189 |
# File 'lib/oai/provider.rb', line 187 def granularity @granularity end |
.model ⇒ Object
Returns the value of attribute model.
187 188 189 |
# File 'lib/oai/provider.rb', line 187 def model @model end |
.name ⇒ Object
Returns the value of attribute name.
187 188 189 |
# File 'lib/oai/provider.rb', line 187 def name @name end |
.prefix ⇒ Object
Returns the value of attribute prefix.
187 188 189 |
# File 'lib/oai/provider.rb', line 187 def prefix @prefix end |
.url ⇒ Object
Returns the value of attribute url.
187 188 189 |
# File 'lib/oai/provider.rb', line 187 def url @url end |
Class Method Details
.format(prefix) ⇒ Object
198 199 200 201 202 203 204 |
# File 'lib/oai/provider.rb', line 198 def format(prefix) if @formats[prefix].nil? raise OAI::FormatException.new else @formats[prefix] end end |
.format_supported?(prefix) ⇒ Boolean
194 195 196 |
# File 'lib/oai/provider.rb', line 194 def format_supported?(prefix) @formats.keys.include?(prefix) end |
.register_format(format) ⇒ Object
189 190 191 192 |
# File 'lib/oai/provider.rb', line 189 def register_format(format) @formats ||= {} @formats[format.prefix] = format end |
Instance Method Details
#get_record(options = {}) ⇒ Object
Equivalent to ‘&verb=GetRecord’, returns a record matching the required :identifier option
265 266 267 |
# File 'lib/oai/provider.rb', line 265 def get_record( = {}) Response::GetRecord.new(self.class, ).to_xml end |
#identify(options = {}) ⇒ Object
Equivalent to ‘&verb=Identify’, returns information about the repository
235 236 237 |
# File 'lib/oai/provider.rb', line 235 def identify( = {}) Response::Identify.new(self.class, ).to_xml end |
#list_identifiers(options = {}) ⇒ Object
Equivalent to ‘&verb=ListIdentifiers’, returns a list of record headers that meet the supplied criteria.
253 254 255 |
# File 'lib/oai/provider.rb', line 253 def list_identifiers( = {}) Response::ListIdentifiers.new(self.class, ).to_xml end |
#list_metadata_formats(options = {}) ⇒ Object
Equivalent to ‘&verb=ListMetadataFormats’, returns a list of metadata formats supported by the repository.
247 248 249 |
# File 'lib/oai/provider.rb', line 247 def ( = {}) Response::ListMetadataFormats.new(self.class, ).to_xml end |
#list_records(options = {}) ⇒ Object
Equivalent to ‘&verb=ListRecords’, returns a list of records that meet the supplied criteria.
259 260 261 |
# File 'lib/oai/provider.rb', line 259 def list_records( = {}) Response::ListRecords.new(self.class, ).to_xml end |
#list_sets(options = {}) ⇒ Object
Equivalent to ‘&verb=ListSets’, returns a list of sets that are supported by the repository or an error if sets are not supported.
241 242 243 |
# File 'lib/oai/provider.rb', line 241 def list_sets( = {}) Response::ListSets.new(self.class, ).to_xml end |
#methodize(verb) ⇒ Object
Convert valid OAI-PMH verbs into ruby method calls
298 299 300 |
# File 'lib/oai/provider.rb', line 298 def methodize(verb) verb.gsub(/[A-Z]/) {|m| "_#{m.downcase}"}.sub(/^\_/,'') end |
#process_request(params = {}) ⇒ Object
xml_response = process_verb(‘ListRecords’, :from => ‘October 1, 2005’,
:until => 'November 1, 2005')
If you are implementing a web interface using process_request is the preferred way.
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 |
# File 'lib/oai/provider.rb', line 274 def process_request(params = {}) begin # Allow the request to pass in a url self.class.url = params['url'] ? params.delete('url') : self.class.url verb = params.delete('verb') || params.delete(:verb) unless verb and OAI::Const::VERBS.keys.include?(verb) raise OAI::VerbException.new end send(methodize(verb), params) rescue => err if err.respond_to?(:code) Response::Error.new(self.class, err).to_xml else raise err end end end |