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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8ea959d0a4ad802fe303de44bb8c29e1965f5a48
4
- data.tar.gz: 57fe107c3f5ad349b0a5346373aaacbf34327002
3
+ metadata.gz: 5e7662a25f1a8f0b0c027298428ed9ee5714137c
4
+ data.tar.gz: ae70777a70f7ffb50fb00e49e3c86c305e0721d0
5
5
  SHA512:
6
- metadata.gz: 8ac268c722275e747f5911820fdc21aaee8b73a7dc91018d302b7ee8c58936ba59ac5a9facfdf3365d4b62ff1c860af590872b8a78dc72ccc5be423a7d9f1909
7
- data.tar.gz: d87305f706278ce48b428b515d9dd1d397d2fc2b28d7278236695596d9f5fc08c74999fa1fef9d994f4b8f7d62e1bd7108a391893babc076d91b714213dea82d
6
+ metadata.gz: 68d2a8953cdf238fb34fbb861129b2a34a1e42e1aded1f3a56e3ed720507a67f4313ca67ed6ffe5e59567769c5556fedcf52ebdd69a9e500c0fb1e0893db9bf2
7
+ data.tar.gz: 8a0763e0ff8922e9ae2b0c946acf16c8da5f9b64296235efc9f5a5aac2204bd234cf897cecb3af4d87a363f7aba2d95571ce8f15f7557f6ef21d02eed49aaba9
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.3
1
+ 1.5.0
@@ -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.1"
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
@@ -54,14 +54,21 @@ module Ezid
54
54
  CREATED, DATACENTER, OWNER, OWNERGROUP, SHADOWEDBY, SHADOWS, UPDATED
55
55
  ].freeze
56
56
 
57
- def initialize(data=nil)
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)
@@ -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("#{writer}=", "value")
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.3
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-21 00:00:00.000000000 Z
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: '0'
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: '0'
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: '0'
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: '0'
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.1'
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.1'
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: '0'
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: '0'
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