active-fedora 4.0.0.rc5 → 4.0.0.rc6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active-fedora (4.0.0.rc5)
4
+ active-fedora (4.0.0.rc6)
5
5
  activeresource (>= 3.0.0)
6
6
  activesupport (>= 3.0.0)
7
7
  equivalent-xml
@@ -1,4 +1,4 @@
1
- 4.0.0.rc5
1
+ 4.0.0.rc6
2
2
  Removed deprecations
3
3
  * allowing :fedora level in fedora.yml
4
4
  * automatic includes of Relationships and FileMethods is removed
@@ -10,6 +10,7 @@ Replaced solr-ruby with rsolr. Note: remove any calls to .hits
10
10
  load_instance is now deprecated, replaced with find
11
11
  Find alwasy casts to the appropriate object.
12
12
  Run a stub :environment task in the fixture loading rake tasks (which is overridden by rails)
13
+ Find raises ObjectNotFoundError when the object isn't found
13
14
 
14
15
  3.3.2
15
16
  HYDRA-745 No need to require :url be present on external datastreams
@@ -17,7 +17,7 @@ module ActiveFedora #:nodoc:
17
17
  class UnknownAttributeError < NoMethodError; end; # :nodoc:
18
18
  class ConfigurationError < RuntimeError; end # :nodoc:
19
19
  class AssociationTypeMismatch < RuntimeError; end # :nodoc:
20
- class UnregisteredPredicateError < RuntimeError; end
20
+ class UnregisteredPredicateError < RuntimeError; end # :nodoc:
21
21
 
22
22
 
23
23
  eager_autoload do
@@ -122,7 +122,7 @@ module ActiveFedora
122
122
  # If the \target is already \loaded it is just returned. Thus, you can call
123
123
  # +load_target+ unconditionally to get the \target.
124
124
  #
125
- # ActiveFedora::RecordNotFound is rescued within the method, and it is
125
+ # ActiveFedora::ObjectNotFoundError is rescued within the method, and it is
126
126
  # not reraised. The proxy is \reset and +nil+ is the return value.
127
127
  def load_target
128
128
  return nil unless defined?(@loaded)
@@ -263,12 +263,15 @@ module ActiveFedora
263
263
  private
264
264
  # Retrieve the Fedora object with te given pid, explore the returned object, determine its model
265
265
  # using #{ActiveFedora::ContentModel.known_models_for} and cast to that class.
266
+ # Raises a ObjectNotFoundError if the object is not found.
266
267
  # @param [String] pid of the object to load
267
268
  #
268
269
  # @example because the object hydra:dataset1 asserts it is a Dataset (hasModel info:fedora/afmodel:Dataset), return a Dataset object (not a Book).
269
- # Book.find_document("hydra:dataset1")
270
+ # Book.find_one("hydra:dataset1")
270
271
  def find_one(pid)
271
- af_base = self.allocate.init_with(DigitalObject.find(self, pid))
272
+ inner = DigitalObject.find(self, pid)
273
+ raise ActiveFedora::ObjectNotFoundError if inner.new?
274
+ af_base = self.allocate.init_with(inner)
272
275
  the_model = ActiveFedora::ContentModel.known_models_for( af_base ).first
273
276
  if af_base.class != the_model
274
277
  return af_base.adapt_to(the_model)
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "4.0.0.rc5"
2
+ VERSION = "4.0.0.rc6"
3
3
  end
@@ -68,12 +68,7 @@ describe ActiveFedora::Model do
68
68
 
69
69
  end
70
70
 
71
- it 'should provide #find' do
72
- SpecModel::Basic.should respond_to(:find)
73
- end
74
-
75
71
  describe '#find' do
76
-
77
72
  it "(:all) should query solr for all objects with :active_fedora_model_s of self.class" do
78
73
  ActiveFedora::SolrService.expects(:query).with('has_model_s:info\\:fedora/afmodel\\:SpecModel_Basic', :rows=>1001).returns([{"id" => "changeme:30"}, {"id" => "changeme:22"}])
79
74
  SpecModel::Basic.expects(:find_one).with("changeme:30").returns("Fake Object1")
@@ -83,9 +78,13 @@ describe ActiveFedora::Model do
83
78
  it "should use SpecModel::Basic.allocate.init_with to instantiate an object" do
84
79
  ActiveFedora::ContentModel.expects(:known_models_for).returns([SpecModel::Basic])
85
80
  SpecModel::Basic.any_instance.expects(:init_with).returns(mock("Model", :adapt_to=>SpecModel::Basic ))
86
- SpecModel::Basic.expects(:connection_for_pid).with("_PID_")
81
+ ActiveFedora::DigitalObject.expects(:find).returns(stub("inner obj", :'new?'=>false))
87
82
  SpecModel::Basic.find("_PID_")
88
83
  end
84
+ it "should raise an exception if it is not found" do
85
+ SpecModel::Basic.expects(:connection_for_pid).with("_PID_")
86
+ lambda {SpecModel::Basic.find("_PID_")}.should raise_error ActiveFedora::ObjectNotFoundError
87
+ end
89
88
  end
90
89
 
91
90
  describe '#count' do
@@ -240,6 +240,9 @@ describe ActiveFedora::Relationships do
240
240
  ActiveFedora::SolrService.expects(:query).with("id:my\\:_PID1_ OR id:my\\:_PID2_ OR id:my\\:_PID3_").returns([{"id"=> "my:_PID1_", "has_model_s"=>["info:fedora/afmodel:SpecNode"]},
241
241
  {"id"=> "my:_PID2_", "has_model_s"=>["info:fedora/afmodel:SpecNode"]},
242
242
  {"id"=> "my:_PID3_", "has_model_s"=>["info:fedora/afmodel:SpecNode"]}])
243
+ ActiveFedora::DigitalObject.expects(:find).with(SpecNode, 'my:_PID1_').returns(stub("inner obj", :'new?'=>false, :pid=>'my:_PID1_'))
244
+ ActiveFedora::DigitalObject.expects(:find).with(SpecNode, 'my:_PID2_').returns(stub("inner obj", :'new?'=>false, :pid=>'my:_PID2_'))
245
+ ActiveFedora::DigitalObject.expects(:find).with(SpecNode, 'my:_PID3_').returns(stub("inner obj", :'new?'=>false, :pid=>'my:_PID3_'))
243
246
  local_node.containers.map(&:pid).should == ["my:_PID1_", "my:_PID2_", "my:_PID3_"]
244
247
  end
245
248
 
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active-fedora
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15424159
4
+ hash: 15424153
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 4
8
8
  - 0
9
9
  - 0
10
10
  - rc
11
- - 5
12
- version: 4.0.0.rc5
11
+ - 6
12
+ version: 4.0.0.rc6
13
13
  platform: ruby
14
14
  authors:
15
15
  - Matt Zumwalt