active-fedora 9.6.2 → 9.7.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/History.txt +19 -0
- data/lib/active_fedora/associations/indirectly_contains_association.rb +1 -1
- data/lib/active_fedora/attached_files.rb +1 -1
- data/lib/active_fedora/attributes/active_triple_attribute.rb +2 -2
- data/lib/active_fedora/errors.rb +1 -1
- data/lib/active_fedora/fedora_attributes.rb +2 -0
- data/lib/active_fedora/file.rb +2 -2
- data/lib/active_fedora/file_configurator.rb +7 -0
- data/lib/active_fedora/indexing.rb +2 -2
- data/lib/active_fedora/loadable_from_json.rb +5 -1
- data/lib/active_fedora/om_datastream.rb +1 -1
- data/lib/active_fedora/persistence.rb +11 -7
- data/lib/active_fedora/relation/finder_methods.rb +1 -1
- data/lib/active_fedora/solr_query_builder.rb +3 -3
- data/lib/active_fedora/version.rb +1 -1
- data/lib/generators/active_fedora/model/templates/model.rb.erb +4 -4
- data/spec/integration/associations_spec.rb +1 -1
- data/spec/integration/attributes_spec.rb +1 -1
- data/spec/integration/base_spec.rb +2 -2
- data/spec/integration/caching_spec.rb +1 -1
- data/spec/integration/clean_connection_spec.rb +2 -2
- data/spec/integration/collection_association_spec.rb +1 -1
- data/spec/integration/complex_rdf_datastream_spec.rb +5 -5
- data/spec/integration/contains_association_spec.rb +1 -1
- data/spec/integration/datastream_rdf_nested_attributes_spec.rb +3 -3
- data/spec/integration/date_time_properties_spec.rb +6 -2
- data/spec/integration/field_to_solr_name_spec.rb +2 -2
- data/spec/integration/gone_spec.rb +41 -0
- data/spec/integration/has_and_belongs_to_many_associations_spec.rb +1 -1
- data/spec/integration/has_many_associations_spec.rb +1 -1
- data/spec/integration/indirect_container_spec.rb +9 -2
- data/spec/integration/json_serialization_spec.rb +3 -3
- data/spec/integration/nested_hash_resources_spec.rb +2 -2
- data/spec/integration/ntriples_datastream_spec.rb +5 -5
- data/spec/integration/rdf_nested_attributes_spec.rb +1 -1
- data/spec/integration/solr_instance_loader_spec.rb +3 -3
- data/spec/integration/versionable_spec.rb +2 -2
- data/spec/integration/with_metadata_spec.rb +1 -1
- data/spec/unit/attributes_spec.rb +6 -6
- data/spec/unit/base_spec.rb +5 -5
- data/spec/unit/change_set_spec.rb +7 -7
- data/spec/unit/core_spec.rb +1 -1
- data/spec/unit/file_configurator_spec.rb +9 -0
- data/spec/unit/has_many_association_spec.rb +2 -2
- data/spec/unit/indexing_spec.rb +2 -2
- data/spec/unit/loadable_from_json_spec.rb +14 -5
- data/spec/unit/ntriples_datastream_spec.rb +13 -13
- data/spec/unit/pathing_spec.rb +1 -1
- data/spec/unit/predicates_spec.rb +1 -1
- data/spec/unit/property_predicate_spec.rb +4 -4
- data/spec/unit/query_spec.rb +3 -4
- data/spec/unit/rdf/indexing_service_spec.rb +4 -4
- data/spec/unit/rdf_datastream_spec.rb +3 -3
- data/spec/unit/rdf_resource_datastream_spec.rb +5 -5
- data/spec/unit/rdfxml_datastream_spec.rb +1 -1
- data/spec/unit/reflection_spec.rb +1 -1
- data/spec/unit/sparql_insert_spec.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 02451c4f7df1542ec57c845259cc21eefd0aff2b
|
|
4
|
+
data.tar.gz: a689c5b349b6e55b1e63af345f1e81eac669e51a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6e5b2b77aa673793101dfe20d17d7b6b58a8e936d10d5d9bd5d1285f392ada51b25808a89d1dd147dc6827868110d22ce868337b2b078e7ecd20b61ad5d9445f
|
|
7
|
+
data.tar.gz: cb38ad07691ed932faa31de89fdc1278b6b8f581e251fd9fd37a84a1fdc9c61b2c5a80eb889c90b3ff85c6553b70941b07e4db680f7ff21df3ee2ab0e778eff7
|
data/History.txt
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
v9.7.0
|
|
2
|
+
2015-11-25 : Allowing access to the gone? method from outside the object [Carolyn Cole]
|
|
3
|
+
|
|
4
|
+
2015-11-24 : Use rdf-vocab gem for DC vocab [Justin Coyne]
|
|
5
|
+
|
|
6
|
+
2015-11-24 : Silence deprecation warning in test [Justin Coyne]
|
|
7
|
+
|
|
8
|
+
2015-11-24 : Test deprecation using mocks [Justin Coyne]
|
|
9
|
+
|
|
10
|
+
2015-11-24 : Give an error when the user queries for a non-existant reflection [Justin Coyne]
|
|
11
|
+
|
|
12
|
+
2015-11-20 : Re-add get_config_path method (removed in 9.6.0) with deprecation warning. [Jim Coble]
|
|
13
|
+
|
|
14
|
+
2015-11-11 : Don't try to parse empty dates [Adam Wead]
|
|
15
|
+
|
|
16
|
+
2015-11-10 : Adds explicit require of 'rdf/vocab'. [David Chandek-Stark]
|
|
17
|
+
|
|
18
|
+
2015-11-09 : ids_reader should not return duplicates. [Trey Terrell]
|
|
19
|
+
|
|
1
20
|
v9.6.2
|
|
2
21
|
2015-11-07: Fixes for new version of rubocop [Justin Coyne]
|
|
3
22
|
|
|
@@ -63,7 +63,7 @@ module ActiveFedora
|
|
|
63
63
|
# Add an ActiveFedora::File to the object.
|
|
64
64
|
# @param [ActiveFedora::File] file
|
|
65
65
|
# @param [String] file_path
|
|
66
|
-
# @param [Hash]
|
|
66
|
+
# @param [Hash] _opts
|
|
67
67
|
# @return [String] path of the added datastream
|
|
68
68
|
def attach_file(file, file_path, _opts = {})
|
|
69
69
|
create_singleton_association(file_path)
|
|
@@ -3,8 +3,8 @@ module ActiveFedora
|
|
|
3
3
|
#
|
|
4
4
|
# @example
|
|
5
5
|
# class Book < ActiveFedora::Base
|
|
6
|
-
# property :title, predicate: ::RDF::DC.title
|
|
7
|
-
# property :author, predicate: ::RDF::DC.creator
|
|
6
|
+
# property :title, predicate: ::RDF::Vocab::DC.title
|
|
7
|
+
# property :author, predicate: ::RDF::Vocab::DC.creator
|
|
8
8
|
# end
|
|
9
9
|
#
|
|
10
10
|
# Book.attribute_names
|
data/lib/active_fedora/errors.rb
CHANGED
|
@@ -56,7 +56,7 @@ module ActiveFedora #:nodoc:
|
|
|
56
56
|
# Raised when the data has more than one statement for a predicate, but our constraints say it's singular
|
|
57
57
|
# This helps to prevent overwriting multiple values with a single value when round tripping:
|
|
58
58
|
# class Book < ActiveFedora::Base
|
|
59
|
-
# property :title, predicate: RDF::DC.title, multiple: false
|
|
59
|
+
# property :title, predicate: RDF::Vocab::DC.title, multiple: false
|
|
60
60
|
# end
|
|
61
61
|
#
|
|
62
62
|
# b = Book.new
|
data/lib/active_fedora/file.rb
CHANGED
|
@@ -27,8 +27,8 @@ module ActiveFedora
|
|
|
27
27
|
define_model_callbacks :initialize, only: :after
|
|
28
28
|
|
|
29
29
|
# @param parent_or_url_or_hash [ActiveFedora::Base, RDF::URI, String, Hash, NilClass] the parent resource or the URI of this resource
|
|
30
|
-
# @param
|
|
31
|
-
# @param
|
|
30
|
+
# @param [String] path the path partial relative to the resource
|
|
31
|
+
# @param [Hash] _options
|
|
32
32
|
# @yield [self] Yields self
|
|
33
33
|
# @yieldparam [File] self the newly created file
|
|
34
34
|
def initialize(parent_or_url_or_hash = nil, path = nil, _options = {}, &_block)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
require 'deprecation'
|
|
1
2
|
require 'erb'
|
|
2
3
|
require 'yaml'
|
|
3
4
|
|
|
4
5
|
module ActiveFedora
|
|
5
6
|
class FileConfigurator
|
|
7
|
+
extend Deprecation
|
|
6
8
|
# Initializes ActiveFedora's connection to Fedora and Solr based on the info in fedora.yml and solr.yml
|
|
7
9
|
# NOTE: this deprecates the use of a solr url in the fedora.yml
|
|
8
10
|
#
|
|
@@ -160,6 +162,11 @@ module ActiveFedora
|
|
|
160
162
|
end
|
|
161
163
|
end
|
|
162
164
|
|
|
165
|
+
def get_config_path(config_type)
|
|
166
|
+
Deprecation.warn(FileConfigurator, "get_config_path is deprecated and will be removed in ActiveFedora 10. Use config_path instead.")
|
|
167
|
+
config_path(config_type)
|
|
168
|
+
end
|
|
169
|
+
|
|
163
170
|
# Determine the fedora config file to use. Order of preference is:
|
|
164
171
|
# 1. Use the config_options[:config_path] if it exists
|
|
165
172
|
# 2. Look in +Rails.root+/config/fedora.yml
|
|
@@ -16,8 +16,8 @@ module ActiveFedora
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
# Return a Hash representation of this object where keys in the hash are appropriate Solr field names.
|
|
19
|
-
# @param [Hash]
|
|
20
|
-
# @param [Hash]
|
|
19
|
+
# @param [Hash] _solr_doc (optional) Hash to insert the fields into
|
|
20
|
+
# @param [Hash] _opts (optional)
|
|
21
21
|
# If opts[:model_only] == true, the base object metadata and the RELS-EXT datastream will be omitted. This is mainly to support shelver, which calls #to_solr for each model an object subscribes to.
|
|
22
22
|
def to_solr(_solr_doc = {}, _opts = {})
|
|
23
23
|
indexing_service.generate_solr_document
|
|
@@ -103,8 +103,11 @@ module ActiveFedora
|
|
|
103
103
|
end
|
|
104
104
|
end
|
|
105
105
|
|
|
106
|
+
# Find the reflection on the model that uses the given predicate
|
|
106
107
|
def reflection(predicate)
|
|
107
|
-
Array(@model.outgoing_reflections.find { |_key, reflection| reflection.predicate == predicate }).first
|
|
108
|
+
result = Array(@model.outgoing_reflections.find { |_key, reflection| reflection.predicate == predicate }).first
|
|
109
|
+
return result if result
|
|
110
|
+
fail "Unable to find reflection for #{predicate} in #{@model}"
|
|
108
111
|
end
|
|
109
112
|
end
|
|
110
113
|
|
|
@@ -179,6 +182,7 @@ module ActiveFedora
|
|
|
179
182
|
# @return [Object] the adapted value
|
|
180
183
|
def adapt_single_attribute_value(value, attribute_name)
|
|
181
184
|
if value && date_attribute?(attribute_name)
|
|
185
|
+
return nil unless value.present?
|
|
182
186
|
DateTime.parse(value)
|
|
183
187
|
else
|
|
184
188
|
value
|
|
@@ -60,7 +60,7 @@ module ActiveFedora
|
|
|
60
60
|
#
|
|
61
61
|
# @param [Hash] params The params specifying which fields to update and their new values. The syntax of the params Hash is the same as that expected by
|
|
62
62
|
# term_pointers must be a valid OM Term pointers (ie. [:name]). Strings will be ignored.
|
|
63
|
-
# @param [Hash]
|
|
63
|
+
# @param [Hash] _opts This is not currently used by the datastream-level update_indexed_attributes method
|
|
64
64
|
#
|
|
65
65
|
# Example:
|
|
66
66
|
# @mods_ds.update_indexed_attributes( {[{":person"=>"0"}, "role"]=>{"0"=>"role1", "1"=>"role2", "2"=>"role3"} })
|
|
@@ -114,14 +114,18 @@ module ActiveFedora
|
|
|
114
114
|
gone?(uri) ? delete_tombstone(uri) : false
|
|
115
115
|
end
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
# Allows the user to find out if an id has been used in the system and then been deleted
|
|
118
|
+
# @param uri id in fedora that may or may not have been deleted
|
|
119
|
+
def gone?(uri)
|
|
120
|
+
ActiveFedora::Base.find(uri)
|
|
121
|
+
false
|
|
122
|
+
rescue Ldp::Gone
|
|
123
|
+
true
|
|
124
|
+
rescue ActiveFedora::ObjectNotFoundError
|
|
125
|
+
false
|
|
126
|
+
end
|
|
118
127
|
|
|
119
|
-
|
|
120
|
-
ActiveFedora::Base.find(uri)
|
|
121
|
-
false
|
|
122
|
-
rescue Ldp::Gone
|
|
123
|
-
true
|
|
124
|
-
end
|
|
128
|
+
private
|
|
125
129
|
|
|
126
130
|
def delete_tombstone(uri)
|
|
127
131
|
tombstone = ActiveFedora::Base.id_to_uri(uri) + "/fcr:tombstone"
|
|
@@ -258,7 +258,7 @@ module ActiveFedora
|
|
|
258
258
|
end
|
|
259
259
|
|
|
260
260
|
# @param [Hash<Symbol,String>] conditions
|
|
261
|
-
# @
|
|
261
|
+
# @return [Array<String>]
|
|
262
262
|
def create_query_from_hash(conditions)
|
|
263
263
|
conditions.map { |key, value| condition_to_clauses(key, value) }.compact
|
|
264
264
|
end
|
|
@@ -37,9 +37,9 @@ module ActiveFedora
|
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
# Construct a solr query from a list of pairs (e.g. [field name, values])
|
|
40
|
-
# @param [Array<Array>]
|
|
40
|
+
# @param [Array<Array>] field_pairs a list of pairs of property name and values
|
|
41
41
|
# @param [String] join_with ('AND') the value we're joining the clauses with
|
|
42
|
-
# @
|
|
42
|
+
# @return [String] a solr query
|
|
43
43
|
# @example
|
|
44
44
|
# construct_query([['library_id_ssim', '123'], ['owner_ssim', 'Fred']])
|
|
45
45
|
# # => "_query_:\"{!raw f=library_id_ssim}123\" AND _query_:\"{!raw f=owner_ssim}Fred\""
|
|
@@ -91,7 +91,7 @@ module ActiveFedora
|
|
|
91
91
|
# Given a list of pairs (e.g. [field name, values]), convert the field names
|
|
92
92
|
# to solr names
|
|
93
93
|
# @param [Array<Array>] pairs a list of pairs of property name and values
|
|
94
|
-
# @
|
|
94
|
+
# @return [Hash] map of solr fields to values
|
|
95
95
|
# @example
|
|
96
96
|
# property_values_to_solr([['library_id', '123'], ['owner', 'Fred']])
|
|
97
97
|
# # => [['library_id_ssim', '123'], ['owner_ssim', 'Fred']]
|
|
@@ -6,16 +6,16 @@ class <%= class_name %> < ActiveFedora::Base
|
|
|
6
6
|
<% else %>
|
|
7
7
|
# Define some properties to store:
|
|
8
8
|
#
|
|
9
|
-
property :title, predicate: ::RDF::DC.title do |index|
|
|
9
|
+
property :title, predicate: ::RDF::Vocab::DC.title do |index|
|
|
10
10
|
index.as :stored_searchable, :facetable
|
|
11
11
|
end
|
|
12
|
-
property :creator, predicate: ::RDF::DC.creator do |index|
|
|
12
|
+
property :creator, predicate: ::RDF::Vocab::DC.creator do |index|
|
|
13
13
|
index.as :stored_searchable, :facetable
|
|
14
14
|
end
|
|
15
|
-
property :contributor, predicate: ::RDF::DC.contributor do |index|
|
|
15
|
+
property :contributor, predicate: ::RDF::Vocab::DC.contributor do |index|
|
|
16
16
|
index.as :stored_searchable, :facetable
|
|
17
17
|
end
|
|
18
|
-
property :description, predicate: ::RDF::DC.description do |index|
|
|
18
|
+
property :description, predicate: ::RDF::Vocab::DC.description do |index|
|
|
19
19
|
index.as :stored_searchable
|
|
20
20
|
end
|
|
21
21
|
<%- end -%>
|
|
@@ -4,7 +4,7 @@ describe ActiveFedora::Base do
|
|
|
4
4
|
describe "use a URI as the property" do
|
|
5
5
|
before do
|
|
6
6
|
class Book < ActiveFedora::Base
|
|
7
|
-
belongs_to :author, predicate: ::RDF::DC.creator, class_name: 'Person'
|
|
7
|
+
belongs_to :author, predicate: ::RDF::Vocab::DC.creator, class_name: 'Person'
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
class Person < ActiveFedora::Base
|
|
@@ -25,7 +25,7 @@ describe "delegating attributes" do
|
|
|
25
25
|
end
|
|
26
26
|
has_attributes :wrangler, datastream: :foo, multiple: true
|
|
27
27
|
end
|
|
28
|
-
property :resource_type, predicate: ::RDF::DC.type do |index|
|
|
28
|
+
property :resource_type, predicate: ::RDF::Vocab::DC.type do |index|
|
|
29
29
|
index.as :stored_searchable, :facetable
|
|
30
30
|
end
|
|
31
31
|
end
|
|
@@ -82,7 +82,7 @@ describe ActiveFedora::Base do
|
|
|
82
82
|
before do
|
|
83
83
|
class Book < ActiveFedora::Base
|
|
84
84
|
type [::RDF::URI("http://www.example.com/Book")]
|
|
85
|
-
property :title, predicate: ::RDF::DC.title
|
|
85
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
86
86
|
end
|
|
87
87
|
end
|
|
88
88
|
|
|
@@ -151,7 +151,7 @@ describe ActiveFedora::Base do
|
|
|
151
151
|
describe "#apply_schema" do
|
|
152
152
|
before do
|
|
153
153
|
class ExampleSchema < ActiveTriples::Schema
|
|
154
|
-
property :title, predicate: RDF::DC.title
|
|
154
|
+
property :title, predicate: RDF::Vocab::DC.title
|
|
155
155
|
end
|
|
156
156
|
class ExampleBase < ActiveFedora::Base
|
|
157
157
|
apply_schema ExampleSchema, ActiveFedora::SchemaIndexingStrategy.new(ActiveFedora::Indexers::GlobalIndexer.new(:symbol))
|
|
@@ -7,14 +7,14 @@ RSpec.describe ActiveFedora::CleanConnection do
|
|
|
7
7
|
let(:uri) { asset.rdf_subject }
|
|
8
8
|
let(:asset) do
|
|
9
9
|
ActiveFedora::Base.create do |a|
|
|
10
|
-
a.resource << [a.rdf_subject, RDF::DC.title, "test"]
|
|
10
|
+
a.resource << [a.rdf_subject, RDF::Vocab::DC.title, "test"]
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
let(:result) { subject.get(uri) }
|
|
14
14
|
it "returns a clean graph" do
|
|
15
15
|
graph = result.graph
|
|
16
16
|
expect(graph.statements.to_a.length).to eq 1
|
|
17
|
-
expect(graph.statements.to_a.first).to eq [asset.rdf_subject, RDF::DC.title, "test"]
|
|
17
|
+
expect(graph.statements.to_a.first).to eq [asset.rdf_subject, RDF::Vocab::DC.title, "test"]
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
end
|
|
@@ -114,7 +114,7 @@ describe ActiveFedora::Base do
|
|
|
114
114
|
context "when classes are namespaced" do
|
|
115
115
|
before do
|
|
116
116
|
class Item < ActiveFedora::Base
|
|
117
|
-
has_and_belongs_to_many :container, predicate: ::RDF::DC.extent, class_name: 'Foo::Container'
|
|
117
|
+
has_and_belongs_to_many :container, predicate: ::RDF::Vocab::DC.extent, class_name: 'Foo::Container'
|
|
118
118
|
end
|
|
119
119
|
module Foo
|
|
120
120
|
class Container < ActiveFedora::Base
|
|
@@ -4,10 +4,10 @@ describe "Nested Rdf Objects" do
|
|
|
4
4
|
describe "without type" do
|
|
5
5
|
before do
|
|
6
6
|
class SpecDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
7
|
-
property :parts, predicate: ::RDF::DC.hasPart, class_name: 'Component'
|
|
7
|
+
property :parts, predicate: ::RDF::Vocab::DC.hasPart, class_name: 'Component'
|
|
8
8
|
|
|
9
9
|
class Component < ActiveTriples::Resource
|
|
10
|
-
property :label, predicate: ::RDF::DC.title
|
|
10
|
+
property :label, predicate: ::RDF::Vocab::DC.title
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
end
|
|
@@ -128,11 +128,11 @@ END
|
|
|
128
128
|
describe "one class per assertion" do
|
|
129
129
|
before(:each) do
|
|
130
130
|
class SpecDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
131
|
-
property :mediator, predicate: ::RDF::DC.mediator, class_name: 'MediatorUser'
|
|
131
|
+
property :mediator, predicate: ::RDF::Vocab::DC.mediator, class_name: 'MediatorUser'
|
|
132
132
|
|
|
133
133
|
class MediatorUser < ActiveTriples::Resource
|
|
134
|
-
configure type: ::RDF::DC.AgentClass
|
|
135
|
-
property :title, predicate: ::RDF::DC.title
|
|
134
|
+
configure type: ::RDF::Vocab::DC.AgentClass
|
|
135
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
136
136
|
end
|
|
137
137
|
end
|
|
138
138
|
end
|
|
@@ -4,7 +4,7 @@ RSpec.describe ActiveFedora::Base do
|
|
|
4
4
|
before do
|
|
5
5
|
class Source < ActiveFedora::Base
|
|
6
6
|
contains :sub_resource, class_name: "Source"
|
|
7
|
-
property :title, predicate: ::RDF::DC.title, multiple: false
|
|
7
|
+
property :title, predicate: ::RDF::Vocab::DC.title, multiple: false
|
|
8
8
|
end
|
|
9
9
|
end
|
|
10
10
|
after do
|
|
@@ -27,7 +27,7 @@ describe "Nesting attribute behavior of RDFDatastream" do
|
|
|
27
27
|
class ComplexRDFDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
28
28
|
property :topic, predicate: DummyMADS.Topic, class_name: "Topic"
|
|
29
29
|
property :personalName, predicate: DummyMADS.PersonalName, class_name: "PersonalName"
|
|
30
|
-
property :title, predicate: ::RDF::DC.title
|
|
30
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
31
31
|
|
|
32
32
|
accepts_nested_attributes_for :topic, :personalName
|
|
33
33
|
|
|
@@ -142,11 +142,11 @@ describe "Nesting attribute behavior of RDFDatastream" do
|
|
|
142
142
|
describe "with an existing object" do
|
|
143
143
|
before(:each) do
|
|
144
144
|
class SpecDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
145
|
-
property :parts, predicate: ::RDF::DC.hasPart, class_name: 'Component'
|
|
145
|
+
property :parts, predicate: ::RDF::Vocab::DC.hasPart, class_name: 'Component'
|
|
146
146
|
accepts_nested_attributes_for :parts, allow_destroy: true
|
|
147
147
|
|
|
148
148
|
class Component < ActiveTriples::Resource
|
|
149
|
-
property :label, predicate: ::RDF::DC.title
|
|
149
|
+
property :label, predicate: ::RDF::Vocab::DC.title
|
|
150
150
|
end
|
|
151
151
|
end
|
|
152
152
|
end
|
|
@@ -4,11 +4,15 @@ describe ActiveFedora::Base do
|
|
|
4
4
|
before do
|
|
5
5
|
class Foo < ActiveFedora::Base
|
|
6
6
|
# Date attributes are recognized by having index.type :Date or class_name: 'DateTime'
|
|
7
|
-
property :date, predicate: ::RDF::DC.date do |index|
|
|
7
|
+
property :date, predicate: ::RDF::Vocab::DC.date do |index|
|
|
8
8
|
index.type :date
|
|
9
9
|
end
|
|
10
|
+
property :integer, predicate: ::RDF::URI.new('http://www.example.com/integer'), multiple: false do |index|
|
|
11
|
+
index.type :integer
|
|
12
|
+
end
|
|
10
13
|
property :single_date, multiple: false, class_name: 'DateTime', predicate: ::RDF::URI.new('http://www.example.com/single_date')
|
|
11
14
|
property :missing_date, multiple: false, class_name: 'DateTime', predicate: ::RDF::URI.new('http://www.example.com/missing_date')
|
|
15
|
+
property :empty_date, multiple: false, class_name: 'DateTime', predicate: ::RDF::URI.new('http://www.example.com/empty_date')
|
|
12
16
|
end
|
|
13
17
|
end
|
|
14
18
|
|
|
@@ -18,7 +22,7 @@ describe ActiveFedora::Base do
|
|
|
18
22
|
|
|
19
23
|
let(:date) { DateTime.parse("2015-10-22T10:20:03.653+01:00") }
|
|
20
24
|
let(:date2) { DateTime.parse("2015-10-22T15:34:20.323-11:00") }
|
|
21
|
-
subject { Foo.create(date: [date], single_date: date2).reload }
|
|
25
|
+
subject { Foo.create(date: [date], single_date: date2, empty_date: '', integer: 1).reload }
|
|
22
26
|
|
|
23
27
|
describe "saving and loading in Fedora" do
|
|
24
28
|
it "loads the correct time" do
|
|
@@ -5,10 +5,10 @@ describe "An object with RDF backed attributes" do
|
|
|
5
5
|
class TestOne < ActiveFedora::Base
|
|
6
6
|
class MyMetadata < ActiveFedora::NtriplesRDFDatastream
|
|
7
7
|
Deprecation.silence(ActiveFedora::RDFDatastream) do
|
|
8
|
-
property :title, predicate: ::RDF::DC.title do |index|
|
|
8
|
+
property :title, predicate: ::RDF::Vocab::DC.title do |index|
|
|
9
9
|
index.as :stored_searchable
|
|
10
10
|
end
|
|
11
|
-
property :date_uploaded, predicate: ::RDF::DC.dateSubmitted do |index|
|
|
11
|
+
property :date_uploaded, predicate: ::RDF::Vocab::DC.dateSubmitted do |index|
|
|
12
12
|
index.type :date
|
|
13
13
|
index.as :stored_searchable, :sortable
|
|
14
14
|
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe ActiveFedora::Base do
|
|
4
|
+
before(:all) do
|
|
5
|
+
class ResurrectionModel < ActiveFedora::Base
|
|
6
|
+
after_destroy :eradicate
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
after(:all) do
|
|
11
|
+
Object.send(:remove_const, :ResurrectionModel)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
context "when an object is has already been deleted" do
|
|
15
|
+
let(:ghost) do
|
|
16
|
+
obj = described_class.create
|
|
17
|
+
obj.destroy
|
|
18
|
+
obj.id
|
|
19
|
+
end
|
|
20
|
+
it "is gone" do
|
|
21
|
+
expect(described_class.gone?(ghost)).to be true
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
context "when the id has never been used" do
|
|
26
|
+
let(:id) { "abc123" }
|
|
27
|
+
it "is not gone" do
|
|
28
|
+
expect(described_class.gone?(id)).to be false
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
context "when the id is in use" do
|
|
33
|
+
let(:active) do
|
|
34
|
+
obj = described_class.create
|
|
35
|
+
obj.id
|
|
36
|
+
end
|
|
37
|
+
it "is not gone" do
|
|
38
|
+
expect(described_class.gone?(active)).to be false
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -371,7 +371,7 @@ describe ActiveFedora::Associations::HasManyAssociation do
|
|
|
371
371
|
|
|
372
372
|
class Book < ActiveFedora::Base
|
|
373
373
|
belongs_to :library, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.hasConstituent
|
|
374
|
-
property :title, predicate: ::RDF::DC.title
|
|
374
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
375
375
|
end
|
|
376
376
|
end
|
|
377
377
|
after :all do
|
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
|
3
3
|
describe "Indirect containers" do
|
|
4
4
|
before do
|
|
5
5
|
class RelatedObject < ActiveFedora::Base
|
|
6
|
-
property :title, predicate: ::RDF::DC.title, multiple: false
|
|
6
|
+
property :title, predicate: ::RDF::Vocab::DC.title, multiple: false
|
|
7
7
|
end
|
|
8
8
|
class Proxy < ActiveFedora::Base
|
|
9
9
|
belongs_to :proxy_for, predicate: ::RDF::URI.new('http://www.openarchives.org/ore/terms/proxyFor'), class_name: 'ActiveFedora::Base'
|
|
@@ -182,6 +182,13 @@ describe "Indirect containers" do
|
|
|
182
182
|
end
|
|
183
183
|
end
|
|
184
184
|
|
|
185
|
+
context "after save" do
|
|
186
|
+
it "returns correctly" do
|
|
187
|
+
o.save
|
|
188
|
+
expect(o.related_object_ids).to eq [file.id]
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
185
192
|
context "with some members in memory" do
|
|
186
193
|
let(:file2) { RelatedObject.create }
|
|
187
194
|
before do
|
|
@@ -208,7 +215,7 @@ describe "Indirect containers" do
|
|
|
208
215
|
context "when the class is provided" do
|
|
209
216
|
before do
|
|
210
217
|
class Different < ActiveFedora::Base
|
|
211
|
-
property :title, predicate: ::RDF::DC.title, multiple: false
|
|
218
|
+
property :title, predicate: ::RDF::Vocab::DC.title, multiple: false
|
|
212
219
|
end
|
|
213
220
|
class FooHistory < ActiveFedora::Base
|
|
214
221
|
indirectly_contains :related_objects, has_member_relation: ::RDF::URI.new('http://www.openarchives.org/ore/terms/aggregates'), inserted_content_relation: ::RDF::URI.new('http://www.openarchives.org/ore/terms/proxyFor'), class_name: 'Different', through: 'Proxy', foreign_key: :proxy_for
|
|
@@ -16,7 +16,7 @@ describe "Objects should be serialized to JSON" do
|
|
|
16
16
|
has_attributes :foo, datastream: 'descMetadata', multiple: true
|
|
17
17
|
has_attributes :bar, datastream: 'descMetadata', multiple: false
|
|
18
18
|
end
|
|
19
|
-
property :title, predicate: ::RDF::DC.title
|
|
19
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
|
|
@@ -41,12 +41,12 @@ describe "Objects should be serialized to JSON" do
|
|
|
41
41
|
context "with nested nodes" do
|
|
42
42
|
before do
|
|
43
43
|
class DummySubnode < ActiveTriples::Resource
|
|
44
|
-
property :relation, predicate: ::RDF::DC[:relation]
|
|
44
|
+
property :relation, predicate: ::RDF::Vocab::DC[:relation]
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
class DummyResource < ActiveFedora::RDFDatastream
|
|
48
48
|
Deprecation.silence(ActiveFedora::RDFDatastream) do
|
|
49
|
-
property :license, predicate: ::RDF::DC[:license], class_name: DummySubnode do |index|
|
|
49
|
+
property :license, predicate: ::RDF::Vocab::DC[:license], class_name: DummySubnode do |index|
|
|
50
50
|
index.as :searchable, :displayable
|
|
51
51
|
end
|
|
52
52
|
end
|
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
|
3
3
|
describe "nested hash resources" do
|
|
4
4
|
before do
|
|
5
5
|
class NestedResource < ActiveTriples::Resource
|
|
6
|
-
property :title, predicate: ::RDF::DC.title
|
|
6
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
7
7
|
## Necessary to get AT to create hash URIs.
|
|
8
8
|
def initialize(uri, parent)
|
|
9
9
|
if uri.try(:node?)
|
|
@@ -19,7 +19,7 @@ describe "nested hash resources" do
|
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
class ExampleOwner < ActiveFedora::Base
|
|
22
|
-
property :relation, predicate: ::RDF::DC.relation, class_name: NestedResource
|
|
22
|
+
property :relation, predicate: ::RDF::Vocab::DC.relation, class_name: NestedResource
|
|
23
23
|
accepts_nested_attributes_for :relation
|
|
24
24
|
end
|
|
25
25
|
end
|
|
@@ -8,10 +8,10 @@ describe ActiveFedora::NtriplesRDFDatastream do
|
|
|
8
8
|
|
|
9
9
|
Deprecation.silence(ActiveFedora::RDFDatastream) do
|
|
10
10
|
class MyDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
11
|
-
property :title, predicate: ::RDF::DC.title do |index|
|
|
11
|
+
property :title, predicate: ::RDF::Vocab::DC.title do |index|
|
|
12
12
|
index.as :stored_searchable, :facetable
|
|
13
13
|
end
|
|
14
|
-
property :date_uploaded, predicate: ::RDF::DC.dateSubmitted do |index|
|
|
14
|
+
property :date_uploaded, predicate: ::RDF::Vocab::DC.dateSubmitted do |index|
|
|
15
15
|
index.type :date
|
|
16
16
|
index.as :stored_searchable, :sortable
|
|
17
17
|
end
|
|
@@ -19,7 +19,7 @@ describe ActiveFedora::NtriplesRDFDatastream do
|
|
|
19
19
|
index.type :integer
|
|
20
20
|
index.as :stored_sortable
|
|
21
21
|
end
|
|
22
|
-
property :part, predicate: ::RDF::DC.hasPart
|
|
22
|
+
property :part, predicate: ::RDF::Vocab::DC.hasPart
|
|
23
23
|
property :based_near, predicate: ::RDF::FOAF.based_near
|
|
24
24
|
property :related_url, predicate: ::RDF::RDFS.seeAlso
|
|
25
25
|
end
|
|
@@ -159,7 +159,7 @@ describe ActiveFedora::NtriplesRDFDatastream do
|
|
|
159
159
|
# reopening existing class
|
|
160
160
|
class MyDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
161
161
|
rdf_subject { |ds| RDF::URI.new("http://oregondigital.org/ns/#{parent_uri(ds).split('/')[-1].split(':')[1]}") }
|
|
162
|
-
property :dctype, predicate: ::RDF::DC.type
|
|
162
|
+
property :dctype, predicate: ::RDF::Vocab::DC.type
|
|
163
163
|
end
|
|
164
164
|
subject.rdf.dctype = "Frog"
|
|
165
165
|
subject.save!
|
|
@@ -213,7 +213,7 @@ describe ActiveFedora::NtriplesRDFDatastream do
|
|
|
213
213
|
describe "term proxy methods" do
|
|
214
214
|
before(:each) do
|
|
215
215
|
class TitleDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
216
|
-
property :title, predicate: ::RDF::DC.title
|
|
216
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
217
217
|
end
|
|
218
218
|
class Foobar < ActiveFedora::Base
|
|
219
219
|
has_metadata 'rdf', type: TitleDatastream
|
|
@@ -10,7 +10,7 @@ describe "Nesting attribute behavior of RDF resources" do
|
|
|
10
10
|
property :topic, predicate: DummyMADS.Topic, class_name: "ComplexResource::Topic"
|
|
11
11
|
|
|
12
12
|
class Topic < ActiveTriples::Resource
|
|
13
|
-
property :subject, predicate: ::RDF::DC.subject
|
|
13
|
+
property :subject, predicate: ::RDF::Vocab::DC.subject
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
16
|
end
|
|
@@ -11,10 +11,10 @@ describe ActiveFedora::SolrInstanceLoader do
|
|
|
11
11
|
has_attributes :foo, datastream: 'descMetadata', multiple: true
|
|
12
12
|
has_attributes :bar, datastream: 'descMetadata', multiple: false
|
|
13
13
|
end
|
|
14
|
-
property :title, predicate: ::RDF::DC.title, multiple: false
|
|
15
|
-
property :description, predicate: ::RDF::DC.description
|
|
14
|
+
property :title, predicate: ::RDF::Vocab::DC.title, multiple: false
|
|
15
|
+
property :description, predicate: ::RDF::Vocab::DC.description
|
|
16
16
|
belongs_to :another, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.isPartOf, class_name: 'Foo'
|
|
17
|
-
has_and_belongs_to_many :dates, predicate: ::RDF::DC.date, class_name: 'Bar'
|
|
17
|
+
has_and_belongs_to_many :dates, predicate: ::RDF::Vocab::DC.date, class_name: 'Bar'
|
|
18
18
|
accepts_nested_attributes_for :dates, reject_if: :all_blank, allow_destroy: true
|
|
19
19
|
end
|
|
20
20
|
class Bar < ActiveFedora::Base
|
|
@@ -4,7 +4,7 @@ describe ActiveFedora::Versionable do
|
|
|
4
4
|
context "For ActiveFedora::Base" do
|
|
5
5
|
before do
|
|
6
6
|
class WithVersions < ActiveFedora::Base
|
|
7
|
-
property :title, predicate: ::RDF::DC.title
|
|
7
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
8
8
|
end
|
|
9
9
|
end
|
|
10
10
|
|
|
@@ -140,7 +140,7 @@ describe ActiveFedora::Versionable do
|
|
|
140
140
|
describe ActiveFedora::NtriplesRDFDatastream do
|
|
141
141
|
before(:all) do
|
|
142
142
|
class VersionableDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
143
|
-
property :title, predicate: ::RDF::DC.title
|
|
143
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
144
144
|
end
|
|
145
145
|
|
|
146
146
|
class MockAFBase < ActiveFedora::Base
|
|
@@ -376,8 +376,8 @@ describe ActiveFedora::Base do
|
|
|
376
376
|
context "with a RDF datastream" do
|
|
377
377
|
before :all do
|
|
378
378
|
class BarRdfDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
379
|
-
property :title, predicate: ::RDF::DC.title
|
|
380
|
-
property :description, predicate: ::RDF::DC.description
|
|
379
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
380
|
+
property :description, predicate: ::RDF::Vocab::DC.description
|
|
381
381
|
end
|
|
382
382
|
class BarHistory4 < ActiveFedora::Base
|
|
383
383
|
has_metadata 'rdfish', type: BarRdfDatastream
|
|
@@ -468,8 +468,8 @@ describe ActiveFedora::Base do
|
|
|
468
468
|
context "when a datastream is specified as a symbol" do
|
|
469
469
|
before :all do
|
|
470
470
|
class BarRdfDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
471
|
-
property :title, predicate: ::RDF::DC.title
|
|
472
|
-
property :description, predicate: ::RDF::DC.description
|
|
471
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
472
|
+
property :description, predicate: ::RDF::Vocab::DC.description
|
|
473
473
|
end
|
|
474
474
|
class BarHistory4 < ActiveFedora::Base
|
|
475
475
|
has_metadata 'rdfish', type: BarRdfDatastream
|
|
@@ -494,10 +494,10 @@ describe ActiveFedora::Base do
|
|
|
494
494
|
context "when properties are defined on an object" do
|
|
495
495
|
before :all do
|
|
496
496
|
class BarHistory4 < ActiveFedora::Base
|
|
497
|
-
property :title, predicate: ::RDF::DC.title do |index|
|
|
497
|
+
property :title, predicate: ::RDF::Vocab::DC.title do |index|
|
|
498
498
|
index.as :symbol
|
|
499
499
|
end
|
|
500
|
-
property :abstract, predicate: ::RDF::DC.abstract, multiple: false
|
|
500
|
+
property :abstract, predicate: ::RDF::Vocab::DC.abstract, multiple: false
|
|
501
501
|
end
|
|
502
502
|
end
|
|
503
503
|
|
data/spec/unit/base_spec.rb
CHANGED
|
@@ -7,7 +7,7 @@ describe ActiveFedora::Base do
|
|
|
7
7
|
describe "id=" do
|
|
8
8
|
before do
|
|
9
9
|
class FooHistory < ActiveFedora::Base
|
|
10
|
-
property :title, predicate: ::RDF::DC.title
|
|
10
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
after do
|
|
@@ -32,7 +32,7 @@ describe ActiveFedora::Base do
|
|
|
32
32
|
before do
|
|
33
33
|
class FooHistory < ActiveFedora::Base
|
|
34
34
|
type ::RDF::URI.new('http://example.com/foo')
|
|
35
|
-
property :title, predicate: ::RDF::DC.title
|
|
35
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
after do
|
|
@@ -55,8 +55,8 @@ describe ActiveFedora::Base do
|
|
|
55
55
|
context "on a concrete class" do
|
|
56
56
|
before do
|
|
57
57
|
class FooHistory < ActiveFedora::Base
|
|
58
|
-
rdf_label ::RDF::DC.title
|
|
59
|
-
property :title, predicate: ::RDF::DC.title
|
|
58
|
+
rdf_label ::RDF::Vocab::DC.title
|
|
59
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
60
60
|
end
|
|
61
61
|
end
|
|
62
62
|
after do
|
|
@@ -271,7 +271,7 @@ describe ActiveFedora::Base do
|
|
|
271
271
|
let(:test_object) { WithProperty.new(title: ['foo']) }
|
|
272
272
|
before do
|
|
273
273
|
class WithProperty < ActiveFedora::Base
|
|
274
|
-
property :title, predicate: ::RDF::DC.title
|
|
274
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
275
275
|
end
|
|
276
276
|
allow(test_object).to receive(:assign_id).and_return(@this_id)
|
|
277
277
|
test_object.save
|
|
@@ -17,8 +17,8 @@ describe ActiveFedora::ChangeSet do
|
|
|
17
17
|
|
|
18
18
|
class Book < ActiveFedora::Base
|
|
19
19
|
belongs_to :library, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.hasConstituent
|
|
20
|
-
property :title, predicate: ::RDF::DC.title
|
|
21
|
-
property :alt_id, predicate: ::RDF::DC.identifier
|
|
20
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
21
|
+
property :alt_id, predicate: ::RDF::Vocab::DC.identifier
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
base.library_id = 'foo'
|
|
@@ -41,18 +41,18 @@ describe ActiveFedora::ChangeSet do
|
|
|
41
41
|
expect(subject.size).to eq 3
|
|
42
42
|
end
|
|
43
43
|
it "does not include URIs from other objects" do
|
|
44
|
-
base.resource << RDF::Statement.new(RDF::URI("http://wrong.com"), RDF::DC.title, "bad")
|
|
44
|
+
base.resource << RDF::Statement.new(RDF::URI("http://wrong.com"), RDF::Vocab::DC.title, "bad")
|
|
45
45
|
base.title = nil
|
|
46
|
-
expect(subject[RDF::DC.title].to_a).to eq []
|
|
46
|
+
expect(subject[RDF::Vocab::DC.title].to_a).to eq []
|
|
47
47
|
end
|
|
48
48
|
it "includes hash URIs" do
|
|
49
49
|
# This is useful as an alternative to blank nodes.
|
|
50
50
|
hash_uri = RDF::URI(base.uri.to_s + "#test")
|
|
51
|
-
base.resource << RDF::Statement.new(hash_uri, RDF::DC.title, "good")
|
|
51
|
+
base.resource << RDF::Statement.new(hash_uri, RDF::Vocab::DC.title, "good")
|
|
52
52
|
base.title = [RDF::URI(hash_uri)]
|
|
53
|
-
expect(subject[RDF::DC.title].to_a).not_to eq []
|
|
53
|
+
expect(subject[RDF::Vocab::DC.title].to_a).not_to eq []
|
|
54
54
|
# Include the title reference and the title for the hash URI
|
|
55
|
-
expect(subject[RDF::DC.title].to_a.length).to eq 2
|
|
55
|
+
expect(subject[RDF::Vocab::DC.title].to_a.length).to eq 2
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
|
data/spec/unit/core_spec.rb
CHANGED
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
|
3
3
|
describe ActiveFedora::Base do
|
|
4
4
|
before do
|
|
5
5
|
class MyDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
6
|
-
property :publisher, predicate: ::RDF::DC.publisher
|
|
6
|
+
property :publisher, predicate: ::RDF::Vocab::DC.publisher
|
|
7
7
|
end
|
|
8
8
|
class Library < ActiveFedora::Base
|
|
9
9
|
end
|
|
@@ -58,6 +58,15 @@ describe ActiveFedora::FileConfigurator do
|
|
|
58
58
|
end
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
+
describe "#get_config_path" do
|
|
62
|
+
it "calls #config_path" do
|
|
63
|
+
expect(subject).to receive(:config_path)
|
|
64
|
+
Deprecation.silence(described_class) do
|
|
65
|
+
subject.get_config_path(:fedora)
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
61
70
|
describe "initialization methods" do
|
|
62
71
|
describe "config_path(:fedora)" do
|
|
63
72
|
it "uses the config_options[:config_path] if it exists" do
|
|
@@ -51,11 +51,11 @@ describe ActiveFedora::Associations::HasManyAssociation do
|
|
|
51
51
|
context "when inverse doesn't have a predictable name" do
|
|
52
52
|
before do
|
|
53
53
|
class TimeSpan < ActiveFedora::Base
|
|
54
|
-
has_many :images, inverse_of: :created # predicate: ::RDF::DC.created
|
|
54
|
+
has_many :images, inverse_of: :created # predicate: ::RDF::Vocab::DC.created
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
class Image < ActiveFedora::Base
|
|
58
|
-
has_and_belongs_to_many :created, predicate: ::RDF::DC.created, class_name: 'TimeSpan'
|
|
58
|
+
has_and_belongs_to_many :created, predicate: ::RDF::Vocab::DC.created, class_name: 'TimeSpan'
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
61
|
|
data/spec/unit/indexing_spec.rb
CHANGED
|
@@ -27,10 +27,10 @@ describe ActiveFedora::Indexing do
|
|
|
27
27
|
describe "#to_solr" do
|
|
28
28
|
before :all do
|
|
29
29
|
class SpecNode < ActiveFedora::Base
|
|
30
|
-
property :title, predicate: ::RDF::DC.title do |index|
|
|
30
|
+
property :title, predicate: ::RDF::Vocab::DC.title do |index|
|
|
31
31
|
index.as :stored_searchable
|
|
32
32
|
end
|
|
33
|
-
property :abstract, predicate: ::RDF::DC.abstract, multiple: false do |index|
|
|
33
|
+
property :abstract, predicate: ::RDF::Vocab::DC.abstract, multiple: false do |index|
|
|
34
34
|
index.as :stored_sortable
|
|
35
35
|
end
|
|
36
36
|
end
|
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
|
3
3
|
describe ActiveFedora::LoadableFromJson::SolrBackedResource do
|
|
4
4
|
before do
|
|
5
5
|
class Foo < ActiveFedora::Base
|
|
6
|
-
belongs_to :bar, predicate: ::RDF::DC.extent
|
|
6
|
+
belongs_to :bar, predicate: ::RDF::Vocab::DC.extent
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
class Bar < ActiveFedora::Base
|
|
@@ -18,14 +18,23 @@ describe ActiveFedora::LoadableFromJson::SolrBackedResource do
|
|
|
18
18
|
let(:resource) { described_class.new(Foo) }
|
|
19
19
|
|
|
20
20
|
before do
|
|
21
|
-
resource.insert [nil, ::RDF::DC.extent, RDF::URI('http://example.org/123')]
|
|
21
|
+
resource.insert [nil, ::RDF::Vocab::DC.extent, RDF::URI('http://example.org/123')]
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
describe "#query" do
|
|
25
|
-
|
|
25
|
+
describe "a known relationship" do
|
|
26
|
+
subject { resource.query(predicate: ::RDF::Vocab::DC.extent) }
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
it "is enumerable" do
|
|
29
|
+
expect(subject.map(&:object)).to eq [RDF::URI('http://example.org/123')]
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe "a unknown relationship" do
|
|
34
|
+
subject { resource.query(predicate: ::RDF::Vocab::DC.accrualPeriodicity) }
|
|
35
|
+
it "raises an error" do
|
|
36
|
+
expect { subject }.to raise_error "Unable to find reflection for http://purl.org/dc/terms/accrualPeriodicity in Foo"
|
|
37
|
+
end
|
|
29
38
|
end
|
|
30
39
|
end
|
|
31
40
|
end
|
|
@@ -4,11 +4,11 @@ describe ActiveFedora::NtriplesRDFDatastream do
|
|
|
4
4
|
describe "an instance with content" do
|
|
5
5
|
before do
|
|
6
6
|
class MyDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
7
|
-
property :created, predicate: ::RDF::DC.created
|
|
8
|
-
property :title, predicate: ::RDF::DC.title
|
|
9
|
-
property :publisher, predicate: ::RDF::DC.publisher
|
|
10
|
-
property :creator, predicate: ::RDF::DC.creator
|
|
11
|
-
property :educationLevel, predicate: ::RDF::DC.educationLevel
|
|
7
|
+
property :created, predicate: ::RDF::Vocab::DC.created
|
|
8
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
9
|
+
property :publisher, predicate: ::RDF::Vocab::DC.publisher
|
|
10
|
+
property :creator, predicate: ::RDF::Vocab::DC.creator
|
|
11
|
+
property :educationLevel, predicate: ::RDF::Vocab::DC.educationLevel
|
|
12
12
|
property :based_near, predicate: ::RDF::FOAF.based_near
|
|
13
13
|
property :related_url, predicate: ::RDF::RDFS.seeAlso
|
|
14
14
|
end
|
|
@@ -84,9 +84,9 @@ describe ActiveFedora::NtriplesRDFDatastream do
|
|
|
84
84
|
before do
|
|
85
85
|
class MyDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
86
86
|
rdf_subject { |ds| "http://localhost:8983/fedora/rest/test/#{ds.id}/content" }
|
|
87
|
-
property :created, predicate: ::RDF::DC.created
|
|
88
|
-
property :title, predicate: ::RDF::DC.title
|
|
89
|
-
property :publisher, predicate: ::RDF::DC.publisher
|
|
87
|
+
property :created, predicate: ::RDF::Vocab::DC.created
|
|
88
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
89
|
+
property :publisher, predicate: ::RDF::Vocab::DC.publisher
|
|
90
90
|
property :based_near, predicate: ::RDF::FOAF.based_near
|
|
91
91
|
property :related_url, predicate: ::RDF::RDFS.seeAlso
|
|
92
92
|
end
|
|
@@ -116,7 +116,7 @@ describe ActiveFedora::NtriplesRDFDatastream do
|
|
|
116
116
|
describe "a new instance" do
|
|
117
117
|
before(:each) do
|
|
118
118
|
class MyDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
119
|
-
property :publisher, predicate: ::RDF::DC.publisher
|
|
119
|
+
property :publisher, predicate: ::RDF::Vocab::DC.publisher
|
|
120
120
|
end
|
|
121
121
|
@subject = MyDatastream.new
|
|
122
122
|
end
|
|
@@ -136,15 +136,15 @@ describe ActiveFedora::NtriplesRDFDatastream do
|
|
|
136
136
|
before(:all) do
|
|
137
137
|
Deprecation.silence(ActiveFedora::RDFDatastream) do
|
|
138
138
|
class MyDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
139
|
-
property :created, predicate: ::RDF::DC.created do |index|
|
|
139
|
+
property :created, predicate: ::RDF::Vocab::DC.created do |index|
|
|
140
140
|
index.as :sortable, :displayable
|
|
141
141
|
index.type :date
|
|
142
142
|
end
|
|
143
|
-
property :title, predicate: ::RDF::DC.title do |index|
|
|
143
|
+
property :title, predicate: ::RDF::Vocab::DC.title do |index|
|
|
144
144
|
index.as :stored_searchable, :sortable
|
|
145
145
|
index.type :text
|
|
146
146
|
end
|
|
147
|
-
property :publisher, predicate: ::RDF::DC.publisher do |index|
|
|
147
|
+
property :publisher, predicate: ::RDF::Vocab::DC.publisher do |index|
|
|
148
148
|
index.as :facetable, :sortable, :stored_searchable
|
|
149
149
|
end
|
|
150
150
|
property :based_near, predicate: ::RDF::FOAF.based_near do |index|
|
|
@@ -154,7 +154,7 @@ describe ActiveFedora::NtriplesRDFDatastream do
|
|
|
154
154
|
property :related_url, predicate: ::RDF::RDFS.seeAlso do |index|
|
|
155
155
|
index.as :stored_searchable
|
|
156
156
|
end
|
|
157
|
-
property :rights, predicate: ::RDF::DC.rights
|
|
157
|
+
property :rights, predicate: ::RDF::Vocab::DC.rights
|
|
158
158
|
end
|
|
159
159
|
end
|
|
160
160
|
end
|
data/spec/unit/pathing_spec.rb
CHANGED
|
@@ -6,7 +6,7 @@ describe ActiveFedora::Predicates do
|
|
|
6
6
|
expect(described_class.short_predicate('http://www.openarchives.org/OAI/2.0/itemID')).to eq :oai_item_id
|
|
7
7
|
end
|
|
8
8
|
it 'parses uris' do
|
|
9
|
-
expect(described_class.short_predicate(RDF::DC.creator)).to eq 'dc_terms_creator'
|
|
9
|
+
expect(described_class.short_predicate(RDF::Vocab::DC.creator)).to eq 'dc_terms_creator'
|
|
10
10
|
expect(described_class.short_predicate(RDF::SKOS.hasTopConcept)).to eq '2004_02_skos_core_has_top_concept'
|
|
11
11
|
end
|
|
12
12
|
before do
|
|
@@ -11,8 +11,8 @@ describe ActiveFedora::Base do
|
|
|
11
11
|
|
|
12
12
|
module TestModel1
|
|
13
13
|
class Book < ActiveFedora::Base
|
|
14
|
-
property :title1, predicate: ::RDF::DC.title
|
|
15
|
-
property :title2, predicate: ::RDF::DC.title
|
|
14
|
+
property :title1, predicate: ::RDF::Vocab::DC.title
|
|
15
|
+
property :title2, predicate: ::RDF::Vocab::DC.title
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
end
|
|
@@ -25,8 +25,8 @@ describe ActiveFedora::Base do
|
|
|
25
25
|
|
|
26
26
|
module TestModel2
|
|
27
27
|
class Book < ActiveFedora::Base
|
|
28
|
-
property :title1, predicate: ::RDF::DC.title
|
|
29
|
-
property :title2, predicate: ::RDF::DC.creator
|
|
28
|
+
property :title1, predicate: ::RDF::Vocab::DC.title
|
|
29
|
+
property :title2, predicate: ::RDF::Vocab::DC.creator
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
end
|
data/spec/unit/query_spec.rb
CHANGED
|
@@ -60,12 +60,11 @@ describe ActiveFedora::Base do
|
|
|
60
60
|
end
|
|
61
61
|
end
|
|
62
62
|
end
|
|
63
|
+
|
|
63
64
|
describe "using an options hash" do
|
|
64
|
-
before do
|
|
65
|
-
Deprecation.default_deprecation_behavior = :raise
|
|
66
|
-
end
|
|
67
65
|
it "is deprecated" do
|
|
68
|
-
expect
|
|
66
|
+
expect(Deprecation).to receive(:warn)
|
|
67
|
+
SpecModel::Basic.find(id: "_ID_")
|
|
69
68
|
end
|
|
70
69
|
end
|
|
71
70
|
end
|
|
@@ -4,15 +4,15 @@ describe ActiveFedora::RDF::IndexingService do
|
|
|
4
4
|
before do
|
|
5
5
|
class MyDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
6
6
|
Deprecation.silence(ActiveFedora::RDFDatastream) do
|
|
7
|
-
property :created, predicate: ::RDF::DC.created do |index|
|
|
7
|
+
property :created, predicate: ::RDF::Vocab::DC.created do |index|
|
|
8
8
|
index.as :sortable, :displayable
|
|
9
9
|
index.type :date
|
|
10
10
|
end
|
|
11
|
-
property :title, predicate: ::RDF::DC.title do |index|
|
|
11
|
+
property :title, predicate: ::RDF::Vocab::DC.title do |index|
|
|
12
12
|
index.as :stored_searchable, :sortable
|
|
13
13
|
index.type :text
|
|
14
14
|
end
|
|
15
|
-
property :publisher, predicate: ::RDF::DC.publisher do |index|
|
|
15
|
+
property :publisher, predicate: ::RDF::Vocab::DC.publisher do |index|
|
|
16
16
|
index.as :facetable, :sortable, :stored_searchable
|
|
17
17
|
end
|
|
18
18
|
property :based_near, predicate: ::RDF::FOAF.based_near do |index|
|
|
@@ -23,7 +23,7 @@ describe ActiveFedora::RDF::IndexingService do
|
|
|
23
23
|
index.as :stored_searchable
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
|
-
property :rights, predicate: ::RDF::DC.rights
|
|
26
|
+
property :rights, predicate: ::RDF::Vocab::DC.rights
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
|
|
@@ -11,8 +11,8 @@ describe ActiveFedora::RDFDatastream do
|
|
|
11
11
|
describe "an instance that exists in the datastore, but hasn't been loaded" do
|
|
12
12
|
before do
|
|
13
13
|
class MyDatastream < ActiveFedora::NtriplesRDFDatastream
|
|
14
|
-
property :title, predicate: ::RDF::DC.title
|
|
15
|
-
property :description, predicate: ::RDF::DC.description
|
|
14
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
15
|
+
property :description, predicate: ::RDF::Vocab::DC.description
|
|
16
16
|
end
|
|
17
17
|
class MyObj < ActiveFedora::Base
|
|
18
18
|
has_metadata 'descMetadata', type: MyDatastream
|
|
@@ -42,7 +42,7 @@ describe ActiveFedora::RDFDatastream do
|
|
|
42
42
|
it "clears stuff" do
|
|
43
43
|
subject.title = ['one', 'two', 'three']
|
|
44
44
|
subject.title.clear
|
|
45
|
-
expect(subject.graph.query([subject.rdf_subject, ::RDF::DC.title, nil]).first).to be_nil
|
|
45
|
+
expect(subject.graph.query([subject.rdf_subject, ::RDF::Vocab::DC.title, nil]).first).to be_nil
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
it "has a list of fields" do
|
|
@@ -3,19 +3,19 @@ require 'spec_helper'
|
|
|
3
3
|
describe ActiveFedora::RDFDatastream do
|
|
4
4
|
before do
|
|
5
5
|
class DummySubnode < ActiveTriples::Resource
|
|
6
|
-
property :title, predicate: ::RDF::DC[:title], class_name: ::RDF::Literal
|
|
7
|
-
property :relation, predicate: ::RDF::DC[:relation]
|
|
6
|
+
property :title, predicate: ::RDF::Vocab::DC[:title], class_name: ::RDF::Literal
|
|
7
|
+
property :relation, predicate: ::RDF::Vocab::DC[:relation]
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
class DummyResource < ActiveFedora::RDFDatastream
|
|
11
11
|
Deprecation.silence(ActiveFedora::RDFDatastream) do
|
|
12
|
-
property :title, predicate: ::RDF::DC[:title], class_name: ::RDF::Literal do |index|
|
|
12
|
+
property :title, predicate: ::RDF::Vocab::DC[:title], class_name: ::RDF::Literal do |index|
|
|
13
13
|
index.as :searchable, :displayable
|
|
14
14
|
end
|
|
15
|
-
property :license, predicate: ::RDF::DC[:license], class_name: DummySubnode do |index|
|
|
15
|
+
property :license, predicate: ::RDF::Vocab::DC[:license], class_name: DummySubnode do |index|
|
|
16
16
|
index.as :searchable, :displayable
|
|
17
17
|
end
|
|
18
|
-
property :creator, predicate: ::RDF::DC[:creator], class_name: 'DummyAsset' do |index|
|
|
18
|
+
property :creator, predicate: ::RDF::Vocab::DC[:creator], class_name: 'DummyAsset' do |index|
|
|
19
19
|
index.as :searchable
|
|
20
20
|
end
|
|
21
21
|
end
|
|
@@ -4,7 +4,7 @@ describe ActiveFedora::RDFXMLDatastream do
|
|
|
4
4
|
describe "a new instance" do
|
|
5
5
|
before(:each) do
|
|
6
6
|
class MyRdfxmlDatastream < ActiveFedora::RDFXMLDatastream
|
|
7
|
-
property :publisher, predicate: ::RDF::DC.publisher
|
|
7
|
+
property :publisher, predicate: ::RDF::Vocab::DC.publisher
|
|
8
8
|
end
|
|
9
9
|
@subject = MyRdfxmlDatastream.new
|
|
10
10
|
allow(@subject).to receive(:id).and_return('test:1')
|
|
@@ -22,7 +22,7 @@ describe ActiveFedora::Reflection::AssociationReflection do
|
|
|
22
22
|
describe "#automatic_inverse_of" do
|
|
23
23
|
before do
|
|
24
24
|
class Dummy < ActiveFedora::Base
|
|
25
|
-
belongs_to :foothing, predicate: ::RDF::DC.extent
|
|
25
|
+
belongs_to :foothing, predicate: ::RDF::Vocab::DC.extent
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
28
|
|
|
@@ -11,7 +11,7 @@ describe ActiveFedora::SparqlInsert do
|
|
|
11
11
|
|
|
12
12
|
class Book < ActiveFedora::Base
|
|
13
13
|
belongs_to :library, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.hasConstituent
|
|
14
|
-
property :title, predicate: ::RDF::DC.title
|
|
14
|
+
property :title, predicate: ::RDF::Vocab::DC.title
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
base.library_id = 'foo'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: active-fedora
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 9.
|
|
4
|
+
version: 9.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matt Zumwalt
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2015-11-
|
|
13
|
+
date: 2015-11-30 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: rsolr
|
|
@@ -521,6 +521,7 @@ files:
|
|
|
521
521
|
- spec/integration/file_fixity_spec.rb
|
|
522
522
|
- spec/integration/file_spec.rb
|
|
523
523
|
- spec/integration/full_featured_model_spec.rb
|
|
524
|
+
- spec/integration/gone_spec.rb
|
|
524
525
|
- spec/integration/has_and_belongs_to_many_associations_spec.rb
|
|
525
526
|
- spec/integration/has_many_associations_spec.rb
|
|
526
527
|
- spec/integration/indexing_spec.rb
|
|
@@ -637,7 +638,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
637
638
|
version: '0'
|
|
638
639
|
requirements: []
|
|
639
640
|
rubyforge_project:
|
|
640
|
-
rubygems_version: 2.4.
|
|
641
|
+
rubygems_version: 2.4.8
|
|
641
642
|
signing_key:
|
|
642
643
|
specification_version: 4
|
|
643
644
|
summary: A convenience libary for manipulating documents in the Fedora Repository.
|