ezid-client 1.4.3 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/ezid-client.gemspec +4 -4
- data/lib/ezid/metadata.rb +19 -3
- data/spec/unit/metadata_spec.rb +31 -2
- metadata +20 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e7662a25f1a8f0b0c027298428ed9ee5714137c
|
4
|
+
data.tar.gz: ae70777a70f7ffb50fb00e49e3c86c305e0721d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68d2a8953cdf238fb34fbb861129b2a34a1e42e1aded1f3a56e3ed720507a67f4313ca67ed6ffe5e59567769c5556fedcf52ebdd69a9e500c0fb1e0893db9bf2
|
7
|
+
data.tar.gz: 8a0763e0ff8922e9ae2b0c946acf16c8da5f9b64296235efc9f5a5aac2204bd234cf897cecb3af4d87a363f7aba2d95571ce8f15f7557f6ef21d02eed49aaba9
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.5.0
|
data/ezid-client.gemspec
CHANGED
@@ -19,10 +19,10 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.required_ruby_version = "~> 2.0"
|
21
21
|
|
22
|
-
spec.add_dependency "hashie"
|
22
|
+
spec.add_dependency "hashie", "~> 3.4", ">= 3.4.3"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.7"
|
25
|
-
spec.add_development_dependency "rake"
|
26
|
-
spec.add_development_dependency "rspec", "~> 3.
|
27
|
-
spec.add_development_dependency "rspec-its"
|
25
|
+
spec.add_development_dependency "rake", "~> 10.5"
|
26
|
+
spec.add_development_dependency "rspec", "~> 3.4"
|
27
|
+
spec.add_development_dependency "rspec-its", "~> 1.2"
|
28
28
|
end
|
data/lib/ezid/metadata.rb
CHANGED
@@ -54,14 +54,21 @@ module Ezid
|
|
54
54
|
CREATED, DATACENTER, OWNER, OWNERGROUP, SHADOWEDBY, SHADOWS, UPDATED
|
55
55
|
].freeze
|
56
56
|
|
57
|
-
|
57
|
+
# @param data [String, Hash, Ezid::Metadata] the initial data
|
58
|
+
# @param default [Object] DO NOT USE!
|
59
|
+
# This param is included for compatibility with Hashie::Mash
|
60
|
+
# and will raise a NotImplementedError if passed a non-nil value.
|
61
|
+
def initialize(data=nil, default=nil)
|
62
|
+
unless default.nil?
|
63
|
+
raise ::NotImplementedError, "ezid-client does not support default metadata values."
|
64
|
+
end
|
58
65
|
super()
|
59
66
|
update(data) if data
|
60
67
|
end
|
61
68
|
|
62
69
|
def elements
|
63
|
-
warn "[DEPRECATION] `elements` is deprecated and will be removed in ezid-client 2.0." \
|
64
|
-
" Use the Ezid::Metadata instance itself instead."
|
70
|
+
warn "[DEPRECATION] `Ezid::Metadata#elements` is deprecated and will be removed in ezid-client 2.0." \
|
71
|
+
" Use the `Ezid::Metadata` instance itself instead. (called from #{caller.first})"
|
65
72
|
self
|
66
73
|
end
|
67
74
|
|
@@ -112,6 +119,15 @@ module Ezid
|
|
112
119
|
end
|
113
120
|
end
|
114
121
|
|
122
|
+
# Overrides Hashie::Mash
|
123
|
+
def convert_value(value, duping=false)
|
124
|
+
if [self.class, Hash, Array].include?(value.class)
|
125
|
+
raise Error, "ezid-client does not support instances of #{value.class} as metadata values." \
|
126
|
+
" Convert an enumerable such as an array to an appropriate string representation first."
|
127
|
+
end
|
128
|
+
value.to_s
|
129
|
+
end
|
130
|
+
|
115
131
|
private
|
116
132
|
|
117
133
|
def to_time(value)
|
data/spec/unit/metadata_spec.rb
CHANGED
@@ -1,12 +1,42 @@
|
|
1
1
|
module Ezid
|
2
2
|
RSpec.describe Metadata do
|
3
|
+
describe "initializer" do
|
4
|
+
it "raises an exception when called with a default value" do
|
5
|
+
expect { described_class.new(nil, 1) }.to raise_error(::NotImplementedError)
|
6
|
+
end
|
7
|
+
end
|
3
8
|
|
4
9
|
describe "metadata accessors and aliases" do
|
5
10
|
shared_examples "a metadata writer" do |writer|
|
11
|
+
let(:method) { "#{writer}=" }
|
6
12
|
it "writes the \"#{writer}\" element" do
|
7
|
-
subject.send(
|
13
|
+
subject.send(method, "value")
|
8
14
|
expect(subject[writer.to_s]).to eq("value")
|
9
15
|
end
|
16
|
+
describe "when the value is a Metadata instance" do
|
17
|
+
it "raises an exception" do
|
18
|
+
expect { subject.send(method, Metadata.new({foo: "value1", bar: "value2"})) }
|
19
|
+
.to raise_error(Error)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
describe "when the value is a Hash" do
|
23
|
+
it "raises an exception" do
|
24
|
+
expect { subject.send(method, {foo: "value1", bar: "value2"}) }
|
25
|
+
.to raise_error(Error)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
describe "when the value is an Array" do
|
29
|
+
it "raises an exception" do
|
30
|
+
expect { subject.send(method, ["value1", "value2"]) }
|
31
|
+
.to raise_error(Error)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
describe "when the value is another type" do
|
35
|
+
it "coerces to a string" do
|
36
|
+
subject.send(method, 1)
|
37
|
+
expect(subject[writer.to_s]).to eq "1"
|
38
|
+
end
|
39
|
+
end
|
10
40
|
end
|
11
41
|
|
12
42
|
shared_examples "a metadata reader" do |reader|
|
@@ -231,6 +261,5 @@ EOS
|
|
231
261
|
end
|
232
262
|
end
|
233
263
|
end
|
234
|
-
|
235
264
|
end
|
236
265
|
end
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ezid-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chandek-Stark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hashie
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.4'
|
17
20
|
- - ">="
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
22
|
+
version: 3.4.3
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.4'
|
24
30
|
- - ">="
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
32
|
+
version: 3.4.3
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: bundler
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,44 +48,44 @@ dependencies:
|
|
42
48
|
name: rake
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- - "
|
51
|
+
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
53
|
+
version: '10.5'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
|
-
- - "
|
58
|
+
- - "~>"
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
60
|
+
version: '10.5'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: rspec
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
65
|
- - "~>"
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: '3.
|
67
|
+
version: '3.4'
|
62
68
|
type: :development
|
63
69
|
prerelease: false
|
64
70
|
version_requirements: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
72
|
- - "~>"
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version: '3.
|
74
|
+
version: '3.4'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: rspec-its
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
|
-
- - "
|
79
|
+
- - "~>"
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
81
|
+
version: '1.2'
|
76
82
|
type: :development
|
77
83
|
prerelease: false
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
|
-
- - "
|
86
|
+
- - "~>"
|
81
87
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
88
|
+
version: '1.2'
|
83
89
|
description: Ruby client for EZID API Version 2 (http://ezid.cdlib.org/doc/apidoc.html)
|
84
90
|
email:
|
85
91
|
- dchandekstark@gmail.com
|