active-fedora 10.3.0 → 11.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -0
  3. data/.rubocop_todo.yml +24 -0
  4. data/README.md +3 -1
  5. data/active-fedora.gemspec +4 -4
  6. data/lib/active_fedora.rb +0 -2
  7. data/lib/active_fedora/aggregation/list_source.rb +2 -0
  8. data/lib/active_fedora/associations/association_scope.rb +1 -1
  9. data/lib/active_fedora/associations/builder/aggregation.rb +1 -1
  10. data/lib/active_fedora/associations/builder/association.rb +1 -1
  11. data/lib/active_fedora/associations/builder/orders.rb +11 -3
  12. data/lib/active_fedora/associations/collection_association.rb +2 -2
  13. data/lib/active_fedora/associations/has_many_association.rb +2 -2
  14. data/lib/active_fedora/associations/has_subresource_association.rb +2 -2
  15. data/lib/active_fedora/associations/orders_association.rb +4 -0
  16. data/lib/active_fedora/associations/rdf.rb +2 -0
  17. data/lib/active_fedora/attribute_methods/dirty.rb +1 -1
  18. data/lib/active_fedora/base.rb +1 -1
  19. data/lib/active_fedora/containers/container.rb +1 -1
  20. data/lib/active_fedora/core.rb +7 -9
  21. data/lib/active_fedora/fedora.rb +2 -6
  22. data/lib/active_fedora/fedora_attributes.rb +1 -1
  23. data/lib/active_fedora/file.rb +1 -1
  24. data/lib/active_fedora/file/streaming.rb +1 -1
  25. data/lib/active_fedora/indexing.rb +1 -18
  26. data/lib/active_fedora/indexing_service.rb +0 -5
  27. data/lib/active_fedora/loadable_from_json.rb +12 -1
  28. data/lib/active_fedora/nested_attributes.rb +2 -2
  29. data/lib/active_fedora/orders/list_node.rb +2 -2
  30. data/lib/active_fedora/orders/ordered_list.rb +7 -3
  31. data/lib/active_fedora/orders/target_proxy.rb +4 -0
  32. data/lib/active_fedora/rake_support.rb +1 -1
  33. data/lib/active_fedora/rdf/persistence.rb +1 -0
  34. data/lib/active_fedora/rdf/rdf_datastream.rb +7 -1
  35. data/lib/active_fedora/solr_hit.rb +0 -9
  36. data/lib/active_fedora/solr_query_builder.rb +1 -1
  37. data/lib/active_fedora/version.rb +1 -1
  38. data/lib/generators/active_fedora/config/solr/templates/solr/config/solrconfig.xml +0 -11
  39. data/lib/generators/active_fedora/config/solr/templates/solr_wrapper_test.yml +1 -1
  40. data/lib/generators/active_fedora/model/model_generator.rb +1 -1
  41. data/lib/generators/active_fedora/model/templates/model.rb.erb +4 -4
  42. data/lib/tasks/active_fedora_dev.rake +1 -1
  43. data/solr/config/_rest_managed.json +3 -0
  44. data/solr/config/admin-extra.html +31 -0
  45. data/solr/config/elevate.xml +36 -0
  46. data/solr/config/mapping-ISOLatin1Accent.txt +246 -0
  47. data/solr/config/protwords.txt +21 -0
  48. data/solr/config/schema.xml +372 -0
  49. data/solr/config/scripts.conf +24 -0
  50. data/solr/config/solrconfig.xml +311 -0
  51. data/solr/config/spellings.txt +2 -0
  52. data/solr/config/stopwords.txt +58 -0
  53. data/solr/config/stopwords_en.txt +58 -0
  54. data/solr/config/synonyms.txt +31 -0
  55. data/solr/config/xslt/example.xsl +132 -0
  56. data/solr/config/xslt/example_atom.xsl +67 -0
  57. data/solr/config/xslt/example_rss.xsl +66 -0
  58. data/solr/config/xslt/luke.xsl +337 -0
  59. data/spec/integration/associations_spec.rb +6 -6
  60. data/spec/integration/basic_contains_association_spec.rb +1 -1
  61. data/spec/integration/clean_connection_spec.rb +1 -1
  62. data/spec/integration/complex_rdf_datastream_spec.rb +4 -5
  63. data/spec/integration/datastream_rdf_nested_attributes_spec.rb +15 -14
  64. data/spec/integration/date_time_properties_spec.rb +0 -15
  65. data/spec/integration/direct_container_spec.rb +4 -4
  66. data/spec/integration/directly_contains_one_association_spec.rb +1 -1
  67. data/spec/integration/eradicate_spec.rb +1 -1
  68. data/spec/integration/generators/solr_generator_spec.rb +10 -7
  69. data/spec/integration/has_and_belongs_to_many_associations_spec.rb +5 -5
  70. data/spec/integration/has_many_associations_spec.rb +4 -4
  71. data/spec/integration/indexing_spec.rb +1 -1
  72. data/spec/integration/indirect_container_spec.rb +3 -3
  73. data/spec/integration/ntriples_datastream_spec.rb +35 -23
  74. data/spec/integration/rdf_nested_attributes_spec.rb +3 -3
  75. data/spec/integration/relation_delegation_spec.rb +2 -2
  76. data/spec/integration/scoped_query_spec.rb +3 -3
  77. data/spec/integration/solr_hit_spec.rb +0 -11
  78. data/spec/integration/versionable_spec.rb +6 -6
  79. data/spec/integration/with_metadata_spec.rb +1 -1
  80. data/spec/samples/hydra-mods_article_datastream.rb +2 -4
  81. data/spec/unit/base_spec.rb +3 -4
  82. data/spec/unit/core/fedora_id_translator_spec.rb +2 -2
  83. data/spec/unit/core/fedora_uri_translator_spec.rb +2 -2
  84. data/spec/unit/core_spec.rb +5 -5
  85. data/spec/unit/fedora_spec.rb +1 -2
  86. data/spec/unit/file_spec.rb +2 -2
  87. data/spec/unit/filter_spec.rb +3 -3
  88. data/spec/unit/forbidden_attributes_protection_spec.rb +2 -2
  89. data/spec/unit/has_and_belongs_to_many_association_spec.rb +2 -2
  90. data/spec/unit/has_many_association_spec.rb +11 -26
  91. data/spec/unit/ntriples_datastream_spec.rb +6 -9
  92. data/spec/unit/ordered_spec.rb +8 -11
  93. data/spec/unit/orders/list_node_spec.rb +2 -2
  94. data/spec/unit/orders/ordered_list_spec.rb +1 -1
  95. data/spec/unit/query_spec.rb +4 -4
  96. data/spec/unit/rdf/indexing_service_spec.rb +5 -5
  97. data/spec/unit/rdf_resource_datastream_spec.rb +4 -0
  98. metadata +44 -17
  99. data/.solr_wrapper +0 -6
  100. data/lib/active_fedora/profile_indexing_service.rb +0 -11
  101. data/lib/active_fedora/solr_instance_loader.rb +0 -47
  102. data/spec/integration/solr_instance_loader_spec.rb +0 -156
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3f4e8471f5df940e6d52c76f150fd1532aff2e7d
4
- data.tar.gz: 79be63a9635f81dfe7a0017fe8890900e4ff598c
3
+ metadata.gz: e30d9865f03aa8fde7431fa449c1fd1b0fa8a3c5
4
+ data.tar.gz: ad33f54129ac32831e5917b980d2607e2fd6bc1d
5
5
  SHA512:
6
- metadata.gz: c2ff90b7a1a95255a21f55d72c55a488087087147629b29615380a041ba8da465a61274e850b52299955951f7a85bf398e4d0709db552cfb418d4ad2693b524f
7
- data.tar.gz: 193eac22abf48bb8b3817d92d36fb25f977155648ee8f7c2493d271be6d01c4b2f0d4b587c501b2fe668a0f82d0e7cd0a4eba16af506d84da7136c5664ca0ff6
6
+ metadata.gz: edf50b69bdd72334819f4470868936646752c79da2091413721ea35410ce45ec00e14445f8853df15f36fa18fff89dfe443b3171985395b910237f7de54531e7
7
+ data.tar.gz: 09720448439264991177243424a6f9bf1d133c62ad916b00d9075d22ab04625b6548d6a166883ae229c1509e7cf5c4fd85ee1466b7b2d05bbc45ba8a76a3ccb4
@@ -1,3 +1,6 @@
1
+ inherit_from:
2
+ - .rubocop_todo.yml
3
+
1
4
  AllCops:
2
5
  TargetRubyVersion: 2.2
3
6
  DisplayCopNames: true
@@ -89,6 +92,7 @@ Metrics/ClassLength:
89
92
  - 'lib/active_fedora/reflection.rb'
90
93
  - 'lib/active_fedora/orders/ordered_list.rb'
91
94
  - 'lib/active_fedora/solr_service.rb'
95
+ - 'lib/active_fedora/associations/orders_association.rb'
92
96
 
93
97
  Metrics/MethodLength:
94
98
  Enabled: false
@@ -0,0 +1,24 @@
1
+ require: rubocop-rspec
2
+ # This configuration was generated by
3
+ # `rubocop --auto-gen-config`
4
+ # on 2016-07-29 08:55:51 -0500 using RuboCop version 0.42.0.
5
+ # The point is for the user to remove these configuration records
6
+ # one by one as the offenses are removed from the code base.
7
+ # Note that changes in the inspected code, or installation of new
8
+ # versions of RuboCop, may require this file to be generated again.
9
+
10
+ # Offense count: 133
11
+ # Configuration parameters: Max.
12
+ RSpec/ExampleLength:
13
+ Enabled: false
14
+
15
+ # Offense count: 58
16
+ # Configuration parameters: IgnoreSymbolicNames.
17
+ RSpec/VerifiedDoubles:
18
+ Enabled: false
19
+
20
+ # Offense count: 2
21
+ Style/MethodMissing:
22
+ Exclude:
23
+ - 'lib/active_fedora/nom_datastream.rb'
24
+ - 'lib/active_fedora/relation/delegation.rb'
data/README.md CHANGED
@@ -75,9 +75,11 @@ rake active_fedora:ci
75
75
  If you want to run the tests manually, follow these instructions:
76
76
 
77
77
  ```bash
78
- solr_wrapper
78
+ solr_wrapper -d solr/config/ --collection_name hydra-test
79
79
  ```
80
80
 
81
+ You can switch `hydra-test` to `hydra-dev` if you want to create a collection for development.
82
+
81
83
  To start FCRepo, open another shell and run:
82
84
 
83
85
  ```bash
@@ -20,8 +20,9 @@ Gem::Specification.new do |s|
20
20
  s.add_dependency 'nom-xml', '>= 0.5.1'
21
21
  s.add_dependency "activesupport", '>= 4.2.4', '< 6'
22
22
  s.add_dependency "activemodel", '>= 4.2', '< 6'
23
- s.add_dependency "active-triples", '~> 0.7.1'
24
- s.add_dependency "rdf-rdfxml", '~> 1.1'
23
+ s.add_dependency "active-triples", '~> 0.10.0'
24
+ s.add_dependency "rdf-rdfxml"
25
+ s.add_dependency "linkeddata"
25
26
  s.add_dependency "deprecation"
26
27
  s.add_dependency "ldp", '~> 0.5.0'
27
28
 
@@ -36,8 +37,7 @@ Gem::Specification.new do |s|
36
37
  s.add_development_dependency "rspec-its"
37
38
  s.add_development_dependency "equivalent-xml"
38
39
  s.add_development_dependency "simplecov", '~> 0.8'
39
- # Pin to rubocop 0.38.0 due to https://github.com/nevir/rubocop-rspec/issues/78
40
- s.add_development_dependency "rubocop", '~> 0.38.0'
40
+ s.add_development_dependency "rubocop", '~> 0.42.0'
41
41
  s.add_development_dependency "rubocop-rspec", '~> 1.4'
42
42
 
43
43
  s.files = `git ls-files`.split("\n")
@@ -95,7 +95,6 @@ module ActiveFedora #:nodoc:
95
95
  autoload :Orders
96
96
  autoload :Pathing
97
97
  autoload :Persistence
98
- autoload :ProfileIndexingService
99
98
  autoload :Property
100
99
  autoload :QualifiedDublinCoreDatastream
101
100
  autoload :Querying
@@ -124,7 +123,6 @@ module ActiveFedora #:nodoc:
124
123
  autoload :Serialization
125
124
  autoload :SchemaIndexingStrategy
126
125
  autoload :SolrHit
127
- autoload :SolrInstanceLoader
128
126
  autoload :SolrQueryBuilder
129
127
  autoload :SolrService
130
128
  autoload :SparqlInsert
@@ -73,6 +73,8 @@ module ActiveFedora
73
73
  # Assert head and tail
74
74
  self.head = ordered_self.head.next.rdf_subject
75
75
  self.tail = ordered_self.tail.prev.rdf_subject
76
+ head_will_change!
77
+ tail_will_change!
76
78
  graph = ordered_self.to_graph
77
79
  resource << graph
78
80
  # Set node subjects to a term in AF JUST so that AF will persist the
@@ -31,7 +31,7 @@ module ActiveFedora
31
31
  scope = scope.where(ActiveFedora::SolrQueryBuilder.construct_query_for_rel(association.send(:find_reflection) => owner.id))
32
32
  end
33
33
 
34
- is_first_chain = i == 0
34
+ is_first_chain = i.zero?
35
35
  is_first_chain ? klass : reflection.klass
36
36
  end
37
37
 
@@ -19,7 +19,7 @@ module ActiveFedora::Associations::Builder
19
19
  private_class_method :indirect_options
20
20
 
21
21
  def self.has_member_relation(options)
22
- options[:has_member_relation] || ::RDF::DC.hasPart
22
+ options[:has_member_relation] || ::RDF::Vocab::DC.hasPart
23
23
  end
24
24
  private_class_method :has_member_relation
25
25
 
@@ -36,7 +36,7 @@ module ActiveFedora::Associations::Builder
36
36
  def self.build_scope(scope, extension)
37
37
  new_scope = scope
38
38
 
39
- new_scope = proc { instance_exec(&scope) } if scope && scope.arity == 0
39
+ new_scope = proc { instance_exec(&scope) } if scope && scope.arity.zero?
40
40
 
41
41
  new_scope = wrap_scope new_scope, extension if extension
42
42
 
@@ -14,6 +14,9 @@ module ActiveFedora::Associations::Builder
14
14
  mixin.redefine_method(target_accessor(name)) do
15
15
  association(name).target_reader
16
16
  end
17
+ mixin.redefine_method("#{target_accessor(name, pluralize: false)}_ids") do
18
+ association(name).target_ids_reader
19
+ end
17
20
  mixin.redefine_method("#{target_accessor(name)}=") do |nodes|
18
21
  association(name).target_writer(nodes)
19
22
  end
@@ -27,7 +30,7 @@ module ActiveFedora::Associations::Builder
27
30
  model.send(:define_method, :apply_first_and_last) do
28
31
  source = send(options[:through])
29
32
  source.save
30
- return if head.map(&:rdf_subject) == source.head_id && tail.map(&:rdf_subject) == source.tail_id
33
+ return if head_ids == source.head_id && tail_ids == source.tail_id
31
34
  self.head = source.head_id
32
35
  self.tail = source.tail_id
33
36
  save! if changed?
@@ -50,8 +53,13 @@ module ActiveFedora::Associations::Builder
50
53
  end
51
54
  end
52
55
 
53
- def self.target_accessor(name)
54
- name.to_s.gsub("_proxies", "").pluralize
56
+ def self.target_accessor(name, pluralize: true)
57
+ name = name.to_s.gsub("_proxies", "")
58
+ if pluralize
59
+ name.pluralize
60
+ else
61
+ name
62
+ end
55
63
  end
56
64
  private_class_method :target_accessor
57
65
 
@@ -94,7 +94,7 @@ module ActiveFedora
94
94
  if loaded?
95
95
  size.zero?
96
96
  else
97
- @target.blank? && count_records == 0
97
+ @target.blank? && count_records.zero?
98
98
  end
99
99
  end
100
100
 
@@ -250,7 +250,7 @@ module ActiveFedora
250
250
  finder_query = construct_query
251
251
  return [] if finder_query.empty?
252
252
  rows = opts.delete(:rows) { count }
253
- return [] if rows == 0
253
+ return [] if rows.zero?
254
254
  SolrService.query(finder_query, { rows: rows }.merge(opts))
255
255
  end
256
256
 
@@ -19,7 +19,7 @@ module ActiveFedora
19
19
  # If there's nothing in the database and @target has no new records
20
20
  # we are certain the current target is an empty array. This is a
21
21
  # documented side-effect of the method that may avoid an extra SELECT.
22
- @target ||= [] and loaded! if count == 0
22
+ @target ||= [] and loaded! if count.zero?
23
23
 
24
24
  count
25
25
  end
@@ -83,7 +83,7 @@ module ActiveFedora
83
83
  protected
84
84
 
85
85
  def find_polymorphic_inverse(record)
86
- record.reflections.values.find { |r| !r.has_many? && r.predicate == reflection.predicate }
86
+ record.reflections.values.find { |r| !r.has_many? && r.options[:property] == reflection.options[:property] }
87
87
  end
88
88
 
89
89
  # Deletes the records according to the <tt>:dependent</tt> option.
@@ -25,12 +25,12 @@ module ActiveFedora
25
25
 
26
26
  def find_or_initialize_target(&block)
27
27
  if reflection.klass < ActiveFedora::File
28
- reflection.build_association(id: target_uri, &block)
28
+ reflection.build_association(target_uri, &block)
29
29
  else
30
30
  reflection.klass.find(target_uri)
31
31
  end
32
32
  rescue ActiveFedora::ObjectNotFoundError
33
- reflection.build_association(id: target_uri, &block)
33
+ reflection.build_association(target_uri, &block)
34
34
  end
35
35
 
36
36
  def replace(record)
@@ -27,6 +27,10 @@ module ActiveFedora::Associations
27
27
  @target_proxy ||= ActiveFedora::Orders::TargetProxy.new(self)
28
28
  end
29
29
 
30
+ def target_ids_reader
31
+ target_reader.ids
32
+ end
33
+
30
34
  def find_reflection
31
35
  reflection
32
36
  end
@@ -10,6 +10,7 @@ module ActiveFedora
10
10
  additions = incoming_objects - current_objects
11
11
  deletions.each { |object| owner.resource.delete([owner.rdf_subject, reflection.predicate, object]) }
12
12
  additions.each { |object| owner.resource.insert([owner.rdf_subject, reflection.predicate, object]) }
13
+ owner.resource.persist!
13
14
  owner.send(:attribute_will_change!, reflection.name)
14
15
  end
15
16
 
@@ -21,6 +22,7 @@ module ActiveFedora
21
22
  filtered_results.each do |candidate|
22
23
  owner.resource.delete([owner.rdf_subject, reflection.predicate, candidate])
23
24
  end
25
+ owner.resource.persist!
24
26
  end
25
27
 
26
28
  private
@@ -6,7 +6,7 @@ module ActiveFedora
6
6
  def set_value(*val)
7
7
  attribute = val.first
8
8
  unless [:has_model, :modified_date].include? attribute
9
- attribute_will_change!(attribute) unless self[val.first] == val.last
9
+ attribute_will_change!(attribute) unless Array(self[val.first]).to_set == Array(val.last).to_set
10
10
  end
11
11
  super
12
12
  end
@@ -40,11 +40,11 @@ module ActiveFedora
40
40
  include Associations
41
41
  include AutosaveAssociation
42
42
  include NestedAttributes
43
- include Reflection
44
43
  include Serialization
45
44
 
46
45
  include AttachedFiles
47
46
  include FedoraAttributes
47
+ include Reflection
48
48
  include AttributeMethods
49
49
  include Attributes
50
50
  include Versionable
@@ -22,7 +22,7 @@ module ActiveFedora
22
22
  def self.find_or_initialize(id)
23
23
  find(id)
24
24
  rescue ActiveFedora::ObjectNotFoundError
25
- new(id: id)
25
+ new(id)
26
26
  end
27
27
 
28
28
  private
@@ -2,7 +2,6 @@ module ActiveFedora
2
2
  module Core
3
3
  extend ActiveSupport::Autoload
4
4
  extend ActiveSupport::Concern
5
- extend Deprecation
6
5
  include ActiveFedora::Common
7
6
 
8
7
  autoload :FedoraIdTranslator
@@ -26,7 +25,7 @@ module ActiveFedora
26
25
  def initialize(attributes_or_id = nil, &_block)
27
26
  init_internals
28
27
  attributes = initialize_attributes(attributes_or_id)
29
- @ldp_source = build_ldp_resource(attributes.delete('id'.freeze))
28
+ @ldp_source = build_ldp_resource(attributes.delete(:id))
30
29
  raise IllegalOperation, "Attempting to recreate existing ldp_source: `#{ldp_source.subject}'" unless ldp_source.new?
31
30
  assert_content_model
32
31
  load_attached_files
@@ -149,16 +148,15 @@ module ActiveFedora
149
148
  def initialize_attributes(attributes_or_id)
150
149
  case attributes_or_id
151
150
  when String
152
- Deprecation.warn(Core, "calling #{self.class}.new with a string is deprecated. Pass a hash with id instead.")
153
- { 'id': attributes_or_id }
151
+ attributes = { id: attributes_or_id }.with_indifferent_access
152
+ when Hash
153
+ attributes = attributes_or_id.with_indifferent_access
154
154
  when NilClass
155
- {}
155
+ attributes = {}.with_indifferent_access
156
156
  else
157
- unless attributes_or_id.respond_to?(:stringify_keys)
158
- raise ArgumentError, "#{attributes_or_id.class} is not acceptable"
159
- end
160
- attributes_or_id.stringify_keys
157
+ raise ArgumentError, "#{attributes_or_id.class} is not acceptable"
161
158
  end
159
+ attributes
162
160
  end
163
161
  end
164
162
  end
@@ -23,15 +23,11 @@ module ActiveFedora
23
23
  end
24
24
 
25
25
  def host
26
- @config[:url].sub(/\/$/, BLANK)
26
+ @config[:url]
27
27
  end
28
28
 
29
29
  def base_path
30
- @config[:base_path] || SLASH
31
- end
32
-
33
- def base_uri
34
- host + base_path.sub(/\/$/, BLANK)
30
+ @config[:base_path] || '/'
35
31
  end
36
32
 
37
33
  def user
@@ -43,7 +43,7 @@ module ActiveFedora
43
43
  # Appending the graph at the end is necessary because adding it as the
44
44
  # parent leaves behind triples not related to the ldp_source's rdf
45
45
  # subject.
46
- @resource ||= self.class.resource_class.new(@ldp_source.graph.rdf_subject, @ldp_source.graph) << @ldp_source.graph
46
+ @resource ||= self.class.resource_class.new(@ldp_source.graph.rdf_subject, data: @ldp_source.graph.send(:graph).data)
47
47
  end
48
48
 
49
49
  # You can set the URI to use for the rdf_label on ClassMethods.rdf_label, then on
@@ -30,7 +30,7 @@ module ActiveFedora
30
30
  # @yield [self] Yields self
31
31
  # @yieldparam [File] self the newly created file
32
32
  def initialize(identifier = nil, &_block)
33
- identifier = identifier.delete(:id) if identifier.is_a? Hash
33
+ identifier = nil if identifier.is_a? Hash
34
34
  run_callbacks(:initialize) do
35
35
  case identifier
36
36
  when nil, ::RDF::URI
@@ -23,7 +23,7 @@ module ActiveFedora::File::Streaming
23
23
  end
24
24
 
25
25
  def each(no_of_requests_limit = 3, &block)
26
- raise ArgumentError, 'HTTP redirect too deep' if no_of_requests_limit == 0
26
+ raise ArgumentError, 'HTTP redirect too deep' if no_of_requests_limit.zero?
27
27
  Net::HTTP.start(uri.host, uri.port, use_ssl: (uri.scheme == 'https')) do |http|
28
28
  request = Net::HTTP::Get.new uri, headers
29
29
  http.request request do |response|
@@ -10,7 +10,6 @@ module ActiveFedora
10
10
  module Indexing
11
11
  extend ActiveSupport::Concern
12
12
  extend ActiveSupport::Autoload
13
- extend Deprecation
14
13
 
15
14
  eager_autoload do
16
15
  autoload :Map
@@ -84,7 +83,7 @@ module ActiveFedora
84
83
  end
85
84
 
86
85
  def reindex_everything
87
- descendants = descendant_uris(ActiveFedora.fedora.base_uri)
86
+ descendants = descendant_uris(ActiveFedora::Base.id_to_uri(''))
88
87
  descendants.shift # Discard the root uri
89
88
  descendants.each do |uri|
90
89
  logger.debug "Re-index everything ... #{uri}"
@@ -92,22 +91,6 @@ module ActiveFedora
92
91
  end
93
92
  end
94
93
 
95
- # This method can be used instead of ActiveFedora::Model::ClassMethods.find.
96
- # It works similarly except it populates an object from Solr instead of Fedora.
97
- # It is most useful for objects used in read-only displays in order to speed up loading time. If only
98
- # a id is passed in it will query solr for a corresponding solr document and then use it
99
- # to populate this object.
100
- #
101
- # If a value is passed in for optional parameter solr_doc it will not query solr again and just use the
102
- # one passed to populate the object.
103
- #
104
- # It will anything stored within solr such as metadata and relationships. Non-metadata attached files will not
105
- # be loaded and if needed you should use find instead.
106
- def load_instance_from_solr(id, solr_doc = nil)
107
- SolrInstanceLoader.new(self, id, solr_doc).object
108
- end
109
- deprecation_deprecate :load_instance_from_solr
110
-
111
94
  def descendant_uris(uri)
112
95
  resource = Ldp::Resource::RdfSource.new(ActiveFedora.fedora.connection, uri)
113
96
  # GET could be slow if it's a big resource, we're using HEAD to avoid this problem,
@@ -40,7 +40,6 @@ module ActiveFedora
40
40
  Solrizer.set_field(solr_doc, 'system_modified', m_time, :stored_sortable)
41
41
  solr_doc[QueryResultBuilder::HAS_MODEL_SOLR_FIELD] = object.has_model
42
42
  solr_doc[ActiveFedora.id_field.to_sym] = object.id
43
- solr_doc[self.class.profile_solr_name] = profile_service.new(object).export
44
43
  object.declared_attached_files.each do |name, file|
45
44
  solr_doc.merge! file.to_solr(solr_doc, name: name.to_s)
46
45
  end
@@ -51,10 +50,6 @@ module ActiveFedora
51
50
 
52
51
  protected
53
52
 
54
- def profile_service
55
- ProfileIndexingService
56
- end
57
-
58
53
  def c_time
59
54
  c_time = object.create_date.present? ? object.create_date : DateTime.now
60
55
  c_time = DateTime.parse(c_time) unless c_time.is_a?(DateTime)
@@ -50,6 +50,10 @@ module ActiveFedora
50
50
  @hash[k]
51
51
  end
52
52
 
53
+ def persist!(*)
54
+ true
55
+ end
56
+
53
57
  # FakeQuery exists to adapt the hash to the RDF interface used by RDF associations in ActiveFedora
54
58
  class FakeQuery
55
59
  include ::Enumerable
@@ -153,7 +157,7 @@ module ActiveFedora
153
157
  # @param attribute_name [String] the name of the attribute to adapt
154
158
  # @return [Object] the adapted value
155
159
  def adapt_attribute_value(attrs, attribute_name)
156
- reflection = self.class.reflect_on_property(attribute_name)
160
+ reflection = property_reflection(attribute_name)
157
161
  # if this isn't a property, copy value verbatim
158
162
  return attrs[attribute_name] unless reflection
159
163
  multiple = reflection.multiple?
@@ -169,6 +173,13 @@ module ActiveFedora
169
173
  end
170
174
  end
171
175
 
176
+ def property_reflection(attribute_name)
177
+ self.class.reflect_on_property(attribute_name)
178
+ rescue ActiveTriples::UndefinedPropertyError
179
+ ActiveFedora::Base.logger.info "Undefined property #{attribute_name} reflected."
180
+ nil
181
+ end
182
+
172
183
  def date_attribute?(attribute_name)
173
184
  reflection = self.class.reflect_on_property(attribute_name)
174
185
  return false unless reflection