valkyrie 2.0.1 → 2.0.2
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/.circleci/config.yml +8 -0
- data/.docker-stack/valkyrie-development/docker-compose.yml +2 -2
- data/.docker-stack/valkyrie-test/docker-compose.yml +2 -2
- data/Appraisals +4 -0
- data/CHANGELOG.md +14 -0
- data/gemfiles/activerecord_6_0.gemfile +10 -0
- data/lib/valkyrie/persistence/postgres/resource_converter.rb +1 -1
- data/lib/valkyrie/resource.rb +26 -3
- data/lib/valkyrie/specs/shared_specs/persister.rb +8 -0
- data/lib/valkyrie/version.rb +1 -1
- data/tasks/dev.rake +2 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06e5a897c18679418660d531ae88c69f4ed675289080ddf712a52d2efa700344
|
4
|
+
data.tar.gz: 78c96247bff42a505751b299f3314c4028240c2e68ac727d42cb71d1f92ab8af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcbf37ca3daa89d25bf7c28d0d1684c2959fb6d26eff6ba8ca427b64f6a4413774702dd588a19e797648266b26786f526eb3b6423a2aeb48d78e8a0d4c6603f5
|
7
|
+
data.tar.gz: 20dc3cc1aacd225b29eec0d2cdafe8bc42c7d46b0bdbd4ad81af75dae79017477fb116b00320c9d4be4bf5e7aa5fcd23b6a88c8d4b5c7ac7dbaeb436ebed8caa
|
data/.circleci/config.yml
CHANGED
@@ -67,6 +67,10 @@ workflows:
|
|
67
67
|
version: 2
|
68
68
|
build:
|
69
69
|
jobs:
|
70
|
+
- build:
|
71
|
+
gemfile: "gemfiles/activerecord_6_0.gemfile"
|
72
|
+
ruby: 2.6.3
|
73
|
+
name: "Ruby2-6_Rails6-0"
|
70
74
|
- build:
|
71
75
|
gemfile: "gemfiles/activerecord_5_2.gemfile"
|
72
76
|
ruby: 2.6.3
|
@@ -100,6 +104,10 @@ workflows:
|
|
100
104
|
only:
|
101
105
|
- master
|
102
106
|
jobs:
|
107
|
+
- build:
|
108
|
+
gemfile: "gemfiles/activerecord_6_0.gemfile"
|
109
|
+
ruby: 2.6.3
|
110
|
+
name: "Ruby2-6_Rails6-0"
|
103
111
|
- build:
|
104
112
|
gemfile: "gemfiles/activerecord_5_2.gemfile"
|
105
113
|
ruby: 2.6.3
|
@@ -8,13 +8,13 @@ volumes:
|
|
8
8
|
solr_index:
|
9
9
|
services:
|
10
10
|
fedora4:
|
11
|
-
image:
|
11
|
+
image: samvera/fcrepo4:4.7.5
|
12
12
|
volumes:
|
13
13
|
- fedora4:/data
|
14
14
|
ports:
|
15
15
|
- 8986:8080
|
16
16
|
fedora5:
|
17
|
-
image:
|
17
|
+
image: samvera/fcrepo4:5.1.0
|
18
18
|
volumes:
|
19
19
|
- fedora5:/data
|
20
20
|
ports:
|
@@ -8,13 +8,13 @@ volumes:
|
|
8
8
|
solr_index:
|
9
9
|
services:
|
10
10
|
fedora4:
|
11
|
-
image:
|
11
|
+
image: samvera/fcrepo4:4.7.5
|
12
12
|
volumes:
|
13
13
|
- fedora4:/data
|
14
14
|
ports:
|
15
15
|
- 8988:8080
|
16
16
|
fedora5:
|
17
|
-
image:
|
17
|
+
image: samvera/fcrepo4:5.1.0
|
18
18
|
volumes:
|
19
19
|
- fedora5:/data
|
20
20
|
ports:
|
data/Appraisals
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
# v2.0.2 2019-10-17
|
2
|
+
|
3
|
+
## Changes since last release
|
4
|
+
|
5
|
+
* Fix nil not persisting with the ActiveRecord adapter.
|
6
|
+
[tpendragon](https://github.com/tpendragon)
|
7
|
+
* Define setters when building a Resource schema with `.attributes`
|
8
|
+
[no-reply](https://github.com/no-reply)
|
9
|
+
|
10
|
+
Additional thanks to the following for code review and issue reports leading to
|
11
|
+
this release:
|
12
|
+
|
13
|
+
[coblej](https://github.com/coblej)
|
14
|
+
|
1
15
|
# v2.0.1 2019-07-03
|
2
16
|
|
3
17
|
## Changes since last release
|
@@ -20,7 +20,7 @@ module Valkyrie::Persistence::Postgres
|
|
20
20
|
orm_object.internal_resource = resource.internal_resource
|
21
21
|
process_lock_token(orm_object)
|
22
22
|
orm_object.disable_optimistic_locking! unless resource.optimistic_locking_enabled?
|
23
|
-
orm_object.metadata
|
23
|
+
orm_object.metadata = attributes
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
data/lib/valkyrie/resource.rb
CHANGED
@@ -13,6 +13,7 @@ module Valkyrie
|
|
13
13
|
# @see https://github.com/samvera-labs/valkyrie/wiki/ChangeSets-and-Dirty-Tracking Validation and change tracking is provided by change sets
|
14
14
|
#
|
15
15
|
# @see lib/valkyrie/specs/shared_specs/resource.rb
|
16
|
+
# rubocop:disable Metrics/ClassLength
|
16
17
|
class Resource < Dry::Struct
|
17
18
|
include Draper::Decoratable
|
18
19
|
# Allows a Valkyrie::Resource to be instantiated without providing every
|
@@ -48,13 +49,34 @@ module Valkyrie
|
|
48
49
|
raise ReservedAttributeError, "#{name} is a reserved attribute and defined by Valkyrie::Resource, do not redefine it." if reserved_attributes.include?(name.to_sym) &&
|
49
50
|
attribute_names.include?(name.to_sym) &&
|
50
51
|
!internal
|
51
|
-
|
52
|
-
set_value(name, value)
|
53
|
-
end
|
52
|
+
|
54
53
|
type = type.meta(ordered: true) if name == :member_ids
|
55
54
|
super(name, type)
|
56
55
|
end
|
57
56
|
|
57
|
+
# @param [Hash{Symbol => Dry::Types::Type}] new_schema
|
58
|
+
# @return [Dry::Struct]
|
59
|
+
# @raise [RepeatedAttributeError] when trying to define attribute with the
|
60
|
+
# same name as previously defined one
|
61
|
+
# @see #attribute
|
62
|
+
# @note extends {Dry::Struct} by adding `#attr=` style setters
|
63
|
+
def self.attributes(new_schema)
|
64
|
+
super
|
65
|
+
|
66
|
+
new_schema.each_key do |key|
|
67
|
+
key = key.to_s.chomp('?')
|
68
|
+
next if instance_methods.include?("#{key}=".to_sym)
|
69
|
+
|
70
|
+
class_eval(<<-RUBY)
|
71
|
+
def #{key}=(value)
|
72
|
+
set_value("#{key}".to_sym, value)
|
73
|
+
end
|
74
|
+
RUBY
|
75
|
+
end
|
76
|
+
|
77
|
+
self
|
78
|
+
end
|
79
|
+
|
58
80
|
def self.reserved_attributes
|
59
81
|
[:id, :internal_resource, :created_at, :updated_at, :new_record]
|
60
82
|
end
|
@@ -166,4 +188,5 @@ module Valkyrie
|
|
166
188
|
|
167
189
|
class ReservedAttributeError < StandardError; end
|
168
190
|
end
|
191
|
+
# rubocop:enable Metrics/ClassLength
|
169
192
|
end
|
@@ -56,6 +56,14 @@ RSpec.shared_examples 'a Valkyrie::Persister' do |*flags|
|
|
56
56
|
output = persister.save(resource: resource)
|
57
57
|
|
58
58
|
expect(output.single_value).to eq "A single value"
|
59
|
+
|
60
|
+
reloaded = query_service.find_by(id: output.id)
|
61
|
+
|
62
|
+
reloaded.single_value = nil
|
63
|
+
persister.save(resource: reloaded)
|
64
|
+
reloaded = query_service.find_by(id: reloaded.id)
|
65
|
+
|
66
|
+
expect(reloaded.single_value).to eq nil
|
59
67
|
end
|
60
68
|
|
61
69
|
it "returns nil for an unset single value" do
|
data/lib/valkyrie/version.rb
CHANGED
data/tasks/dev.rake
CHANGED
@@ -9,7 +9,7 @@ namespace :server do
|
|
9
9
|
SolrWrapper.wrap(shared_solr_opts.merge(port: 8984, instance_dir: 'tmp/blacklight-core-test')) do |solr|
|
10
10
|
solr.with_collection(name: "blacklight-core-test", dir: Pathname.new(__dir__).join("..", "solr", "config").to_s) do
|
11
11
|
FcrepoWrapper.wrap(shared_fedora_opts.merge(port: 8988, fcrepo_home_dir: "tmp/fcrepo4-test-data", version: "4.7.5", instance_directory: "tmp/fcrepo4")) do |_fcrepo|
|
12
|
-
FcrepoWrapper::Instance.new(shared_fedora_opts.merge(port: 8998, fcrepo_home_dir: "tmp/fcrepo5-test-data", version: "5.
|
12
|
+
FcrepoWrapper::Instance.new(shared_fedora_opts.merge(port: 8998, fcrepo_home_dir: "tmp/fcrepo5-test-data", version: "5.1.0", instance_directory: "tmp/fcrepo5")).wrap do |_other_repo|
|
13
13
|
puts "Setup solr & Fedora"
|
14
14
|
loop do
|
15
15
|
sleep(1)
|
@@ -40,7 +40,7 @@ namespace :server do
|
|
40
40
|
SolrWrapper.wrap(shared_solr_opts.merge(port: 8983, instance_dir: 'tmp/blacklight-core')) do |solr|
|
41
41
|
solr.with_collection(name: "blacklight-core", dir: Pathname.new(__dir__).join("..", "solr", "config").to_s) do
|
42
42
|
FcrepoWrapper.wrap(shared_fedora_opts.merge(port: 8986, fcrepo_home_dir: "tmp/fcrepo4-dev-data", version: "4.7.5")) do |_fcrepo|
|
43
|
-
FcrepoWrapper::Instance.new(shared_fedora_opts.merge(port: 8996, fcrepo_home_dir: "tmp/fcrepo5-dev-data", version: "5.
|
43
|
+
FcrepoWrapper::Instance.new(shared_fedora_opts.merge(port: 8996, fcrepo_home_dir: "tmp/fcrepo5-dev-data", version: "5.1.0")).wrap do |_fcrepo|
|
44
44
|
puts "Setup solr & Fedora"
|
45
45
|
loop do
|
46
46
|
sleep(1)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: valkyrie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Trey Pendragon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-struct
|
@@ -452,6 +452,7 @@ files:
|
|
452
452
|
- db/seeds.rb
|
453
453
|
- gemfiles/activerecord_5_1.gemfile
|
454
454
|
- gemfiles/activerecord_5_2.gemfile
|
455
|
+
- gemfiles/activerecord_6_0.gemfile
|
455
456
|
- lib/config/database_connection.rb
|
456
457
|
- lib/generators/valkyrie/resource_generator.rb
|
457
458
|
- lib/generators/valkyrie/templates/resource.rb.erb
|