ezid-client 1.4.3 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
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