active-fedora 9.13.0 → 10.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 +4 -4
- data/README.md +0 -19
- data/lib/active_fedora.rb +0 -17
- data/lib/active_fedora/associations.rb +0 -16
- data/lib/active_fedora/associations/builder/association.rb +3 -19
- data/lib/active_fedora/associations/builder/has_and_belongs_to_many.rb +1 -3
- data/lib/active_fedora/attached_files.rb +2 -108
- data/lib/active_fedora/attributes.rb +4 -100
- data/lib/active_fedora/core.rb +0 -6
- data/lib/active_fedora/datastreams.rb +0 -2
- data/lib/active_fedora/errors.rb +0 -9
- data/lib/active_fedora/file.rb +9 -22
- data/lib/active_fedora/file_configurator.rb +1 -32
- data/lib/active_fedora/identifiable.rb +0 -6
- data/lib/active_fedora/ldp_resource.rb +0 -12
- data/lib/active_fedora/qualified_dublin_core_datastream.rb +1 -1
- data/lib/active_fedora/query_result_builder.rb +0 -17
- data/lib/active_fedora/rdf/datastream_indexing.rb +0 -11
- data/lib/active_fedora/rdf/indexing_service.rb +1 -1
- data/lib/active_fedora/rdf/rdf_datastream.rb +0 -10
- data/lib/active_fedora/relation/finder_methods.rb +2 -21
- data/lib/active_fedora/solr_query_builder.rb +0 -16
- data/lib/active_fedora/solr_service.rb +2 -89
- data/lib/active_fedora/version.rb +1 -1
- data/lib/active_fedora/versionable.rb +0 -8
- data/spec/config_helper.rb +0 -4
- data/spec/integration/attached_files_spec.rb +1 -108
- data/spec/integration/attributes_spec.rb +14 -94
- data/spec/integration/direct_container_spec.rb +2 -2
- data/spec/integration/file_spec.rb +23 -13
- data/spec/integration/indexing_spec.rb +4 -4
- data/spec/integration/json_serialization_spec.rb +4 -57
- data/spec/integration/ntriples_datastream_spec.rb +77 -139
- data/spec/integration/relation_delegation_spec.rb +16 -18
- data/spec/integration/{model_spec.rb → scoping_spec.rb} +10 -14
- data/spec/integration/solr_hit_spec.rb +4 -20
- data/spec/integration/solr_instance_loader_spec.rb +1 -13
- data/spec/integration/versionable_spec.rb +0 -9
- data/spec/samples/models/mods_article.rb +1 -6
- data/spec/spec_helper.rb +0 -3
- data/spec/unit/attached_files_spec.rb +29 -127
- data/spec/unit/attributes_spec.rb +51 -475
- data/spec/unit/base_active_model_spec.rb +12 -47
- data/spec/unit/base_extra_spec.rb +1 -1
- data/spec/unit/code_configurator_spec.rb +2 -10
- data/spec/unit/core_spec.rb +3 -18
- data/spec/unit/file_configurator_spec.rb +0 -80
- data/spec/unit/file_spec.rb +0 -6
- data/spec/unit/has_and_belongs_to_many_association_spec.rb +0 -7
- data/spec/unit/inheritance_spec.rb +0 -12
- data/spec/unit/ntriples_datastream_spec.rb +2 -74
- data/spec/unit/property_spec.rb +0 -3
- data/spec/unit/query_spec.rb +0 -7
- data/spec/unit/querying_spec.rb +24 -0
- data/spec/unit/rdf/indexing_service_spec.rb +32 -20
- data/spec/unit/rdf_resource_datastream_spec.rb +37 -97
- data/spec/unit/solr_query_builder_spec.rb +0 -8
- data/spec/unit/solr_service_spec.rb +0 -13
- metadata +6 -19
- data/config/predicate_mappings.yml +0 -51
- data/lib/active_fedora/attributes/om_attribute.rb +0 -26
- data/lib/active_fedora/attributes/rdf_datastream_attribute.rb +0 -44
- data/lib/active_fedora/attributes/stream_attribute.rb +0 -43
- data/lib/active_fedora/datastream.rb +0 -9
- data/lib/active_fedora/model.rb +0 -31
- data/lib/active_fedora/predicates.rb +0 -122
- data/lib/active_fedora/simple_datastream.rb +0 -92
- data/spec/fixtures/rails_root/config/predicate_mappings.yml +0 -31
- data/spec/integration/field_to_solr_name_spec.rb +0 -36
- data/spec/unit/base_datastream_management_spec.rb +0 -19
- data/spec/unit/model_spec.rb +0 -30
- data/spec/unit/predicates_spec.rb +0 -126
- data/spec/unit/simple_datastream_spec.rb +0 -101
data/lib/active_fedora/core.rb
CHANGED
@@ -151,12 +151,6 @@ module ActiveFedora
|
|
151
151
|
attributes = { id: attributes_or_id }.with_indifferent_access
|
152
152
|
when Hash
|
153
153
|
attributes = attributes_or_id.with_indifferent_access
|
154
|
-
# TODO: Remove when we decide using 'pid' is no longer supported.
|
155
|
-
if !attributes.key?(:id) && attributes.key?(:pid)
|
156
|
-
Deprecation.warn Core, 'Initializing with :pid is deprecated and will be removed in active-fedora 10.0. Use :id instead'
|
157
|
-
attributes[:id] = attributes.delete(:pid)
|
158
|
-
end
|
159
|
-
|
160
154
|
when NilClass
|
161
155
|
attributes = {}.with_indifferent_access
|
162
156
|
else
|
data/lib/active_fedora/errors.rb
CHANGED
@@ -22,10 +22,6 @@ module ActiveFedora #:nodoc:
|
|
22
22
|
class ConfigurationError < ActiveFedoraError
|
23
23
|
end
|
24
24
|
|
25
|
-
# Raised when ActiveFedora cannot find the predicate mapping configuration file
|
26
|
-
class PredicateMappingsNotFoundError < ConfigurationError
|
27
|
-
end
|
28
|
-
|
29
25
|
# Raised when an object assigned to an association has an incorrect type.
|
30
26
|
#
|
31
27
|
# class Ticket < ActiveFedora::Base
|
@@ -57,11 +53,6 @@ module ActiveFedora #:nodoc:
|
|
57
53
|
end
|
58
54
|
end
|
59
55
|
|
60
|
-
# Raised when ActiveFedora cannot find the predicate corresponding to the given property
|
61
|
-
# in the predicate registy
|
62
|
-
class UnregisteredPredicateError < ActiveFedoraError
|
63
|
-
end
|
64
|
-
|
65
56
|
# Raised by ActiveFedora::Base.save! and ActiveFedora::Base.create! methods when record cannot be
|
66
57
|
# saved because record is invalid.
|
67
58
|
class RecordNotSaved < ActiveFedoraError
|
data/lib/active_fedora/file.rb
CHANGED
@@ -6,7 +6,6 @@ module ActiveFedora
|
|
6
6
|
extend ActiveModel::Callbacks
|
7
7
|
extend ActiveSupport::Autoload
|
8
8
|
extend ActiveTriples::Properties
|
9
|
-
extend Deprecation
|
10
9
|
extend Querying
|
11
10
|
|
12
11
|
autoload :Streaming
|
@@ -29,32 +28,20 @@ module ActiveFedora
|
|
29
28
|
define_model_callbacks :update, :save, :create, :destroy
|
30
29
|
define_model_callbacks :initialize, only: :after
|
31
30
|
|
32
|
-
# @param
|
33
|
-
# @param [String] path the path partial relative to the resource
|
34
|
-
# @param [Hash] _options
|
31
|
+
# @param [Hash, RDF::URI, String, NilClass] identifier the id (path) or URI of this resource. The hash gets passed when calling Reflection#build_association, but currently we don't do anything with it.
|
35
32
|
# @yield [self] Yields self
|
36
33
|
# @yieldparam [File] self the newly created file
|
37
|
-
def initialize(
|
34
|
+
def initialize(identifier = nil, &_block)
|
35
|
+
identifier = nil if identifier.is_a? Hash
|
38
36
|
run_callbacks(:initialize) do
|
39
|
-
case
|
40
|
-
when
|
41
|
-
@ldp_source = build_ldp_resource_via_uri
|
42
|
-
when
|
43
|
-
|
44
|
-
when String, ::RDF::URI
|
45
|
-
id = ActiveFedora::Associations::IDComposite.new([parent_or_url_or_hash], translate_uri_to_id).first
|
37
|
+
case identifier
|
38
|
+
when nil, ::RDF::URI
|
39
|
+
@ldp_source = build_ldp_resource_via_uri identifier
|
40
|
+
when String
|
41
|
+
id = ActiveFedora::Associations::IDComposite.new([identifier], translate_uri_to_id).first
|
46
42
|
@ldp_source = build_ldp_resource id
|
47
|
-
when ActiveFedora::Base
|
48
|
-
Deprecation.warn File, "Initializing a file by passing a container is deprecated. Initialize with a uri instead. This capability will be removed in active-fedora 10.0"
|
49
|
-
uri = if parent_or_url_or_hash.uri.is_a?(::RDF::URI) && parent_or_url_or_hash.uri.value.empty?
|
50
|
-
nil
|
51
|
-
else
|
52
|
-
"#{parent_or_url_or_hash.uri}/#{path}"
|
53
|
-
end
|
54
|
-
@ldp_source = build_ldp_resource_via_uri(uri, nil)
|
55
|
-
|
56
43
|
else
|
57
|
-
raise "The first argument to #{self} must be a String or
|
44
|
+
raise "The first argument to #{self} must be a Hash, String or RDF::URI. You provided a #{uri.class}"
|
58
45
|
end
|
59
46
|
|
60
47
|
@attributes = {}.with_indifferent_access
|
@@ -4,10 +4,7 @@ require 'yaml'
|
|
4
4
|
|
5
5
|
module ActiveFedora
|
6
6
|
class FileConfigurator
|
7
|
-
extend Deprecation
|
8
7
|
# Initializes ActiveFedora's connection to Fedora and Solr based on the info in fedora.yml and solr.yml
|
9
|
-
# NOTE: this deprecates the use of a solr url in the fedora.yml
|
10
|
-
#
|
11
8
|
#
|
12
9
|
# If Rails.env is set, it will use that environment. Defaults to "development".
|
13
10
|
# @param [Hash] options (optional) a list of options for the configuration of active_fedora
|
@@ -49,7 +46,7 @@ module ActiveFedora
|
|
49
46
|
#
|
50
47
|
|
51
48
|
attr_accessor :config_env
|
52
|
-
attr_reader :config_options, :fedora_config_path, :solr_config_path
|
49
|
+
attr_reader :config_options, :fedora_config_path, :solr_config_path
|
53
50
|
|
54
51
|
# The configuration hash that gets used by RSolr.connect
|
55
52
|
def initialize
|
@@ -84,7 +81,6 @@ module ActiveFedora
|
|
84
81
|
@fedora_config = {}
|
85
82
|
@solr_config = {}
|
86
83
|
@config_options = {}
|
87
|
-
@predicate_config_path = nil
|
88
84
|
end
|
89
85
|
|
90
86
|
def config_loaded?
|
@@ -161,11 +157,6 @@ module ActiveFedora
|
|
161
157
|
end
|
162
158
|
end
|
163
159
|
|
164
|
-
def get_config_path(config_type)
|
165
|
-
Deprecation.warn(FileConfigurator, "get_config_path is deprecated and will be removed in ActiveFedora 10. Use config_path instead.")
|
166
|
-
config_path(config_type)
|
167
|
-
end
|
168
|
-
|
169
160
|
# Determine the fedora config file to use. Order of preference is:
|
170
161
|
# 1. Use the config_options[:config_path] if it exists
|
171
162
|
# 2. Look in +Rails.root+/config/fedora.yml
|
@@ -210,27 +201,5 @@ module ActiveFedora
|
|
210
201
|
return unless ::File.file? path
|
211
202
|
path
|
212
203
|
end
|
213
|
-
|
214
|
-
def predicate_config
|
215
|
-
@predicate_config_path ||= build_predicate_config_path
|
216
|
-
YAML.load(::File.open(@predicate_config_path)) if ::File.exist?(@predicate_config_path)
|
217
|
-
end
|
218
|
-
|
219
|
-
protected
|
220
|
-
|
221
|
-
def build_predicate_config_path
|
222
|
-
testfile = ::File.expand_path(config_path(:predicate_mappings))
|
223
|
-
if ::File.exist?(testfile) && valid_predicate_mapping?(testfile)
|
224
|
-
return testfile
|
225
|
-
end
|
226
|
-
raise PredicateMappingsNotFoundError
|
227
|
-
end
|
228
|
-
|
229
|
-
def valid_predicate_mapping?(testfile)
|
230
|
-
mapping = YAML.load(::File.open(testfile))
|
231
|
-
return false unless mapping.key?(:default_namespace) && mapping[:default_namespace].is_a?(String)
|
232
|
-
return false unless mapping.key?(:predicate_mapping) && mapping[:predicate_mapping].is_a?(Hash)
|
233
|
-
true
|
234
|
-
end
|
235
204
|
end
|
236
205
|
end
|
@@ -45,12 +45,6 @@ module ActiveFedora
|
|
45
45
|
@ldp_source = build_ldp_resource(id.to_s)
|
46
46
|
end
|
47
47
|
|
48
|
-
# TODO: Remove after we no longer support #pid.
|
49
|
-
def pid
|
50
|
-
Deprecation.warn FedoraAttributes, "#{self.class}#pid is deprecated and will be removed in active-fedora 10.0. Use #{self.class}#id instead."
|
51
|
-
id
|
52
|
-
end
|
53
|
-
|
54
48
|
# @return [RDF::URI] the uri for this resource
|
55
49
|
def uri
|
56
50
|
@ldp_source.subject_uri
|
@@ -12,18 +12,6 @@ module ActiveFedora
|
|
12
12
|
self.class.graph_class
|
13
13
|
end
|
14
14
|
|
15
|
-
##
|
16
|
-
# @param [RDF::Graph] original_graph The graph returned by the LDP server
|
17
|
-
# @return [RDF::Graph] A graph striped of any inlined resources present in the original
|
18
|
-
def build_graph(original_graph)
|
19
|
-
Deprecation.warn(ActiveFedora::LdpResource, '#build_graph is deprecated and will be removed in active-fedora 10.0')
|
20
|
-
inlined_resources = get.graph.query(predicate: Ldp.contains).map(&:object)
|
21
|
-
|
22
|
-
# ActiveFedora always wants to copy the resources to a new graph because it
|
23
|
-
# forces a cast to FedoraRdfResource
|
24
|
-
graph_without_inlined_resources(original_graph, inlined_resources)
|
25
|
-
end
|
26
|
-
|
27
15
|
# Don't dump @client, it has a proc and thus can't be serialized.
|
28
16
|
def marshal_dump
|
29
17
|
(instance_variables - [:@client]).map { |name| [name, instance_variable_get(name)] }
|
@@ -81,7 +81,7 @@ module ActiveFedora
|
|
81
81
|
|
82
82
|
# Constructor. this class will call self.field for each DCTERM. In short, all DCTERMS fields will already exist
|
83
83
|
# when this method returns. Each term is marked as a multivalue string.
|
84
|
-
def initialize(
|
84
|
+
def initialize(string_or_url = nil)
|
85
85
|
super
|
86
86
|
self.fields = {}
|
87
87
|
DCTERMS.each do |el|
|
@@ -12,23 +12,6 @@ module ActiveFedora
|
|
12
12
|
lazy_reify_solr_results(solr_results, opts).to_a
|
13
13
|
end
|
14
14
|
|
15
|
-
def self.reify_solr_result(hit, _opts = {})
|
16
|
-
Deprecation.warn(ActiveFedora::Base, 'ActiveFedora::QueryResultBuilder.reify_solr_result is deprecated and will be removed in ActiveFedora 10.0; call #reify on the SolrHit instead.')
|
17
|
-
ActiveFedora::SolrHit.for(hit).reify
|
18
|
-
end
|
19
|
-
|
20
|
-
# Returns all possible classes for the solr object
|
21
|
-
def self.classes_from_solr_document(hit, _opts = {})
|
22
|
-
Deprecation.warn(ActiveFedora::Base, 'ActiveFedora::QueryResultBuilder.classes_from_solr_document is deprecated and will be removed in ActiveFedora 10.0; call #models on the SolrHit instead.')
|
23
|
-
ActiveFedora::SolrHit.for(hit).models
|
24
|
-
end
|
25
|
-
|
26
|
-
# Returns the best singular class for the solr object
|
27
|
-
def self.class_from_solr_document(hit, opts = {})
|
28
|
-
Deprecation.warn(ActiveFedora::Base, 'ActiveFedora::QueryResultBuilder.class_from_solr_document is deprecated and will be removed in ActiveFedora 10.0; call #model on the SolrHit instead.')
|
29
|
-
ActiveFedora::SolrHit.for(hit).model(opts)
|
30
|
-
end
|
31
|
-
|
32
15
|
HAS_MODEL_SOLR_FIELD = ActiveFedora.index_field_mapper.solr_name("has_model", :symbol).freeze
|
33
16
|
end
|
34
17
|
end
|
@@ -8,17 +8,6 @@ module ActiveFedora::RDF
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
# Gives the primary solr name for a column. If there is more than one indexer on the field definition, it gives the first
|
12
|
-
def primary_solr_name(field, file_path)
|
13
|
-
config = self.class.config_for_term_or_uri(field)
|
14
|
-
return nil unless config && config.behaviors # punt on index names for deep nodes!
|
15
|
-
config.behaviors.each do |behavior|
|
16
|
-
result = ActiveFedora.index_field_mapper.solr_name(apply_prefix(field, file_path), behavior, type: config.type)
|
17
|
-
return result if Solrizer::DefaultDescriptors.send(behavior).evaluate_suffix(:text).stored?
|
18
|
-
end
|
19
|
-
raise RuntimeError "no stored fields were found"
|
20
|
-
end
|
21
|
-
|
22
11
|
module ClassMethods
|
23
12
|
def indexer
|
24
13
|
ActiveFedora::RDF::IndexingService
|
@@ -8,7 +8,7 @@ module ActiveFedora::RDF
|
|
8
8
|
include Solrizer::Common
|
9
9
|
attr_reader :object
|
10
10
|
|
11
|
-
# @param
|
11
|
+
# @param [#resource, #rdf_subject] obj the object to build an solr document for. Its class must respond to 'properties' and 'index_config'
|
12
12
|
def initialize(obj)
|
13
13
|
@object = obj
|
14
14
|
end
|
@@ -14,16 +14,6 @@ module ActiveFedora
|
|
14
14
|
@subject_block ||= ->(ds) { parent_uri(ds) }
|
15
15
|
end
|
16
16
|
|
17
|
-
def property(name, *args, &block)
|
18
|
-
super
|
19
|
-
add_attribute_indexing_config(name, &block) if block_given?
|
20
|
-
end
|
21
|
-
|
22
|
-
def add_attribute_indexing_config(name, &block)
|
23
|
-
Deprecation.warn(RDFDatastream, "Adding indexing to datastreams is deprecated")
|
24
|
-
index_config[name] ||= ActiveFedora::Indexing::Map::IndexObject.new(name, &block)
|
25
|
-
end
|
26
|
-
|
27
17
|
# Trim the last segment off the URI to get the parents uri
|
28
18
|
def parent_uri(ds)
|
29
19
|
m = /^(.*)\/[^\/]*$/.match(ds.uri)
|
@@ -48,15 +48,8 @@ module ActiveFedora
|
|
48
48
|
options[:order] ||= sort if sort.present?
|
49
49
|
end
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
Deprecation.warn(ActiveFedora::Base, "Calling .find with a hash has been deprecated and will not be allowed in active-fedora 10.0. Use .where instead")
|
54
|
-
options = { conditions: options }
|
55
|
-
apply_finder_options(options)
|
56
|
-
else
|
57
|
-
raise ArgumentError, "#{self}.find() expects an id. You provided `#{args.inspect}'" unless args.is_a? Array
|
58
|
-
find_with_ids(args, cast)
|
59
|
-
end
|
51
|
+
raise ArgumentError, "#{self}.find() expects an id. You provided `#{args.inspect}'" unless args.is_a? Array
|
52
|
+
find_with_ids(args, cast)
|
60
53
|
end
|
61
54
|
|
62
55
|
# Gives a record (or N records if a parameter is supplied) without any implied
|
@@ -125,12 +118,6 @@ module ActiveFedora
|
|
125
118
|
result.first
|
126
119
|
end
|
127
120
|
|
128
|
-
# @deprecated
|
129
|
-
def find_with_conditions(*args)
|
130
|
-
Deprecation.warn(ActiveFedora::Base, '.find_with_conditions is deprecated and will be removed in active-fedora 10.0; use .search_with_conditions instead')
|
131
|
-
search_with_conditions(*args)
|
132
|
-
end
|
133
|
-
|
134
121
|
# Yields the found ActiveFedora::Base object to the passed block
|
135
122
|
#
|
136
123
|
# @param [Hash] conditions the conditions for the solr search to match
|
@@ -182,12 +169,6 @@ module ActiveFedora
|
|
182
169
|
end
|
183
170
|
end
|
184
171
|
|
185
|
-
# @deprecated
|
186
|
-
def find_in_batches(*args, &block)
|
187
|
-
Deprecation.warn(ActiveFedora::Base, '.find_in_batches is deprecated and will be removed in active-fedora 10.0; use .search_in_batches instead')
|
188
|
-
search_in_batches(*args, &block)
|
189
|
-
end
|
190
|
-
|
191
172
|
# Retrieve the Fedora object with the given id, explore the returned object
|
192
173
|
# Raises a ObjectNotFoundError if the object is not found.
|
193
174
|
# @param [String] id of the object to load
|
@@ -1,7 +1,5 @@
|
|
1
1
|
module ActiveFedora
|
2
2
|
module SolrQueryBuilder
|
3
|
-
extend Deprecation
|
4
|
-
|
5
3
|
class << self
|
6
4
|
# Construct a solr query for a list of ids
|
7
5
|
# This is used to get a solr response based on the list of ids in an object's RELS-EXT relationhsips
|
@@ -13,20 +11,6 @@ module ActiveFedora
|
|
13
11
|
"{!terms f=#{ActiveFedora.id_field}}#{ids.join(',')}"
|
14
12
|
end
|
15
13
|
|
16
|
-
# Create a raw query clause suitable for sending to solr as an fq element
|
17
|
-
# @param [String] key
|
18
|
-
# @param [String] value
|
19
|
-
def raw_query(key, value)
|
20
|
-
Deprecation.warn(ActiveFedora::SolrQueryBuilder, 'ActiveFedora::SolrQueryBuilder.raw_query is deprecated and will be removed in ActiveFedora 10.0. Use .construct_query instead.')
|
21
|
-
"_query_:\"{!raw f=#{key}}#{value.gsub('"', '\"')}\""
|
22
|
-
end
|
23
|
-
|
24
|
-
# @deprecated
|
25
|
-
def solr_name(*args)
|
26
|
-
Deprecation.warn(ActiveFedora::SolrQueryBuilder, 'ActiveFedora::SolrQueryBuilder.solr_name is deprecated and will be removed in ActiveFedora 10.0. Use ActiveFedora.index_field_mapper.solr_name instead.')
|
27
|
-
ActiveFedora.index_field_mapper.solr_name(*args)
|
28
|
-
end
|
29
|
-
|
30
14
|
# Create a query with a clause for each key, value
|
31
15
|
# @param [Hash, Array<Array<String>>] field_pairs key is the predicate, value is the target_uri
|
32
16
|
# @param [String] join_with ('AND') the value we're joining the clauses with
|
@@ -1,10 +1,7 @@
|
|
1
1
|
require 'rsolr'
|
2
|
-
require 'deprecation'
|
3
2
|
|
4
3
|
module ActiveFedora
|
5
4
|
class SolrService
|
6
|
-
extend Deprecation
|
7
|
-
|
8
5
|
attr_writer :conn
|
9
6
|
|
10
7
|
def initialize(options = {})
|
@@ -16,18 +13,8 @@ module ActiveFedora
|
|
16
13
|
end
|
17
14
|
|
18
15
|
class << self
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
if args.length == 1
|
23
|
-
Deprecation.warn(SolrService, "SolrService.register with a host argument is deprecated. Use `SolrService.register(url: host)` instead. This will be removed in active-fedora 10.0")
|
24
|
-
|
25
|
-
host = args.first
|
26
|
-
options[:url] = host if host
|
27
|
-
elsif args.length > 1
|
28
|
-
raise ArgumentError, "wrong number of arguments (#{args.length} for 0..2)"
|
29
|
-
end
|
30
|
-
|
16
|
+
# @param [Hash] options
|
17
|
+
def register(options = {})
|
31
18
|
ActiveFedora::RuntimeRegistry.solr_service = new(options)
|
32
19
|
end
|
33
20
|
|
@@ -49,87 +36,13 @@ module ActiveFedora
|
|
49
36
|
ActiveFedora::RuntimeRegistry.solr_service
|
50
37
|
end
|
51
38
|
|
52
|
-
def lazy_reify_solr_results(solr_results, opts = {})
|
53
|
-
Deprecation.warn SolrService, "SolrService.lazy_reify_solr_results is deprecated. Use QueryResultBuilder.lazy_reify_solr_results instead. This will be removed in active-fedora 10.0"
|
54
|
-
QueryResultBuilder.lazy_reify_solr_results(solr_results, opts)
|
55
|
-
end
|
56
|
-
|
57
|
-
def reify_solr_results(solr_results, opts = {})
|
58
|
-
Deprecation.warn SolrService, "SolrService.reify_solr_results is deprecated. Use QueryResultBuilder.reify_solr_results instead. This will be removed in active-fedora 10.0"
|
59
|
-
QueryResultBuilder.reify_solr_results(solr_results, opts)
|
60
|
-
end
|
61
|
-
|
62
|
-
def reify_solr_result(hit, opts = {})
|
63
|
-
Deprecation.warn SolrService, "SolrService.reify_solr_result is deprecated. Use SolrHit#reify instead. This will be removed in active-fedora 10.0"
|
64
|
-
QueryResultBuilder.reify_solr_result(hit, opts)
|
65
|
-
end
|
66
|
-
|
67
|
-
# Returns all possible classes for the solr object
|
68
|
-
def classes_from_solr_document(hit, opts = {})
|
69
|
-
Deprecation.warn SolrService, "SolrService.classes_from_solr_document is deprecated. Use SolrHit#models instead. This will be removed in active-fedora 10.0"
|
70
|
-
QueryResultBuilder.classes_from_solr_document(hit, opts)
|
71
|
-
end
|
72
|
-
|
73
|
-
# Returns the best singular class for the solr object
|
74
|
-
def class_from_solr_document(hit, opts = {})
|
75
|
-
Deprecation.warn SolrService, "SolrService.class_from_solr_document is deprecated. Use SolrHit#model instead. This will be removed in active-fedora 10.0"
|
76
|
-
QueryResultBuilder.class_from_solr_document(hit, opts)
|
77
|
-
end
|
78
|
-
|
79
|
-
# Construct a solr query for a list of ids
|
80
|
-
# This is used to get a solr response based on the list of ids in an object's RELS-EXT relationhsips
|
81
|
-
# If the id_array is empty, defaults to a query of "id:NEVER_USE_THIS_ID", which will return an empty solr response
|
82
|
-
# @param [Array] id_array the ids that you want included in the query
|
83
|
-
def construct_query_for_ids(id_array)
|
84
|
-
Deprecation.warn SolrService, "SolrService.construct_query_for_ids is deprecated. Use SolrQueryBuilder.construct_query_for_ids instead. This will be removed in active-fedora 10.0"
|
85
|
-
SolrQueryBuilder.construct_query_for_ids(id_array)
|
86
|
-
end
|
87
|
-
|
88
|
-
def construct_query_for_pids(id_array)
|
89
|
-
Deprecation.warn SolrService, "SolrService.construct_query_for_pids is deprecated. Use SolrQueryBuilder.construct_query_for_ids instead. This will be removed in active-fedora 10.0"
|
90
|
-
SolrQueryBuilder.construct_query_for_ids(id_array)
|
91
|
-
end
|
92
|
-
|
93
|
-
# Create a raw query clause suitable for sending to solr as an fq element
|
94
|
-
# @param [String] key
|
95
|
-
# @param [String] value
|
96
|
-
def raw_query(key, value)
|
97
|
-
Deprecation.warn SolrService, "SolrService.raw_query is deprecated. Use SolrQueryBuilder.construct_query instead. This will be removed in active-fedora 10.0"
|
98
|
-
SolrQueryBuilder.construct_query(key, value)
|
99
|
-
end
|
100
|
-
|
101
|
-
def solr_name(*args)
|
102
|
-
Deprecation.warn SolrService, "SolrService.solr_name is deprecated. Use SolrQueryBuilder.solr_name instead. This will be removed in active-fedora 10.0"
|
103
|
-
SolrQueryBuilder.solr_name(*args)
|
104
|
-
end
|
105
|
-
|
106
|
-
# Create a query with a clause for each key, value
|
107
|
-
# @param [Hash, Array<Array<String>>] field_pairs key is the predicate, value is the target_uri
|
108
|
-
# @param [String] join_with ('AND') the value we're joining the clauses with
|
109
|
-
# @example
|
110
|
-
# construct_query_for_rel [[:has_model, "info:fedora/afmodel:ComplexCollection"], [:has_model, "info:fedora/afmodel:ActiveFedora_Base"]], 'OR'
|
111
|
-
# # => _query_:"{!field f=has_model_ssim}info:fedora/afmodel:ComplexCollection" OR _query_:"{!field f=has_model_ssim}info:fedora/afmodel:ActiveFedora_Base"
|
112
|
-
#
|
113
|
-
# construct_query_for_rel [[Book._reflect_on_association(:library), "foo/bar/baz"]]
|
114
|
-
def construct_query_for_rel(field_pairs, join_with = 'AND')
|
115
|
-
Deprecation.warn SolrService, "SolrService.construct_query_for_rel is deprecated. Use SolrQueryBuilder.construct_query_for_rel instead. This will be removed in active-fedora 10.0"
|
116
|
-
SolrQueryBuilder.construct_query_for_rel(field_pairs, join_with)
|
117
|
-
end
|
118
|
-
|
119
39
|
def get(query, args = {})
|
120
40
|
args = args.merge(q: query, qt: 'standard')
|
121
41
|
SolrService.instance.conn.get(select_path, params: args)
|
122
42
|
end
|
123
43
|
|
124
44
|
def query(query, args = {})
|
125
|
-
raw = args.delete(:raw)
|
126
45
|
result = get(query, args)
|
127
|
-
|
128
|
-
if raw
|
129
|
-
Deprecation.warn SolrService, "SolrService.query with raw: true is deprecated. Use SolrService.get instead. This will be removed in active-fedora 10.0"
|
130
|
-
return result
|
131
|
-
end
|
132
|
-
|
133
46
|
result['response']['docs'].map do |doc|
|
134
47
|
ActiveFedora::SolrHit.new(doc)
|
135
48
|
end
|