Class: OAI::Provider::Model
- Inherits:
-
Object
- Object
- OAI::Provider::Model
- Defined in:
- lib/oai/provider/model.rb
Overview
OAI::Provider::Model
Model implementers should subclass OAI::Provider::Model and override Model#earliest, Model#latest, and Model#find. Optionally Model#sets and Model#deleted? can be used to support sets and record deletions. It is also the responsibility of the model implementer to account for resumption tokens if support is required. Models that don’t support resumption tokens should raise an exception if a limit is requested during initialization.
earliest - should return the earliest update time in the repository. latest - should return the most recent update time in the repository. sets - should return an array of sets supported by the repository. deleted? - individual records returned should respond true or false when sent the deleted? message. available_formats - if overridden, individual records should return an array of prefixes for all formats in which that record is available, if other than [“oai_dc”] about - if overridden, should return a String or Array of XML Strings to insert into the OAI Record <about> chunks.
Resumption Tokens
For examples of using resumption tokens see the ActiveRecordWrapper, and ActiveRecordCachingWrapper classes.
There are several helper models for dealing with resumption tokens please see the ResumptionToken class for more details.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#identifier_field ⇒ Object
readonly
Returns the value of attribute identifier_field.
-
#timestamp_field ⇒ Object
readonly
Returns the value of attribute timestamp_field.
Instance Method Summary collapse
-
#about(record) ⇒ Object
can return a String or Array of XML Strings add as OAI Record <about> chunks.
- #deleted? ⇒ Boolean
-
#earliest ⇒ Object
should return the earliest timestamp available from this model.
-
#find(selector, options = {}) ⇒ Object
find is the core method of a model, it returns records from the model bases on the parameters passed in.
-
#initialize(limit = nil, timestamp_field = 'updated_at', identifier_field = 'id') ⇒ Model
constructor
A new instance of Model.
-
#latest ⇒ Object
should return the latest timestamp available from this model.
- #sets ⇒ Object
Constructor Details
#initialize(limit = nil, timestamp_field = 'updated_at', identifier_field = 'id') ⇒ Model
Returns a new instance of Model.
34 35 36 37 38 |
# File 'lib/oai/provider/model.rb', line 34 def initialize(limit = nil, = 'updated_at', identifier_field = 'id') @limit = limit @identifier_field = identifier_field @timestamp_field = end |
Instance Attribute Details
#identifier_field ⇒ Object (readonly)
Returns the value of attribute identifier_field.
32 33 34 |
# File 'lib/oai/provider/model.rb', line 32 def identifier_field @identifier_field end |
#timestamp_field ⇒ Object (readonly)
Returns the value of attribute timestamp_field.
32 33 34 |
# File 'lib/oai/provider/model.rb', line 32 def @timestamp_field end |
Instance Method Details
#about(record) ⇒ Object
can return a String or Array of XML Strings add as OAI Record <about> chunks.
75 76 77 |
# File 'lib/oai/provider/model.rb', line 75 def about record nil end |
#deleted? ⇒ Boolean
70 71 72 |
# File 'lib/oai/provider/model.rb', line 70 def deleted? false end |
#earliest ⇒ Object
should return the earliest timestamp available from this model.
41 42 43 |
# File 'lib/oai/provider/model.rb', line 41 def earliest raise NotImplementedError.new end |
#find(selector, options = {}) ⇒ Object
find is the core method of a model, it returns records from the model bases on the parameters passed in.
selector
can be a singular id, or the symbol :all options
is a hash of options to be used to constrain the query.
Valid options:
-
:from => earliest timestamp to be included in the results
-
:until => latest timestamp to be included in the results
-
:set => the set from which to retrieve the results
-
:metadata_prefix => type of metadata requested (this may be useful if
not all records are available in all formats)
66 67 68 |
# File 'lib/oai/provider/model.rb', line 66 def find(selector, ={}) raise NotImplementedError.new end |
#latest ⇒ Object
should return the latest timestamp available from this model.
46 47 48 |
# File 'lib/oai/provider/model.rb', line 46 def latest raise NotImplementedError.new end |
#sets ⇒ Object
50 51 52 |
# File 'lib/oai/provider/model.rb', line 50 def sets nil end |