fieldhand 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/lib/fieldhand/response_parser.rb +1 -1
- data/spec/fieldhand/repository_spec.rb +32 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9c3e17513d85f7e8dec36a7fb9b52fa547e1f2c
|
4
|
+
data.tar.gz: dd74e19d59725bb667f959166a30bdd8506e7c85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c69eb6a4cc5d8f45716f465a4dcf1b35b760bd8c7d47449168aaa66afe1b29e70eee22cc25b31b900fbd6dfb547b594b79e31fe69132b4d22e2e9a12b756b970
|
7
|
+
data.tar.gz: a1a4fd53a7ce8e5ebd611515d9d0ae76b7e12c52d415ec05c2f0f020ddaeb74c0f7a83fcd5483aa4ff8b4842bd4b15e4c807ef3941c3de6d8ac5229896878866
|
data/README.md
CHANGED
@@ -2,19 +2,19 @@
|
|
2
2
|
|
3
3
|
A Ruby library for harvesting metadata from [OAI-PMH](https://www.openarchives.org/OAI/openarchivesprotocol.html) repositories.
|
4
4
|
|
5
|
-
**Current version:** 0.
|
5
|
+
**Current version:** 0.11.0
|
6
6
|
**Supported Ruby versions:** 1.8.7, 1.9.2, 1.9.3, 2.0, 2.1, 2.2
|
7
7
|
|
8
8
|
## Installation
|
9
9
|
|
10
10
|
```
|
11
|
-
gem install fieldhand -v '~> 0.
|
11
|
+
gem install fieldhand -v '~> 0.11'
|
12
12
|
```
|
13
13
|
|
14
14
|
Or, in your `Gemfile`:
|
15
15
|
|
16
16
|
```ruby
|
17
|
-
gem 'fieldhand', '~> 0.
|
17
|
+
gem 'fieldhand', '~> 0.11'
|
18
18
|
```
|
19
19
|
|
20
20
|
## Usage
|
@@ -115,7 +115,7 @@ A class to represent [an OAI-PMH repository](https://www.openarchives.org/OAI/op
|
|
115
115
|
Fieldhand::Repository.new('http://www.example.com/oai')
|
116
116
|
Fieldhand::Repository.new(URI('http://www.example.com/oai'))
|
117
117
|
Fieldhand::Repository.new('http://www.example.com/oai', :logger => Logger.new(STDOUT), :timeout => 10, :bearer_token => 'decafbad')
|
118
|
-
Fieldhand::Repository.new('http://www.example.com/oai', :logger => Logger.new(STDOUT), :timeout => 10, :headers => { 'Custom header' => 'decafbad')
|
118
|
+
Fieldhand::Repository.new('http://www.example.com/oai', :logger => Logger.new(STDOUT), :timeout => 10, :headers => { 'Custom header' => 'decafbad' })
|
119
119
|
```
|
120
120
|
|
121
121
|
Return a new [`Repository`](#fieldhandrepository) instance accessible at the given `uri` (specified
|
@@ -126,7 +126,7 @@ something that can be coerced into a `URI` such as a `String`) with three option
|
|
126
126
|
* `:timeout`: a `Numeric` number of seconds to wait before timing out any HTTP requests, defaults to 60;
|
127
127
|
* `:bearer_token`: a `String` bearer token to authorize any HTTP requests, defaults to `nil`.
|
128
128
|
* `:headers`: a `Hash` containing custom HTTP headers, defaults to `{}`.
|
129
|
-
|
129
|
+
|
130
130
|
#### `Fieldhand::Repository#identify`
|
131
131
|
|
132
132
|
```ruby
|
@@ -124,6 +124,29 @@ module Fieldhand
|
|
124
124
|
|
125
125
|
repository.records(:from => '2001-01-01', :until => '2002-01-01')
|
126
126
|
end
|
127
|
+
|
128
|
+
it 'returns all records for repository with namespace' do
|
129
|
+
stub_oai_request('http://www.example.com/oai?verb=ListRecords&metadataPrefix=marcxml', 'list_records_with_namespaces.xml')
|
130
|
+
repository = described_class.new('http://www.example.com/oai')
|
131
|
+
|
132
|
+
records = repository.records(:metadata_prefix => 'marcxml').to_a
|
133
|
+
expect(records.size).to eq(2)
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'populates records with the right information for repository with namespace' do
|
137
|
+
stub_oai_request('http://www.example.com/oai?verb=ListRecords&metadataPrefix=marcxml', 'list_records_with_namespaces.xml')
|
138
|
+
repository = described_class.new('http://www.example.com/oai')
|
139
|
+
record = repository.records(:metadata_prefix => 'marcxml').first
|
140
|
+
|
141
|
+
expect(record).to have_attributes(:identifier => '123456',
|
142
|
+
:datestamp => ::Date.strptime('2018-11-08'),
|
143
|
+
:sets => %w[],
|
144
|
+
:deleted? => false,
|
145
|
+
:status => nil,
|
146
|
+
:about => [],
|
147
|
+
:metadata => "<metadata><collection><record/></collection></metadata>\n"
|
148
|
+
)
|
149
|
+
end
|
127
150
|
end
|
128
151
|
|
129
152
|
describe '#identifiers' do
|
@@ -186,6 +209,15 @@ module Fieldhand
|
|
186
209
|
expect(repository.get('oai:oai.datacite.org:32356', :metadata_prefix => 'oai_dc')).
|
187
210
|
to have_attributes(:identifier => 'oai:oai.datacite.org:32356')
|
188
211
|
end
|
212
|
+
|
213
|
+
it 'fetches the record by identifier' do
|
214
|
+
stub_oai_request('http://www.example.com/oai?verb=GetRecord&metadataPrefix=marcxml&identifier=123456',
|
215
|
+
'get_record_with_namespace.xml')
|
216
|
+
repository = described_class.new('http://www.example.com/oai')
|
217
|
+
|
218
|
+
expect(repository.get('123456', :metadata_prefix => 'marcxml')).
|
219
|
+
to have_attributes(:identifier => '123456')
|
220
|
+
end
|
189
221
|
end
|
190
222
|
|
191
223
|
describe '#timeout' do
|
metadata
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fieldhand
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Mucur
|
8
8
|
- Maciej Gajewski
|
9
9
|
- Giovanni Derks
|
10
10
|
- Abeer Salameh
|
11
|
+
- Anna Klimas
|
11
12
|
autorequire:
|
12
13
|
bindir: bin
|
13
14
|
cert_chain: []
|
14
|
-
date: 2018-
|
15
|
+
date: 2018-11-12 00:00:00.000000000 Z
|
15
16
|
dependencies:
|
16
17
|
- !ruby/object:Gem::Dependency
|
17
18
|
name: ox
|