active-fedora 8.7.0 → 9.0.0.beta1
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 +5 -5
- data/.travis.yml +8 -15
- data/Gemfile +5 -5
- data/History.txt +0 -80
- data/README.md +1 -0
- data/Rakefile +0 -3
- data/active-fedora.gemspec +8 -7
- data/config/fedora.yml +5 -4
- data/config/predicate_mappings.yml +5 -5
- data/gemfiles/rails4.1.gemfile +10 -0
- data/gemfiles/rails4.2.beta.gemfile +10 -0
- data/lib/active_fedora.rb +151 -117
- data/lib/active_fedora/associations.rb +47 -15
- data/lib/active_fedora/associations/association.rb +29 -8
- data/lib/active_fedora/associations/association_scope.rb +5 -5
- data/lib/active_fedora/associations/belongs_to_association.rb +20 -63
- data/lib/active_fedora/associations/builder/association.rb +61 -25
- data/lib/active_fedora/associations/builder/belongs_to.rb +7 -94
- data/lib/active_fedora/associations/builder/collection_association.rb +11 -43
- data/lib/active_fedora/associations/builder/contains.rb +28 -0
- data/lib/active_fedora/associations/builder/has_and_belongs_to_many.rb +13 -3
- data/lib/active_fedora/associations/builder/has_many.rb +16 -10
- data/lib/active_fedora/associations/builder/property.rb +14 -0
- data/lib/active_fedora/associations/builder/singular_association.rb +14 -18
- data/lib/active_fedora/associations/builder/singular_property.rb +12 -0
- data/lib/active_fedora/associations/collection_association.rb +57 -80
- data/lib/active_fedora/associations/contains_association.rb +50 -0
- data/lib/active_fedora/associations/has_and_belongs_to_many_association.rb +44 -24
- data/lib/active_fedora/associations/has_many_association.rb +46 -14
- data/lib/active_fedora/associations/rdf.rb +86 -0
- data/lib/active_fedora/associations/singular_association.rb +4 -8
- data/lib/active_fedora/associations/singular_rdf.rb +15 -0
- data/lib/active_fedora/attached_files.rb +195 -0
- data/lib/active_fedora/attribute_methods.rb +122 -0
- data/lib/active_fedora/attribute_methods/dirty.rb +16 -0
- data/lib/active_fedora/attribute_methods/read.rb +61 -0
- data/lib/active_fedora/attribute_methods/write.rb +47 -0
- data/lib/active_fedora/attributes.rb +93 -44
- data/lib/active_fedora/attributes/primary_key.rb +12 -0
- data/lib/active_fedora/autosave_association.rb +2 -2
- data/lib/active_fedora/base.rb +16 -15
- data/lib/active_fedora/callbacks.rb +7 -7
- data/lib/active_fedora/change_set.rb +34 -0
- data/lib/active_fedora/cleaner.rb +62 -0
- data/lib/active_fedora/config.rb +4 -22
- data/lib/active_fedora/core.rb +173 -99
- data/lib/active_fedora/datastream.rb +4 -117
- data/lib/active_fedora/datastreams.rb +2 -263
- data/lib/active_fedora/datastreams/nokogiri_datastreams.rb +28 -51
- data/lib/active_fedora/{datastream_attribute.rb → delegated_attribute.rb} +57 -26
- data/lib/active_fedora/errors.rb +61 -0
- data/lib/active_fedora/fedora.rb +19 -0
- data/lib/active_fedora/fedora_attributes.rb +58 -26
- data/lib/active_fedora/file.rb +318 -0
- data/lib/active_fedora/file_configurator.rb +32 -32
- data/lib/active_fedora/file_path_builder.rb +24 -0
- data/lib/active_fedora/files_hash.rb +82 -0
- data/lib/active_fedora/fixity_service.rb +40 -0
- data/lib/active_fedora/indexing.rb +55 -82
- data/lib/active_fedora/indexing_service.rb +70 -0
- data/lib/active_fedora/ldp_resource.rb +26 -0
- data/lib/active_fedora/loadable_from_json.rb +112 -0
- data/lib/active_fedora/model.rb +5 -19
- data/lib/active_fedora/nested_attributes.rb +5 -6
- data/lib/active_fedora/nom_datastream.rb +15 -25
- data/lib/active_fedora/om_datastream.rb +26 -197
- data/lib/active_fedora/persistence.rb +95 -71
- data/lib/active_fedora/predicates.rb +4 -4
- data/lib/active_fedora/qualified_dublin_core_datastream.rb +17 -18
- data/lib/active_fedora/querying.rb +3 -4
- data/lib/active_fedora/railtie.rb +3 -6
- data/lib/active_fedora/rdf.rb +3 -1
- data/lib/active_fedora/rdf/datastream_indexing.rb +11 -0
- data/lib/active_fedora/rdf/fcrepo.rb +10 -324
- data/lib/active_fedora/rdf/indexing.rb +20 -16
- data/lib/active_fedora/rdf/ldp.rb +6 -0
- data/lib/active_fedora/rdf/ntriples_rdf_datastream.rb +1 -1
- data/lib/active_fedora/rdf/persistence.rb +5 -6
- data/lib/active_fedora/rdf/rdf_datastream.rb +44 -37
- data/lib/active_fedora/rdf/rdfxml_datastream.rb +13 -0
- data/lib/active_fedora/rdf/rels_ext.rb +26 -0
- data/lib/active_fedora/reflection.rb +256 -199
- data/lib/active_fedora/relation.rb +18 -6
- data/lib/active_fedora/relation/finder_methods.rb +69 -38
- data/lib/active_fedora/relation/query_methods.rb +7 -3
- data/lib/active_fedora/rspec_matchers/belong_to_associated_active_fedora_object_matcher.rb +7 -7
- data/lib/active_fedora/rspec_matchers/have_many_associated_active_fedora_objects_matcher.rb +8 -8
- data/lib/active_fedora/rspec_matchers/have_predicate_matcher.rb +9 -11
- data/lib/active_fedora/simple_datastream.rb +18 -13
- data/lib/active_fedora/solr_instance_loader.rb +18 -38
- data/lib/active_fedora/solr_service.rb +37 -20
- data/lib/active_fedora/sparql_insert.rb +45 -0
- data/lib/active_fedora/test_support.rb +1 -22
- data/lib/active_fedora/version.rb +1 -1
- data/lib/active_fedora/versionable.rb +90 -0
- data/lib/active_fedora/with_metadata.rb +37 -0
- data/lib/active_fedora/with_metadata/metadata_node.rb +70 -0
- data/lib/generators/active_fedora/config/config_generator.rb +0 -1
- data/lib/generators/active_fedora/config/solr/solr_generator.rb +1 -1
- data/lib/generators/active_fedora/model/model_generator.rb +5 -5
- data/lib/generators/active_fedora/model/templates/datastream_spec.rb.erb +1 -1
- data/lib/generators/active_fedora/model/templates/model_spec.rb.erb +2 -2
- data/lib/tasks/active_fedora_dev.rake +21 -27
- data/spec/config_helper.rb +1 -1
- data/spec/fixtures/mixed_rdf_descMetadata.nt +6 -6
- data/spec/fixtures/rails_root/config/predicate_mappings.yml +3 -19
- data/spec/fixtures/solr_rdf_descMetadata.nt +6 -6
- data/spec/integration/associations_spec.rb +133 -153
- data/spec/integration/attached_files_spec.rb +164 -0
- data/spec/integration/attributes_spec.rb +73 -12
- data/spec/integration/autosave_association_spec.rb +3 -3
- data/spec/integration/base_spec.rb +57 -351
- data/spec/integration/belongs_to_association_spec.rb +86 -76
- data/spec/integration/bug_spec.rb +3 -3
- data/spec/integration/collection_association_spec.rb +4 -4
- data/spec/integration/complex_rdf_datastream_spec.rb +54 -56
- data/spec/integration/delete_all_spec.rb +18 -15
- data/spec/integration/eradicate_spec.rb +54 -0
- data/spec/integration/fedora_solr_sync_spec.rb +7 -5
- data/spec/integration/field_to_solr_name_spec.rb +5 -5
- data/spec/integration/file_fixity_spec.rb +40 -0
- data/spec/integration/file_spec.rb +122 -0
- data/spec/integration/full_featured_model_spec.rb +53 -63
- data/spec/integration/has_and_belongs_to_many_associations_spec.rb +141 -114
- data/spec/integration/has_many_associations_spec.rb +142 -64
- data/spec/integration/json_serialization_spec.rb +50 -8
- data/spec/integration/model_spec.rb +12 -29
- data/spec/integration/nested_attribute_spec.rb +28 -20
- data/spec/integration/ntriples_datastream_spec.rb +60 -57
- data/spec/integration/om_datastream_spec.rb +51 -140
- data/spec/integration/rdf_nested_attributes_spec.rb +16 -14
- data/spec/integration/relation_delegation_spec.rb +7 -9
- data/spec/integration/relation_spec.rb +9 -7
- data/spec/integration/scoped_query_spec.rb +26 -26
- data/spec/integration/solr_instance_loader_spec.rb +69 -53
- data/spec/integration/solr_service_spec.rb +12 -73
- data/spec/integration/versionable_spec.rb +477 -0
- data/spec/integration/with_metadata_spec.rb +52 -0
- data/spec/samples/hydra-mods_article_datastream.rb +10 -6
- data/spec/samples/models/mods_article.rb +6 -2
- data/spec/samples/oral_history_sample.xml +1 -1
- data/spec/samples/oral_history_xml.xml +1 -1
- data/spec/samples/special_thing.rb +3 -3
- data/spec/spec_helper.rb +22 -12
- data/spec/support/an_active_model.rb +3 -7
- data/spec/unit/active_fedora_spec.rb +20 -17
- data/spec/unit/attached_files_spec.rb +203 -0
- data/spec/unit/attributes_spec.rb +286 -207
- data/spec/unit/base_active_model_spec.rb +8 -8
- data/spec/unit/base_datastream_management_spec.rb +11 -24
- data/spec/unit/base_extra_spec.rb +17 -67
- data/spec/unit/base_spec.rb +163 -428
- data/spec/unit/builder/has_and_belongs_to_many_spec.rb +2 -2
- data/spec/unit/callback_spec.rb +38 -23
- data/spec/unit/change_set_spec.rb +46 -0
- data/spec/unit/code_configurator_spec.rb +5 -5
- data/spec/unit/config_spec.rb +9 -14
- data/spec/unit/core_spec.rb +59 -8
- data/spec/unit/file_configurator_spec.rb +55 -53
- data/spec/unit/file_path_builder_spec.rb +18 -0
- data/spec/unit/file_spec.rb +221 -0
- data/spec/unit/files_hash_spec.rb +53 -0
- data/spec/unit/fixity_service_spec.rb +34 -0
- data/spec/unit/has_and_belongs_to_many_association_spec.rb +134 -0
- data/spec/unit/has_many_association_spec.rb +51 -0
- data/spec/unit/indexing_service_spec.rb +23 -0
- data/spec/unit/indexing_spec.rb +26 -0
- data/spec/unit/inheritance_spec.rb +9 -10
- data/spec/unit/model_spec.rb +15 -33
- data/spec/unit/nom_datastream_spec.rb +13 -10
- data/spec/unit/ntriples_datastream_spec.rb +81 -96
- data/spec/unit/om_datastream_spec.rb +137 -227
- data/spec/unit/persistence_spec.rb +28 -34
- data/spec/unit/predicates_spec.rb +29 -29
- data/spec/unit/property_spec.rb +1 -3
- data/spec/unit/qualified_dublin_core_datastream_spec.rb +27 -32
- data/spec/unit/query_spec.rb +116 -149
- data/spec/unit/rdf_datastream_spec.rb +25 -43
- data/spec/unit/rdf_resource_datastream_spec.rb +24 -123
- data/spec/unit/{rdfxml_rdf_datastream_spec.rb → rdfxml_datastream_spec.rb} +21 -25
- data/spec/unit/readonly_spec.rb +23 -0
- data/spec/unit/rspec_matchers/belong_to_associated_active_fedora_object_matcher_spec.rb +6 -6
- data/spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb +6 -6
- data/spec/unit/rspec_matchers/have_predicate_matcher_spec.rb +6 -6
- data/spec/unit/serializers_spec.rb +1 -1
- data/spec/unit/simple_datastream_spec.rb +12 -23
- data/spec/unit/solr_config_options_spec.rb +14 -17
- data/spec/unit/solr_service_spec.rb +38 -77
- data/spec/unit/sparql_insert_spec.rb +32 -0
- data/spec/unit/validations_spec.rb +8 -11
- metadata +96 -121
- data/lib/active_fedora/auditable.rb +0 -9
- data/lib/active_fedora/content_model.rb +0 -70
- data/lib/active_fedora/datastream_collections.rb +0 -302
- data/lib/active_fedora/datastream_hash.rb +0 -35
- data/lib/active_fedora/digital_object.rb +0 -55
- data/lib/active_fedora/fixture_exporter.rb +0 -33
- data/lib/active_fedora/fixture_loader.rb +0 -48
- data/lib/active_fedora/rdf/identifiable.rb +0 -66
- data/lib/active_fedora/rdf/project_hydra.rb +0 -12
- data/lib/active_fedora/rdf/rdfxml_rdf_datastream.rb +0 -13
- data/lib/active_fedora/rdf_xml_writer.rb +0 -49
- data/lib/active_fedora/relationship_graph.rb +0 -101
- data/lib/active_fedora/reload_on_save.rb +0 -16
- data/lib/active_fedora/rels_ext_datastream.rb +0 -100
- data/lib/active_fedora/rspec_matchers/match_fedora_datastream_matcher.rb +0 -41
- data/lib/active_fedora/rubydora_connection.rb +0 -35
- data/lib/active_fedora/semantic_node.rb +0 -164
- data/lib/active_fedora/service_definitions.rb +0 -88
- data/lib/active_fedora/sharding.rb +0 -58
- data/lib/active_fedora/solr_digital_object.rb +0 -68
- data/lib/active_fedora/unsaved_digital_object.rb +0 -58
- data/lib/generators/active_fedora/config/fedora/fedora_generator.rb +0 -12
- data/lib/generators/active_fedora/config/fedora/templates/fedora.yml +0 -38
- data/lib/generators/active_fedora/config/fedora/templates/fedora_conf/conf/development/fedora.fcfg +0 -953
- data/lib/generators/active_fedora/config/fedora/templates/fedora_conf/conf/test/fedora.fcfg +0 -953
- data/lib/tasks/active_fedora.rake +0 -83
- data/spec/fixtures/sharded_fedora.yml +0 -11
- data/spec/integration/auditable_spec.rb +0 -29
- data/spec/integration/datastream_collections_spec.rb +0 -127
- data/spec/integration/datastream_spec.rb +0 -90
- data/spec/integration/datastreams_spec.rb +0 -173
- data/spec/integration/load_from_solr_spec.rb +0 -66
- data/spec/integration/rels_ext_datastream_spec.rb +0 -82
- data/spec/support/mock_fedora.rb +0 -44
- data/spec/unit/content_model_spec.rb +0 -86
- data/spec/unit/datastream_collections_spec.rb +0 -420
- data/spec/unit/datastream_spec.rb +0 -83
- data/spec/unit/datastreams_spec.rb +0 -243
- data/spec/unit/has_and_belongs_to_many_collection_spec.rb +0 -96
- data/spec/unit/has_many_collection_spec.rb +0 -35
- data/spec/unit/rdf_vocab_spec.rb +0 -30
- data/spec/unit/rdf_xml_writer_spec.rb +0 -63
- data/spec/unit/relationship_graph_spec.rb +0 -115
- data/spec/unit/reload_on_save_spec.rb +0 -24
- data/spec/unit/rels_ext_datastream_spec.rb +0 -170
- data/spec/unit/rspec_matchers/match_fedora_datastream_matcher_spec.rb +0 -44
- data/spec/unit/rubydora_connection_spec.rb +0 -12
- data/spec/unit/semantic_node_spec.rb +0 -112
- data/spec/unit/service_definitions_spec.rb +0 -63
- data/spec/unit/solr_digital_object_spec.rb +0 -97
- data/spec/unit/unsaved_digital_object_spec.rb +0 -48
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 23fac3b5c068cdb6deef749ef858f484dc5e5e6d
|
|
4
|
+
data.tar.gz: d8b17b361ea94983e72bcbaad7625600389cf05f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f17f40b3dee2c5d3944fe722bb716726d27da32144c6445cda25e83076ad9a3c3122ea32e1e687cf2431eee90721a32a6cad7ffebccf8c6ab0f4c89992013854
|
|
7
|
+
data.tar.gz: ff15b6b7406fccac6f782e488bef7ea595aef525af56f38a2dd1f5fee0b63f16d4511fa79414297022a4baaca171a5a969864b2f39b293286d4f91e149467bd4
|
data/.travis.yml
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
language: ruby
|
|
2
2
|
rvm:
|
|
3
|
-
- 2.
|
|
3
|
+
- 2.1
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
env: RAILS_VERSION=5.0.7
|
|
13
|
-
- rvm: 2.2.10
|
|
14
|
-
env: RAILS_VERSION=4.2.10
|
|
15
|
-
- rvm: 2.1.10
|
|
16
|
-
env: RAILS_VERSION=4.2.10
|
|
5
|
+
gemfile:
|
|
6
|
+
- gemfiles/rails4.1.gemfile
|
|
7
|
+
- gemfiles/rails4.2.beta.gemfile
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
notifications:
|
|
11
|
+
irc: "irc.freenode.org#projecthydra"
|
|
17
12
|
|
|
18
13
|
env:
|
|
19
14
|
global:
|
|
20
15
|
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true
|
|
21
|
-
|
|
22
|
-
jdk: oraclejdk8
|
data/Gemfile
CHANGED
|
@@ -2,13 +2,13 @@ source "https://rubygems.org"
|
|
|
2
2
|
|
|
3
3
|
# Bundler will rely on active-fedora.gemspec for dependency information.
|
|
4
4
|
|
|
5
|
-
gemspec
|
|
5
|
+
gemspec path: File.expand_path('..', __FILE__)
|
|
6
|
+
|
|
7
|
+
gem 'byebug' unless ENV['TRAVIS']
|
|
6
8
|
|
|
7
9
|
group :test do
|
|
8
10
|
gem 'simplecov', require: false
|
|
11
|
+
gem 'coveralls', require: false
|
|
9
12
|
end
|
|
10
13
|
|
|
11
|
-
gem 'jruby-openssl', :
|
|
12
|
-
gem 'activemodel', ENV['RAILS_VERSION'] if ENV['RAILS_VERSION']
|
|
13
|
-
gem 'linkeddata', '~> 1.99'
|
|
14
|
-
gem 'rsolr', '~> 1.x'
|
|
14
|
+
gem 'jruby-openssl', platform: :jruby
|
data/History.txt
CHANGED
|
@@ -1,83 +1,3 @@
|
|
|
1
|
-
8.1.0
|
|
2
|
-
|
|
3
|
-
2015-04-27: Patches casting behavior [David Chandek-Stark]
|
|
4
|
-
See https://github.com/projecthydra/active_fedora/wiki/Patching-ActiveFedora-7.x-&-8.x-Casting-Behavior
|
|
5
|
-
for detailed information on the problem.
|
|
6
|
-
|
|
7
|
-
The solution offered in this patch preserves the most-specific-class algorithm
|
|
8
|
-
of `ActiveFedora::ContentModel.best_model_for` and raises a new execption,
|
|
9
|
-
`ActiveFedora::ModelNotAsserted` in `ActiveFedora::Core#adapt_to_cmodel`.
|
|
10
|
-
|
|
11
|
-
Note that a repository object can still be loaded into a model class not asserted,
|
|
12
|
-
for example, by using `.find` with `cast: false`.
|
|
13
|
-
|
|
14
|
-
Closes #746 (although not really a backport)
|
|
15
|
-
|
|
16
|
-
8.0.1
|
|
17
|
-
|
|
18
|
-
2015-03-11: Backport solr escape patch [Chris Colvard]
|
|
19
|
-
|
|
20
|
-
8.0.0
|
|
21
|
-
|
|
22
|
-
2015-01-07: Can assign single ActiveTriples::Resource to single-valued attribute
|
|
23
|
-
(fixes #653) [David Chandek-Stark]
|
|
24
|
-
|
|
25
|
-
2014-12-04: point to FCRepo 3.x stable branch [Benjamin Armintor]
|
|
26
|
-
|
|
27
|
-
2013-02-28: github issue 48 tests and YARD [Benjamin Armintor]
|
|
28
|
-
|
|
29
|
-
2014-12-02: Removed pending deprecations omitted in 8.0.0.rc1 Bumped version to
|
|
30
|
-
8.0.0.rc2 [David Chandek-Stark]
|
|
31
|
-
|
|
32
|
-
2014-12-02: Bumped version to 8.0.0.rc1 [David Chandek-Stark]
|
|
33
|
-
|
|
34
|
-
2014-11-28: Removed pending deprecations for version 8.0.0. [David
|
|
35
|
-
Chandek-Stark]
|
|
36
|
-
|
|
37
|
-
2014-11-19: add RDF::Vocabulary subclasses for Fcrepo and ProjectHydra [Benjamin
|
|
38
|
-
Armintor]
|
|
39
|
-
|
|
40
|
-
2014-11-24: rename ActiveFedora::Rdf to ActiveFedora::RDF [Benjamin Armintor]
|
|
41
|
-
|
|
42
|
-
2014-11-21: Adding optional yml paramters as comments so people know they exist
|
|
43
|
-
[Carolyn Cole]
|
|
44
|
-
|
|
45
|
-
2014-11-18: Makes sure all values are handled as arrays [Hector Correa]
|
|
46
|
-
|
|
47
|
-
2014-11-17: Bumped version to 8.0.0.pre1 [David Chandek-Stark]
|
|
48
|
-
|
|
49
|
-
2014-10-02: Remove ObjectResource from RdfDatastream [Tom Johnson]
|
|
50
|
-
|
|
51
|
-
2014-09-22: Factors out behavior from ActiveFedora::Rdf::ObjectResource to mixin
|
|
52
|
-
ActiveFedora::Rdf::Persistence. [David Chandek-Stark]
|
|
53
|
-
|
|
54
|
-
v7.1.2
|
|
55
|
-
|
|
56
|
-
2014-11-05: Revert "clarified a comment" [Adam Wead]
|
|
57
|
-
|
|
58
|
-
2014-11-04: clarified a comment [Brian Maddy]
|
|
59
|
-
|
|
60
|
-
2014-10-21: Correction to comment example [Joe Atzberger]
|
|
61
|
-
|
|
62
|
-
2014-10-07: Bug #479: Typo in XSD filename value stuck in config generator
|
|
63
|
-
templates [Joe Atzberger]
|
|
64
|
-
|
|
65
|
-
v7.1.1
|
|
66
|
-
|
|
67
|
-
2014-09-16: RdfDatastream#deserialize should always return an RDF::Graph. Fixes
|
|
68
|
-
#471 [Justin Coyne]
|
|
69
|
-
|
|
70
|
-
2014-08-15: Set default mimeType for NtriplesRDFDatastream to
|
|
71
|
-
'application/n-triples' per W3C recommendation.
|
|
72
|
-
http://www.w3.org/TR/n-triples/#n-triples-mediatype Fixes #464 [David
|
|
73
|
-
Chandek-Stark]
|
|
74
|
-
|
|
75
|
-
2014-08-04: RDFDatastream#content= patched to accept IO, matching
|
|
76
|
-
Rubydora::Datastream API Fixes #461 [David Chandek-Stark]
|
|
77
|
-
|
|
78
|
-
2014-07-30: Only set ds content in #create_datastream for managed and inline
|
|
79
|
-
[David Chandek-Stark]
|
|
80
|
-
|
|
81
1
|
v7.1.0
|
|
82
2
|
|
|
83
3
|
2014-07-17: Update Om and Rubydora depencencies [Justin Coyne]
|
data/README.md
CHANGED
|
@@ -4,6 +4,7 @@ Description
|
|
|
4
4
|
[](https://travis-ci.org/projecthydra/active\_fedora)
|
|
5
5
|
[](http://badge.fury.io/rb/active-fedora)
|
|
6
6
|
[](https://gemnasium.com/projecthydra/active\_fedora)
|
|
7
|
+
[](https://coveralls.io/r/projecthydra/active_fedora)
|
|
7
8
|
|
|
8
9
|
Rubydora and ActiveFedora provide a set of Ruby gems for creating and
|
|
9
10
|
managing objects in the Fedora Repository Architecture
|
data/Rakefile
CHANGED
data/active-fedora.gemspec
CHANGED
|
@@ -14,23 +14,23 @@ Gem::Specification.new do |s|
|
|
|
14
14
|
s.license = "APACHE2"
|
|
15
15
|
s.required_ruby_version = '>= 1.9.3'
|
|
16
16
|
|
|
17
|
-
s.add_dependency 'rsolr', "
|
|
17
|
+
s.add_dependency 'rsolr', "~> 1.0.10"
|
|
18
18
|
s.add_dependency 'om', '~> 3.1'
|
|
19
19
|
s.add_dependency 'nom-xml', '>= 0.5.1'
|
|
20
|
-
s.add_dependency "activesupport", '>= 4.
|
|
21
|
-
s.add_dependency "rubydora", '>= 1.8.0', '< 3'
|
|
20
|
+
s.add_dependency "activesupport", '>= 4.1.0'
|
|
22
21
|
s.add_dependency "active-triples", '~> 0.4.0'
|
|
23
|
-
s.add_dependency "rdf-rdfxml", '~> 1.1'
|
|
22
|
+
s.add_dependency "rdf-rdfxml", '~> 1.1.0'
|
|
23
|
+
s.add_dependency "linkeddata"
|
|
24
24
|
s.add_dependency "deprecation"
|
|
25
|
+
s.add_dependency "ldp", '~> 0.0.9'
|
|
26
|
+
s.add_dependency "rdf-ldp"
|
|
27
|
+
|
|
25
28
|
s.add_development_dependency "rdoc"
|
|
26
29
|
s.add_development_dependency "yard"
|
|
27
30
|
s.add_development_dependency "rake"
|
|
28
31
|
s.add_development_dependency "jettywrapper", ">=1.4.0"
|
|
29
32
|
s.add_development_dependency "rspec", "~> 3.0"
|
|
30
|
-
s.add_development_dependency "rspec-its"
|
|
31
33
|
s.add_development_dependency "equivalent-xml"
|
|
32
|
-
s.add_development_dependency "rest-client"
|
|
33
|
-
s.add_development_dependency "webmock"
|
|
34
34
|
s.add_development_dependency "simplecov", '~> 0.7.1'
|
|
35
35
|
|
|
36
36
|
s.files = `git ls-files`.split("\n")
|
|
@@ -43,3 +43,4 @@ Gem::Specification.new do |s|
|
|
|
43
43
|
s.require_paths = ["lib"]
|
|
44
44
|
|
|
45
45
|
end
|
|
46
|
+
|
data/config/fedora.yml
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
development:
|
|
2
2
|
user: fedoraAdmin
|
|
3
3
|
password: fedoraAdmin
|
|
4
|
-
url: http://127.0.0.1:8983/fedora
|
|
4
|
+
url: http://127.0.0.1:8983/fedora/rest
|
|
5
|
+
base_path: /dev
|
|
5
6
|
test:
|
|
6
7
|
user: fedoraAdmin
|
|
7
8
|
password: fedoraAdmin
|
|
8
|
-
url: http://
|
|
9
|
+
url: http://localhost:8983/fedora/rest
|
|
10
|
+
base_path: /test
|
|
9
11
|
production:
|
|
10
12
|
user: fedoraAdmin
|
|
11
13
|
password: fedoraAdmin
|
|
12
|
-
url: http://127.0.0.1:
|
|
13
|
-
|
|
14
|
+
url: http://127.0.0.1:8983/fedora/rest
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# The default namespace maps to the default namespace for generating
|
|
2
|
-
:default_namespace: info
|
|
1
|
+
# The default namespace maps to the default namespace for generating relationships from solr
|
|
2
|
+
:default_namespace: http://fedora.info/definitions/v4/rels-ext#
|
|
3
3
|
|
|
4
4
|
# namespace mappings---
|
|
5
5
|
# you can add specific mappings for your institution by providing the following:
|
|
6
6
|
# namespace_uri:
|
|
7
7
|
# :relationship_symbol: relationship_identifier
|
|
8
8
|
#
|
|
9
|
-
# For example, if you have the following element in your
|
|
9
|
+
# For example, if you have the following element in your relationships:
|
|
10
10
|
#
|
|
11
11
|
# <oai:itemID>oai:example.edu:changeme:500</oai:itemID>
|
|
12
12
|
#
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
# :oai_item_id => ["info:fedora/oai:example.edu:changeme:500"]
|
|
15
15
|
#
|
|
16
16
|
:predicate_mapping:
|
|
17
|
-
info
|
|
17
|
+
http://fedora.info/definitions/v4/rels-ext#:
|
|
18
18
|
:conforms_to: conformsTo
|
|
19
19
|
:has_annotation: hasAnnotation
|
|
20
20
|
:has_collection_member: hasCollectionMember
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
:is_part_of: isPartOf
|
|
41
41
|
:is_subset_of: isSubsetOf
|
|
42
42
|
:is_topic_of: isTopicOf
|
|
43
|
-
info
|
|
43
|
+
http://fedora.info/definitions/v4/model#:
|
|
44
44
|
:is_contractor_of: isContractorOf
|
|
45
45
|
:is_deployment_of: isDeploymentOf
|
|
46
46
|
:has_service: hasService
|
data/lib/active_fedora.rb
CHANGED
|
@@ -1,49 +1,65 @@
|
|
|
1
1
|
require 'active_support'
|
|
2
|
-
require
|
|
2
|
+
require 'active_model'
|
|
3
|
+
require 'ldp'
|
|
4
|
+
require 'solrizer'
|
|
3
5
|
require 'active_fedora/file_configurator'
|
|
4
|
-
require 'active_fedora/rubydora_connection'
|
|
5
6
|
require 'active_support/core_ext/class/attribute'
|
|
6
7
|
require 'active_support/core_ext/object'
|
|
7
8
|
require 'active_support/core_ext/hash/indifferent_access'
|
|
8
|
-
require
|
|
9
|
+
require 'active_support/core_ext/hash/except'
|
|
9
10
|
require 'active_triples'
|
|
11
|
+
require 'rdf/ldp'
|
|
10
12
|
|
|
11
13
|
SOLR_DOCUMENT_ID = Solrizer.default_field_mapper.id_field unless defined?(SOLR_DOCUMENT_ID)
|
|
12
14
|
ENABLE_SOLR_UPDATES = true unless defined?(ENABLE_SOLR_UPDATES)
|
|
13
15
|
|
|
16
|
+
# Monkey patching RDF::Literal::DateTime to support fractional seconds.
|
|
17
|
+
# See https://github.com/projecthydra/active_fedora/issues/497
|
|
18
|
+
module RDF
|
|
19
|
+
class Literal
|
|
20
|
+
class DateTime < Literal
|
|
21
|
+
ALTERNATIVE_FORMAT = '%Y-%m-%dT%H:%M:%S'.freeze
|
|
22
|
+
|
|
23
|
+
def to_s
|
|
24
|
+
@string ||= begin
|
|
25
|
+
nano = @object.strftime('%N').sub(/0+\Z/, '')
|
|
26
|
+
nano = '.' + nano unless nano.blank?
|
|
27
|
+
@object.strftime(ALTERNATIVE_FORMAT) + nano + 'Z'
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
14
34
|
module ActiveFedora #:nodoc:
|
|
15
35
|
extend ActiveSupport::Autoload
|
|
16
36
|
|
|
17
|
-
class ObjectNotFoundError < RuntimeError; end # :nodoc:
|
|
18
|
-
class PredicateMappingsNotFoundError < RuntimeError; end # :nodoc:
|
|
19
|
-
class UnknownAttributeError < NoMethodError; end; # :nodoc:
|
|
20
|
-
class ConfigurationError < RuntimeError; end # :nodoc:
|
|
21
|
-
class AssociationTypeMismatch < RuntimeError; end # :nodoc:
|
|
22
|
-
class UnregisteredPredicateError < RuntimeError; end # :nodoc:
|
|
23
|
-
class RecordNotSaved < RuntimeError; end # :nodoc:
|
|
24
|
-
class IllegalOperation < RuntimeError; end # :nodoc:
|
|
25
|
-
class Rollback < RuntimeError; end # :nodoc:
|
|
26
|
-
class ModelNotAsserted < RuntimeError; end # :nodoc:
|
|
27
|
-
|
|
28
37
|
eager_autoload do
|
|
29
38
|
autoload :AssociationRelation
|
|
30
39
|
autoload :Associations
|
|
40
|
+
autoload :AttachedFiles
|
|
41
|
+
autoload :AttributeMethods
|
|
31
42
|
autoload :Attributes
|
|
32
|
-
autoload :Auditable
|
|
33
43
|
autoload :AutosaveAssociation
|
|
34
44
|
autoload :Base
|
|
35
|
-
autoload :ContentModel
|
|
36
45
|
autoload :Callbacks
|
|
46
|
+
autoload :ChangeSet
|
|
37
47
|
autoload :Config
|
|
38
48
|
autoload :Core
|
|
39
49
|
autoload :Datastream
|
|
40
|
-
autoload :DatastreamAttribute
|
|
41
|
-
autoload :DatastreamHash
|
|
42
50
|
autoload :Datastreams
|
|
43
|
-
autoload :
|
|
51
|
+
autoload :DelegatedAttribute
|
|
52
|
+
autoload :Fedora
|
|
44
53
|
autoload :FedoraAttributes
|
|
54
|
+
autoload :File
|
|
45
55
|
autoload :FileConfigurator
|
|
56
|
+
autoload :FilePathBuilder
|
|
57
|
+
autoload :FilesHash
|
|
58
|
+
autoload :FixityService
|
|
46
59
|
autoload :Indexing
|
|
60
|
+
autoload :IndexingService
|
|
61
|
+
autoload :LdpResource
|
|
62
|
+
autoload :LoadableFromJson
|
|
47
63
|
autoload :Model
|
|
48
64
|
autoload :NestedAttributes
|
|
49
65
|
autoload :NomDatastream
|
|
@@ -56,12 +72,12 @@ module ActiveFedora #:nodoc:
|
|
|
56
72
|
autoload :RDF
|
|
57
73
|
autoload_under 'rdf' do
|
|
58
74
|
autoload :RDFDatastream
|
|
59
|
-
autoload :
|
|
75
|
+
autoload :RDFXMLDatastream
|
|
60
76
|
autoload :NtriplesRDFDatastream
|
|
77
|
+
autoload :FedoraRdfResource
|
|
61
78
|
end
|
|
62
79
|
autoload :Reflection
|
|
63
80
|
autoload :Relation
|
|
64
|
-
autoload :ReloadOnSave
|
|
65
81
|
|
|
66
82
|
autoload_under 'relation' do
|
|
67
83
|
autoload :Calculations
|
|
@@ -71,25 +87,38 @@ module ActiveFedora #:nodoc:
|
|
|
71
87
|
autoload :FinderMethods
|
|
72
88
|
end
|
|
73
89
|
|
|
74
|
-
autoload :RelationshipGraph
|
|
75
|
-
autoload :RelsExtDatastream
|
|
76
90
|
autoload :Scoping
|
|
77
|
-
autoload :SemanticNode
|
|
78
|
-
autoload :ServiceDefinitions
|
|
79
91
|
autoload :Serialization
|
|
80
|
-
autoload :Sharding
|
|
81
92
|
autoload :SimpleDatastream
|
|
82
|
-
autoload :
|
|
93
|
+
autoload :SolrInstanceLoader
|
|
83
94
|
autoload :SolrService
|
|
84
|
-
autoload :
|
|
85
|
-
autoload :FixtureLoader
|
|
86
|
-
autoload :FixtureExporter
|
|
87
|
-
autoload :DatastreamCollections
|
|
95
|
+
autoload :SparqlInsert
|
|
88
96
|
autoload :Predicates
|
|
89
97
|
autoload :Validations
|
|
90
|
-
autoload :
|
|
98
|
+
autoload :Versionable
|
|
99
|
+
autoload :WithMetadata
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
module AttributeMethods
|
|
103
|
+
extend ActiveSupport::Autoload
|
|
104
|
+
|
|
105
|
+
eager_autoload do
|
|
106
|
+
autoload :Read
|
|
107
|
+
autoload :Write
|
|
108
|
+
autoload :Dirty
|
|
109
|
+
end
|
|
91
110
|
end
|
|
92
111
|
|
|
112
|
+
module Attributes
|
|
113
|
+
extend ActiveSupport::Autoload
|
|
114
|
+
|
|
115
|
+
eager_autoload do
|
|
116
|
+
autoload :Serializers
|
|
117
|
+
autoload :PrimaryKey
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
|
|
93
122
|
module Scoping
|
|
94
123
|
extend ActiveSupport::Autoload
|
|
95
124
|
|
|
@@ -102,101 +131,106 @@ module ActiveFedora #:nodoc:
|
|
|
102
131
|
class << self
|
|
103
132
|
attr_reader :fedora_config, :solr_config, :config_options
|
|
104
133
|
attr_accessor :configurator
|
|
105
|
-
end
|
|
106
|
-
self.configurator ||= ActiveFedora::FileConfigurator.new
|
|
107
|
-
|
|
108
|
-
def self.fedora_config
|
|
109
|
-
@fedora_config ||= Config.new(configurator.fedora_config)
|
|
110
|
-
end
|
|
111
|
-
def self.solr_config; self.configurator.solr_config; end
|
|
112
|
-
def self.config_options; self.configurator.config_options; end
|
|
113
|
-
def self.config_loaded?; self.configurator.config_loaded?; end
|
|
114
|
-
|
|
115
|
-
def self.init( options={} )
|
|
116
|
-
# Make config_options into a Hash if nil is passed in as the value
|
|
117
|
-
options = {} if options.nil?
|
|
118
|
-
# For backwards compatibility, handle cases where config_path (a String) is passed in as the argument rather than a config_options hash
|
|
119
|
-
# In all other cases, set config_path to config_options[:config_path], which is ok if it's nil
|
|
120
|
-
if options.is_a? String
|
|
121
|
-
raise ArgumentError, "Calling ActiveFedora.init with a path as an argument has been removed. Use ActiveFedora.init(:fedora_config_path=>#{options})"
|
|
122
|
-
end
|
|
123
|
-
@fedora_config = nil
|
|
124
|
-
SolrService.reset!
|
|
125
|
-
Predicates.predicate_config = nil
|
|
126
|
-
self.configurator.init(options)
|
|
127
|
-
end
|
|
128
134
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
135
|
+
def fedora_config
|
|
136
|
+
@fedora_config ||= Config.new(configurator.fedora_config)
|
|
137
|
+
end
|
|
138
|
+
def solr_config; configurator.solr_config; end
|
|
139
|
+
def config_options; configurator.config_options; end
|
|
140
|
+
def config_loaded?; configurator.config_loaded?; end
|
|
132
141
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
return config_options[:environment]
|
|
146
|
-
elsif defined?(Rails.env) and !Rails.env.nil?
|
|
147
|
-
return Rails.env.to_s
|
|
148
|
-
elsif defined?(ENV['environment']) and !(ENV['environment'].nil?)
|
|
149
|
-
return ENV['environment']
|
|
150
|
-
elsif defined?(ENV['RAILS_ENV']) and !(ENV['RAILS_ENV'].nil?)
|
|
151
|
-
raise RuntimeError, "You're depending on RAILS_ENV for setting your environment. Please use ENV['environment'] for non-rails environment setting: 'rake foo:bar environment=test'"
|
|
152
|
-
else
|
|
153
|
-
ENV['environment'] = 'development'
|
|
142
|
+
def init( options={} )
|
|
143
|
+
# Make config_options into a Hash if nil is passed in as the value
|
|
144
|
+
options = {} if options.nil?
|
|
145
|
+
# For backwards compatibility, handle cases where config_path (a String) is passed in as the argument rather than a config_options hash
|
|
146
|
+
# In all other cases, set config_path to config_options[:config_path], which is ok if it's nil
|
|
147
|
+
if options.is_a? String
|
|
148
|
+
raise ArgumentError, "Calling ActiveFedora.init with a path as an argument has been removed. Use ActiveFedora.init(:fedora_config_path=>#{options})"
|
|
149
|
+
end
|
|
150
|
+
@fedora_config = nil
|
|
151
|
+
SolrService.reset!
|
|
152
|
+
Predicates.predicate_config = nil
|
|
153
|
+
configurator.init(options)
|
|
154
154
|
end
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
# @example Search within ActiveFedora::RdfNode for a class called "TermProxy"
|
|
180
|
-
# ActiveFedora.class_from_string("TermProxy", ActiveFedora::RdfNode)
|
|
181
|
-
# => ActiveFedora::RdfNode::TermProxy
|
|
182
|
-
def self.class_from_string(class_name, container_class=Kernel)
|
|
183
|
-
container_class = container_class.name if container_class.is_a? Module
|
|
184
|
-
container_parts = container_class.split('::')
|
|
185
|
-
(container_parts + class_name.split('::')).flatten.inject(Kernel) do |mod, class_name|
|
|
186
|
-
if mod == Kernel
|
|
187
|
-
Object.const_get(class_name)
|
|
188
|
-
elsif mod.const_defined? class_name.to_sym
|
|
189
|
-
mod.const_get(class_name)
|
|
155
|
+
|
|
156
|
+
def config
|
|
157
|
+
fedora_config
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
# Determine what environment we're running in. Order of preference is:
|
|
161
|
+
# 1. config_options[:environment]
|
|
162
|
+
# 2. Rails.env
|
|
163
|
+
# 3. ENV['environment']
|
|
164
|
+
# 4. ENV['RAILS_ENV']
|
|
165
|
+
# 5. development
|
|
166
|
+
# @return [String]
|
|
167
|
+
# @example
|
|
168
|
+
# ActiveFedora.init(:environment=>"test")
|
|
169
|
+
# ActiveFedora.environment => "test"
|
|
170
|
+
def environment
|
|
171
|
+
if config_options.fetch(:environment,nil)
|
|
172
|
+
return config_options[:environment]
|
|
173
|
+
elsif defined?(Rails.env) and !Rails.env.nil?
|
|
174
|
+
return Rails.env.to_s
|
|
175
|
+
elsif defined?(ENV['environment']) and !(ENV['environment'].nil?)
|
|
176
|
+
return ENV['environment']
|
|
177
|
+
elsif defined?(ENV['RAILS_ENV']) and !(ENV['RAILS_ENV'].nil?)
|
|
178
|
+
raise RuntimeError, "You're depending on RAILS_ENV for setting your environment. Please use ENV['environment'] for non-rails environment setting: 'rake foo:bar environment=test'"
|
|
190
179
|
else
|
|
191
|
-
|
|
192
|
-
|
|
180
|
+
ENV['environment'] = 'development'
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
def solr
|
|
185
|
+
ActiveFedora::SolrService.instance
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
def fedora
|
|
189
|
+
@fedora ||= Fedora.new(fedora_config.credentials)
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
def predicate_config
|
|
193
|
+
configurator.predicate_config
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
def root
|
|
197
|
+
::File.expand_path('../..', __FILE__)
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
def version
|
|
201
|
+
ActiveFedora::VERSION
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
# Convenience method for getting class constant based on a string
|
|
205
|
+
# @example
|
|
206
|
+
# ActiveFedora.class_from_string("Om")
|
|
207
|
+
# => Om
|
|
208
|
+
# ActiveFedora.class_from_string("ActiveFedora::RdfNode::TermProxy")
|
|
209
|
+
# => ActiveFedora::RdfNode::TermProxy
|
|
210
|
+
# @example Search within ActiveFedora::RdfNode for a class called "TermProxy"
|
|
211
|
+
# ActiveFedora.class_from_string("TermProxy", ActiveFedora::RdfNode)
|
|
212
|
+
# => ActiveFedora::RdfNode::TermProxy
|
|
213
|
+
def class_from_string(class_name, container_class=Kernel)
|
|
214
|
+
container_class = container_class.name if container_class.is_a? Module
|
|
215
|
+
container_parts = container_class.split('::')
|
|
216
|
+
(container_parts + class_name.split('::')).flatten.inject(Kernel) do |mod, class_name|
|
|
217
|
+
if mod == Kernel
|
|
218
|
+
Object.const_get(class_name)
|
|
219
|
+
elsif mod.const_defined? class_name.to_sym
|
|
220
|
+
mod.const_get(class_name)
|
|
221
|
+
else
|
|
222
|
+
container_parts.pop
|
|
223
|
+
class_from_string(class_name, container_parts.join('::'))
|
|
224
|
+
end
|
|
193
225
|
end
|
|
194
226
|
end
|
|
195
227
|
end
|
|
196
228
|
|
|
229
|
+
self.configurator ||= ActiveFedora::FileConfigurator.new
|
|
230
|
+
|
|
197
231
|
end
|
|
198
232
|
|
|
199
233
|
|
|
200
|
-
I18n.load_path << File.dirname(__FILE__) + '/active_fedora/locale/en.yml'
|
|
234
|
+
I18n.load_path << ::File.dirname(__FILE__) + '/active_fedora/locale/en.yml'
|
|
201
235
|
|
|
202
236
|
require 'active_fedora/railtie' if defined?(Rails)
|