cocina-models 0.20.0 → 0.21.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
  SHA256:
3
- metadata.gz: db9943bd397ca96d689ba22f2d9b5f47167d24c1a00ebe140129189bc2ac870c
4
- data.tar.gz: cb1842b31d65dab3f9bf49f7ea9c228e1af92e50cbb3b4e9143d444210f26509
3
+ metadata.gz: 6579b5a67f571fcdc927fc706ede76393f43ebd308afa239c5af2b51d002cbc7
4
+ data.tar.gz: 3cf796d0d505cece4aa1f168ce3d7fdc5d3f3430cc452aec55678e0fad756c4f
5
5
  SHA512:
6
- metadata.gz: e104cabd5dc7d865028e13b90bc4646cc25d9a5b2a297156f4452f28c245bf66a9b864fe39fa8a00455f1d00063c3a780b6d5c7ff9ed40d95462a819a7c22171
7
- data.tar.gz: a9d176f0df5c1f80a0532c0877973539e4550967eda88d7b0a0fab4d74db413692f58822d8a15037bb672dd3c53b8808707d2349aedf908d108a14de574ca11c
6
+ metadata.gz: dfd14169ccf6c62d828642dd806030bc456f1838e3891b8205570f72782e47cbe3bc10b50fa175ae52bbaeafb5fd6b0bd9d756d42f08c22ef41075b682c9629b
7
+ data.tar.gz: 1503063b275634492bd6bd050c170989c01cd0051fa133bc2c9a6999b71eede591a1a3da7040d57f19ff62fe2c71f39d9c77cffbf59e1f4a510b2ee87d1d80f6
data/lib/cocina/models.rb CHANGED
@@ -48,11 +48,28 @@ module Cocina
48
48
  def self.build(dyn)
49
49
  case dyn.fetch('type')
50
50
  when *DRO::TYPES
51
- DRO.from_dynamic(dyn)
51
+ DRO.new(dyn)
52
52
  when *Collection::TYPES
53
- Collection.from_dynamic(dyn)
53
+ Collection.new(dyn)
54
54
  when *AdminPolicy::TYPES
55
- AdminPolicy.from_dynamic(dyn)
55
+ AdminPolicy.new(dyn)
56
+ else
57
+ raise UnknownTypeError, "Unknown type: '#{dyn.fetch('type')}'"
58
+ end
59
+ end
60
+
61
+ # @param [Hash] dyn a ruby hash representation of the JSON serialization of a request for a Collection or DRO
62
+ # @return [RequestDRO,RequestCollection,RequestAdminPolicy]
63
+ # @raises [UnknownTypeError] if a valid type is not found in the data
64
+ # @raises [KeyError] if a type field cannot be found in the data
65
+ def self.build_request(dyn)
66
+ case dyn.fetch('type')
67
+ when *DRO::TYPES
68
+ RequestDRO.new(dyn)
69
+ when *Collection::TYPES
70
+ RequestCollection.new(dyn)
71
+ when *AdminPolicy::TYPES
72
+ RequestAdminPolicy.new(dyn)
56
73
  else
57
74
  raise UnknownTypeError, "Unknown type: '#{dyn.fetch('type')}'"
58
75
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Cocina
4
4
  module Models
5
- VERSION = '0.20.0'
5
+ VERSION = '0.21.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocina-models
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne