active-fedora 3.1.6 → 3.2.0.pre1

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.
Files changed (44) hide show
  1. data/.gitignore +1 -0
  2. data/Gemfile.lock +22 -22
  3. data/History.txt +9 -3
  4. data/active-fedora.gemspec +3 -3
  5. data/config/predicate_mappings.yml +1 -0
  6. data/config/service_mappings.yml +9 -0
  7. data/lib/active_fedora.rb +7 -1
  8. data/lib/active_fedora/base.rb +84 -30
  9. data/lib/active_fedora/datastream.rb +4 -1
  10. data/lib/active_fedora/datastream_collections.rb +304 -293
  11. data/lib/active_fedora/metadata_datastream.rb +2 -24
  12. data/lib/active_fedora/metadata_datastream_helper.rb +32 -5
  13. data/lib/active_fedora/named_relationships.rb +95 -0
  14. data/lib/active_fedora/nested_attributes.rb +1 -1
  15. data/lib/active_fedora/predicates.rb +76 -0
  16. data/lib/active_fedora/reflection.rb +9 -1
  17. data/lib/active_fedora/relationship.rb +1 -0
  18. data/lib/active_fedora/relationship_graph.rb +152 -0
  19. data/lib/active_fedora/relationships_helper.rb +32 -41
  20. data/lib/active_fedora/rels_ext_datastream.rb +3 -10
  21. data/lib/active_fedora/semantic_node.rb +47 -203
  22. data/lib/active_fedora/service_definitions.rb +89 -0
  23. data/lib/active_fedora/unsaved_digital_object.rb +40 -0
  24. data/lib/active_fedora/version.rb +1 -1
  25. data/spec/integration/base_spec.rb +106 -309
  26. data/spec/integration/datastream_collections_spec.rb +135 -0
  27. data/spec/integration/rels_ext_datastream_spec.rb +14 -35
  28. data/spec/integration/semantic_node_spec.rb +6 -10
  29. data/spec/unit/base_datastream_management_spec.rb +0 -3
  30. data/spec/unit/base_extra_spec.rb +5 -9
  31. data/spec/unit/base_spec.rb +103 -57
  32. data/spec/unit/{base_named_datastream_spec.rb → datastream_collections_spec.rb} +107 -150
  33. data/spec/unit/metadata_datastream_spec.rb +0 -1
  34. data/spec/unit/nokogiri_datastream_spec.rb +0 -1
  35. data/spec/unit/predicates_spec.rb +64 -0
  36. data/spec/unit/qualified_dublin_core_datastream_spec.rb +0 -7
  37. data/spec/unit/relationship_graph_spec.rb +95 -0
  38. data/spec/unit/relationship_spec.rb +4 -4
  39. data/spec/unit/relationships_helper_spec.rb +43 -104
  40. data/spec/unit/rels_ext_datastream_spec.rb +6 -6
  41. data/spec/unit/semantic_node_spec.rb +27 -116
  42. data/spec/unit/service_definitions_spec.rb +52 -0
  43. data/spec/unit/solr_config_options_spec.rb +1 -1
  44. metadata +35 -17
@@ -40,7 +40,7 @@ describe ActiveFedora::RelsExtDatastream do
40
40
  it "should generate new rdf/xml as the datastream content if the object has been changed" do
41
41
  graph = RDF::Graph.new
42
42
  subject = RDF::URI.new "info:fedora/test:sample_pid"
43
- graph.insert RDF::Statement.new(subject, ActiveFedora::Base.new.find_graph_predicate(:is_member_of), RDF::URI.new('demo:10'))
43
+ graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:is_member_of), RDF::URI.new('demo:10'))
44
44
 
45
45
  @test_ds.expects(:model).returns(stub("model", :outbound_relationships=>graph, :relationships=>graph, :relationships_are_dirty =>true, :relationships_are_dirty= => true)).times(3)
46
46
  @test_ds.serialize!
@@ -69,11 +69,11 @@ describe ActiveFedora::RelsExtDatastream do
69
69
  it 'should serialize the relationships array to Fedora RELS-EXT rdf/xml' do
70
70
  graph = RDF::Graph.new
71
71
  subject = RDF::URI.new "info:fedora/test:sample_pid"
72
- graph.insert RDF::Statement.new(subject, ActiveFedora::Base.new.find_graph_predicate(:is_member_of), RDF::URI.new('info:fedora/demo:10'))
73
- graph.insert RDF::Statement.new(subject, ActiveFedora::Base.new.find_graph_predicate(:is_part_of), RDF::URI.new('info:fedora/demo:11'))
74
- graph.insert RDF::Statement.new(subject, ActiveFedora::Base.new.find_graph_predicate(:has_part), RDF::URI.new('info:fedora/demo:12'))
75
- graph.insert RDF::Statement.new(subject, ActiveFedora::Base.new.find_graph_predicate(:has_model), RDF::URI.new("info:fedora/afmodel:OtherModel"))
76
- graph.insert RDF::Statement.new(subject, ActiveFedora::Base.new.find_graph_predicate(:has_model), RDF::URI.new("info:fedora/afmodel:SampleModel"))
72
+ graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:is_member_of), RDF::URI.new('info:fedora/demo:10'))
73
+ graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:is_part_of), RDF::URI.new('info:fedora/demo:11'))
74
+ graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:has_part), RDF::URI.new('info:fedora/demo:12'))
75
+ graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:has_model), RDF::URI.new("info:fedora/afmodel:OtherModel"))
76
+ graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:has_model), RDF::URI.new("info:fedora/afmodel:SampleModel"))
77
77
 
78
78
  @test_ds.expects(:model).returns(stub("model", :relationships=>graph, :relationships_are_dirty= => true))
79
79
  EquivalentXml.equivalent?(@test_ds.to_rels_ext(), @sample_rels_ext_xml).should be_true
@@ -15,26 +15,7 @@ class SpecNode2
15
15
  end
16
16
 
17
17
  describe ActiveFedora::SemanticNode do
18
- describe "build_statement" do
19
- before do
20
- @node = SpecNode2.new
21
- end
22
- it "should raise an error when the target is a pid, not a uri" do
23
- lambda { @node.build_statement('info:fedora/spec:9', :is_part_of, 'spec:7') }.should raise_error ArgumentError
24
- end
25
- it "should run the happy path" do
26
- stm = @node.build_statement('info:fedora/spec:9', :is_part_of, 'info:fedora/spec:7')
27
- stm.object.to_s.should == "info:fedora/spec:7"
28
- end
29
- it "should also be happy with non-info URIs" do
30
- stm = @node.build_statement('info:fedora/spec:9', :is_annotation_of, 'http://www.w3.org/standards/techs/rdf')
31
- stm.object.to_s.should == "http://www.w3.org/standards/techs/rdf"
32
- end
33
- it "should also be happy with targets that are URI::Generics" do
34
- stm = @node.build_statement('info:fedora/spec:9', :is_annotation_of, URI.parse('http://www.w3.org/standards/techs/rdf'))
35
- stm.object.to_s.should == "http://www.w3.org/standards/techs/rdf"
36
- end
37
- end
18
+
38
19
 
39
20
  describe "with a bunch of objects" do
40
21
  def increment_pid
@@ -79,13 +60,6 @@ describe ActiveFedora::SemanticNode do
79
60
  @test_object = SpecNode2.new
80
61
  @test_object.pid = increment_pid
81
62
  @test_object.stubs(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>''))
82
- @stub_relationship = stub("mock_relationship", :subject => @pid, :predicate => "isMemberOf", :object => "demo:8", :class => ActiveFedora::Relationship)
83
- @test_relationship = ActiveFedora::Relationship.new(:subject => @pid, :predicate => "isMemberOf", :object => "demo:9")
84
- @test_relationship1 = ActiveFedora::Relationship.new(:subject => :self, :predicate => :is_member_of, :object => "demo:10")
85
- @test_relationship2 = ActiveFedora::Relationship.new(:subject => :self, :predicate => :is_part_of, :object => "demo:11")
86
- @test_relationship3 = ActiveFedora::Relationship.new(:subject => @pid, :predicate => :has_part, :object => "demo:12")
87
- @test_cmodel_relationship1 = ActiveFedora::Relationship.new(:subject => @pid, :predicate => :has_model, :object => "afmodel:SampleModel")
88
- @test_cmodel_relationship2 = ActiveFedora::Relationship.new(:subject => @pid, :predicate => "hasModel", :object => "afmodel:OtherModel")
89
63
  end
90
64
 
91
65
  after(:each) do
@@ -112,56 +86,6 @@ describe ActiveFedora::SemanticNode do
112
86
  end
113
87
  end
114
88
 
115
- it 'should provide .default_predicate_namespace' do
116
- SpecNode.should respond_to(:default_predicate_namespace)
117
- SpecNode.default_predicate_namespace.should == 'info:fedora/fedora-system:def/relations-external#'
118
- end
119
-
120
- it 'should provide .predicate_mappings' do
121
- SpecNode.should respond_to(:predicate_mappings)
122
- end
123
-
124
- describe "#predicate_mappings" do
125
-
126
- it 'should return a hash' do
127
- SpecNode.predicate_mappings.should be_kind_of Hash
128
- end
129
-
130
- it "should provide mappings to the fedora ontology via the info:fedora/fedora-system:def/relations-external default namespace mapping" do
131
- SpecNode.predicate_mappings.keys.include?(SpecNode.default_predicate_namespace).should be_true
132
- SpecNode.predicate_mappings[SpecNode.default_predicate_namespace].should be_kind_of Hash
133
- end
134
-
135
- it 'should provide predicate mappings for entire Fedora Relationship Ontology' do
136
- desired_mappings = Hash[:is_member_of => "isMemberOf",
137
- :has_member => "hasMember",
138
- :is_part_of => "isPartOf",
139
- :has_part => "hasPart",
140
- :is_member_of_collection => "isMemberOfCollection",
141
- :has_collection_member => "hasCollectionMember",
142
- :is_constituent_of => "isConstituentOf",
143
- :has_constituent => "hasConstituent",
144
- :is_subset_of => "isSubsetOf",
145
- :has_subset => "hasSubset",
146
- :is_derivation_of => "isDerivationOf",
147
- :has_derivation => "hasDerivation",
148
- :is_dependent_of => "isDependentOf",
149
- :has_dependent => "hasDependent",
150
- :is_description_of => "isDescriptionOf",
151
- :has_description => "hasDescription",
152
- :is_metadata_for => "isMetadataFor",
153
- :has_metadata => "hasMetadata",
154
- :is_annotation_of => "isAnnotationOf",
155
- :has_annotation => "hasAnnotation",
156
- :has_equivalent => "hasEquivalent",
157
- :conforms_to => "conformsTo",
158
- :has_model => "hasModel"]
159
- desired_mappings.each_pair do |k,v|
160
- SpecNode.predicate_mappings[SpecNode.default_predicate_namespace].should have_key(k)
161
- SpecNode.predicate_mappings[SpecNode.default_predicate_namespace][k].should == v
162
- end
163
- end
164
- end
165
89
 
166
90
  it 'should provide .internal_uri' do
167
91
  @node.should respond_to(:internal_uri)
@@ -213,8 +137,6 @@ describe ActiveFedora::SemanticNode do
213
137
  local_node = SpecNode.new
214
138
  local_node.internal_uri = "info:fedora/#{@pid}"
215
139
 
216
- # local_node.add_relationship(ActiveFedora::Relationship.new(:subject => :self, :predicate => :is_member_of, :object => "info:fedora/container:A") )
217
- # local_node.add_relationship(ActiveFedora::Relationship.new(:subject => :self, :predicate => :is_member_of, :object => "info:fedora/container:B") )
218
140
  local_node.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).at_least_once
219
141
  local_node.add_relationship(:is_member_of, "info:fedora/container:A")
220
142
  local_node.add_relationship(:is_member_of, "info:fedora/container:B")
@@ -383,7 +305,7 @@ describe ActiveFedora::SemanticNode do
383
305
  SpecNode.create_outbound_relationship_finders("containers", :is_member_of)
384
306
  local_node = SpecNode.new
385
307
  local_node.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).at_least_once
386
- local_node.add_relationship(@test_relationship1.predicate, @test_relationship1.object)
308
+ local_node.add_relationship(:is_member_of, "demo:10")
387
309
  result = local_node.containers_ids
388
310
  result.should be_instance_of(Array)
389
311
  result.should include("demo:10")
@@ -475,32 +397,37 @@ describe ActiveFedora::SemanticNode do
475
397
  @local_node.pid = "mypid1"
476
398
  @local_node2 = SpecNode.new
477
399
  @local_node2.pid = "mypid2"
478
- r = ActiveFedora::Relationship.new({:subject=>:self,:predicate=>:has_model,:object=>ActiveFedora::ContentModel.pid_from_ruby_class(SpecNode)})
400
+ model_def = ActiveFedora::ContentModel.pid_from_ruby_class(SpecNode)
479
401
  @local_node.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).at_least_once
480
- @local_node.add_relationship(r.predicate, r.object)
402
+ @local_node.add_relationship(:has_model, model_def)
481
403
  @local_node2.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).at_least_once
482
- @local_node2.add_relationship(r.predicate, r.object)
483
- r2 = ActiveFedora::Relationship.new({:subject=>:self,:predicate=>:has_part,:object=>@local_node2})
484
- @local_node.add_relationship(r2.predicate, r2.object)
485
- r3 = ActiveFedora::Relationship.new({:subject=>:self,:predicate=>:has_part,:object=>@local_node})
486
- @local_node2.add_relationship(r3.predicate, r3.object)
404
+ @local_node2.add_relationship(:has_model, model_def)
405
+ @local_node.add_relationship(:has_part, @local_node2)
406
+ @local_node2.add_relationship(:has_part, @local_node)
487
407
  @local_node.ids_for_outbound(:has_part).should == [@local_node2.pid]
488
408
  @local_node.ids_for_outbound(:has_model).should == ['afmodel:SpecNode']
489
409
  @local_node2.ids_for_outbound(:has_part).should == [@local_node.pid]
490
410
  @local_node2.ids_for_outbound(:has_model).should == ['afmodel:SpecNode']
491
- @local_node.relationships_by_name(false).should == {:self=>{"all_parts_outbound"=>[r2.object]},:inbound=>{"all_parts_inbound"=>[]}}
492
- @local_node2.relationships_by_name(false).should == {:self=>{"all_parts_outbound"=>[r3.object]},:inbound=>{"all_parts_inbound"=>[]}}
411
+ @local_node.relationships_by_name(false).should == {:self=>{"all_parts_outbound"=>[@local_node2.internal_uri]},:inbound=>{"all_parts_inbound"=>[]}}
412
+ @local_node2.relationships_by_name(false).should == {:self=>{"all_parts_outbound"=>[@local_node.internal_uri]},:inbound=>{"all_parts_inbound"=>[]}}
493
413
  end
494
414
  end
495
415
 
496
416
  describe ".add_relationship" do
497
417
  it "should add relationship to the relationships graph" do
498
- @node.add_relationship(@test_relationship.predicate, @test_relationship.object)
418
+ @node.add_relationship("isMemberOf", 'demo:9')
499
419
  @node.ids_for_outbound("isMemberOf").should == ['demo:9']
500
420
  end
421
+ it "should not be written into the graph until it is saved" do
422
+ @n1 = ActiveFedora::Base.new
423
+ @node.add_relationship(:has_part, @n1)
424
+ @node.relationships.statements.to_a.first.object.to_s.should == 'info:fedora/__DO_NOT_USE__'
425
+ @n1.save
426
+ @node.relationships.statements.to_a.first.object.to_s.should == @n1.internal_uri
427
+ end
501
428
 
502
429
  it "should add a literal relationship to the relationships graph" do
503
- @node.add_relationship(@test_relationship.predicate, @test_relationship.object, true)
430
+ @node.add_relationship("isMemberOf", 'demo:9', true)
504
431
  @node.ids_for_outbound("isMemberOf").should == ['demo:9']
505
432
  end
506
433
 
@@ -508,7 +435,7 @@ describe ActiveFedora::SemanticNode do
508
435
  local_test_node1 = SpecNode.new
509
436
  local_test_node2 = SpecNode.new
510
437
  local_test_node1.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).at_least_once
511
- local_test_node1.add_relationship(@test_relationship1.predicate, @test_relationship1.object)
438
+ local_test_node1.add_relationship(:is_member_of, 'demo:10')
512
439
  local_test_node2.expects(:rels_ext).returns(stub('rels-ext', :content=>''))
513
440
 
514
441
  local_test_node1.ids_for_outbound(:is_member_of).should == ["demo:10"]
@@ -524,21 +451,6 @@ describe ActiveFedora::SemanticNode do
524
451
  end
525
452
 
526
453
  end
527
-
528
-
529
-
530
- it 'should provide #predicate_lookup that maps symbols to common RELS-EXT predicates' do
531
- SpecNode.should respond_to(:predicate_lookup)
532
- SpecNode.predicate_lookup(:is_part_of).should == "isPartOf"
533
- SpecNode.predicate_lookup(:is_member_of).should == "isMemberOf"
534
- SpecNode.predicate_lookup("isPartOfCollection").should == "isPartOfCollection"
535
- SpecNode.predicate_config[:predicate_mapping].merge!({"some_namespace"=>{:has_foo=>"hasFOO"}})
536
- SpecNode.find_predicate(:has_foo).should == ["hasFOO","some_namespace"]
537
- SpecNode.predicate_lookup(:has_foo,"some_namespace").should == "hasFOO"
538
- #SpecNode.predicate_lookup(:has_foo)
539
- lambda { SpecNode.predicate_lookup(:has_foo) }.should raise_error ActiveFedora::UnregisteredPredicateError
540
- end
541
-
542
454
 
543
455
  it "should provide .outbound_relationships" do
544
456
  @node.should respond_to(:outbound_relationships)
@@ -547,22 +459,21 @@ describe ActiveFedora::SemanticNode do
547
459
 
548
460
  describe '#remove_relationship' do
549
461
  it 'should remove a relationship from the relationships hash' do
550
- r = ActiveFedora::Relationship.new({:subject=>:self,:predicate=>:has_part,:object=>"info:fedora/3"})
551
- r2 = ActiveFedora::Relationship.new({:subject=>:self,:predicate=>:has_part,:object=>"info:fedora/4"})
552
- @test_object.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).times(6)
553
- @test_object.add_relationship(r.predicate, r.object)
554
- @test_object.add_relationship(r2.predicate, r2.object)
462
+ @test_object.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).times(4)
463
+ @test_object.add_relationship(:has_part, "info:fedora/3")
464
+ @test_object.add_relationship(:has_part, "info:fedora/4")
555
465
  #check both are there
556
466
  @test_object.ids_for_outbound(:has_part).should include "3", "4"
557
- @test_object.remove_relationship(r.predicate, r.object)
467
+ @test_object.remove_relationship(:has_part, "info:fedora/3")
558
468
  #check returns false if relationship does not exist and does nothing with different predicate
559
- rBad = ActiveFedora::Relationship.new({:subject=>:self,:predicate=>:has_member,:object=>"info:fedora/4"})
560
- @test_object.remove_relationship(rBad.predicate, rBad.object)
469
+ @test_object.remove_relationship(:has_member,"info:fedora/4")
561
470
  #check only one item removed
562
471
  @test_object.ids_for_outbound(:has_part).should == ['4']
563
- @test_object.remove_relationship(r2.predicate, r2.object)
472
+ @test_object.remove_relationship(:has_part,"info:fedora/4")
564
473
  #check last item removed and predicate removed since now emtpy
565
474
  @test_object.ids_for_outbound(:has_part).should == []
475
+
476
+ @test_object.relationships_are_dirty.should == true
566
477
 
567
478
  end
568
479
  end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ class Test < ActiveFedora::Base
4
+ include ActiveFedora::ServiceDefinitions
5
+ #has_service_definition "monkey:100"
6
+ end
7
+
8
+ describe ActiveFedora::ServiceDefinitions do
9
+ before(:each) do
10
+ mmap = <<-MMAP
11
+ <fmm:MethodMap xmlns:fmm="http://fedora.comm.nsdlib.org/service/methodmap" name="Fedora MethodMap for listing collection members">
12
+ <fmm:Method operationName="getDocumentStyle1"/>
13
+ <fmm:Method operationName="getDocumentStyle2"/>
14
+ </fmm:MethodMap>
15
+ MMAP
16
+ stub_get("monkey:99")
17
+ Rubydora::Repository.any_instance.stubs(:client).returns @mock_client
18
+ Rubydora::Repository.any_instance.stubs(:datastream_dissemination).with({:pid=>'test:12',:dsid=>'METHODMAP'}).returns mmap
19
+ Test.has_service_definition "test:12"
20
+ end
21
+ describe "method lookup" do
22
+ it "should find method keys in the YAML config" do
23
+ ActiveFedora::ServiceDefinitions.lookup_method("fedora-system:3", "viewObjectProfile").should == :object_profile
24
+ end
25
+ end
26
+ describe "method creation" do
27
+ it "should create the system sdef methods" do
28
+ obj = Test.new(:pid=>"monkey:99")
29
+ (obj.respond_to? :object_profile).should == true
30
+ end
31
+ it "should create the declared sdef methods" do
32
+ obj = Test.new(:pid=>"monkey:99")
33
+ (obj.respond_to? :document_style_1).should == true
34
+ end
35
+ end
36
+ describe "generated method" do
37
+ it "should call the appropriate rubydora rest api method" do
38
+ Rubydora::Repository.any_instance.expects(:dissemination).with({:pid=>'monkey:99',:sdef=>'test:12', :method=>'getDocumentStyle1'})
39
+ #@mock_client.stubs(:[]).with('objects/monkey%3A99/methods/test%3A12/getDocumentStyle1')
40
+ obj = Test.new(:pid=>"monkey:99")
41
+ obj.document_style_1
42
+ end
43
+ it "should call the appropriate rubydora rest api method with parameters" do
44
+ Rubydora::Repository.any_instance.expects(:dissemination).with({:pid=>'monkey:99',:sdef=>'test:12', :method=>'getDocumentStyle1', :format=>'xml'})
45
+ obj = Test.new(:pid=>"monkey:99")
46
+ obj.document_style_1({:format=>'xml'})
47
+ end
48
+ it "should call the appropriate rubydora rest api method with a block" do
49
+ pending "how to mock the passed block to rubydora"
50
+ end
51
+ end
52
+ end
@@ -87,8 +87,8 @@ describe ActiveFedora do
87
87
  @test_object.save
88
88
  end
89
89
  it "should prevent Base.delete from deleting the corresponding Solr document if false" do
90
- ActiveFedora::DigitalObject.any_instance.expects(:delete)
91
90
  ActiveFedora::SolrService.instance.conn.expects(:delete).with(@test_object.pid).never
91
+ @test_object.inner_object.expects(:delete)
92
92
  @test_object.delete
93
93
  end
94
94
  end
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active-fedora
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
5
- prerelease:
4
+ hash: 1923832043
5
+ prerelease: 6
6
6
  segments:
7
7
  - 3
8
+ - 2
9
+ - 0
10
+ - pre
8
11
  - 1
9
- - 6
10
- version: 3.1.6
12
+ version: 3.2.0.pre1
11
13
  platform: ruby
12
14
  authors:
13
15
  - Matt Zumwalt
@@ -16,7 +18,7 @@ autorequire:
16
18
  bindir: bin
17
19
  cert_chain: []
18
20
 
19
- date: 2012-01-05 00:00:00 -06:00
21
+ date: 2011-12-21 00:00:00 -06:00
20
22
  default_executable:
21
23
  dependencies:
22
24
  - !ruby/object:Gem::Dependency
@@ -135,7 +137,7 @@ dependencies:
135
137
  version_requirements: &id008 !ruby/object:Gem::Requirement
136
138
  none: false
137
139
  requirements:
138
- - - ~>
140
+ - - ">="
139
141
  - !ruby/object:Gem::Version
140
142
  hash: 7
141
143
  segments:
@@ -151,7 +153,7 @@ dependencies:
151
153
  version_requirements: &id009 !ruby/object:Gem::Requirement
152
154
  none: false
153
155
  requirements:
154
- - - ~>
156
+ - - ">="
155
157
  - !ruby/object:Gem::Version
156
158
  hash: 7
157
159
  segments:
@@ -211,12 +213,12 @@ dependencies:
211
213
  requirements:
212
214
  - - ~>
213
215
  - !ruby/object:Gem::Version
214
- hash: 27
216
+ hash: 19
215
217
  segments:
216
218
  - 0
217
- - 2
218
- - 6
219
- version: 0.2.6
219
+ - 3
220
+ - 0
221
+ version: 0.3.0
220
222
  requirement: *id013
221
223
  - !ruby/object:Gem::Dependency
222
224
  name: rdf
@@ -545,6 +547,7 @@ files:
545
547
  - config/fedora.yml
546
548
  - config/jetty.yml
547
549
  - config/predicate_mappings.yml
550
+ - config/service_mappings.yml
548
551
  - config/solr.yml
549
552
  - config/solr_mappings.yml
550
553
  - config/solr_mappings_af_0.1.yml
@@ -570,14 +573,17 @@ files:
570
573
  - lib/active_fedora/metadata_datastream.rb
571
574
  - lib/active_fedora/metadata_datastream_helper.rb
572
575
  - lib/active_fedora/model.rb
576
+ - lib/active_fedora/named_relationships.rb
573
577
  - lib/active_fedora/nested_attributes.rb
574
578
  - lib/active_fedora/nokogiri_datastream.rb
579
+ - lib/active_fedora/predicates.rb
575
580
  - lib/active_fedora/property.rb
576
581
  - lib/active_fedora/qualified_dublin_core_datastream.rb
577
582
  - lib/active_fedora/railtie.rb
578
583
  - lib/active_fedora/rdf_xml_writer.rb
579
584
  - lib/active_fedora/reflection.rb
580
585
  - lib/active_fedora/relationship.rb
586
+ - lib/active_fedora/relationship_graph.rb
581
587
  - lib/active_fedora/relationships_helper.rb
582
588
  - lib/active_fedora/rels_ext_datastream.rb
583
589
  - lib/active_fedora/rubydora_connection.rb
@@ -587,7 +593,9 @@ files:
587
593
  - lib/active_fedora/samples/marpa-dc_datastream.rb
588
594
  - lib/active_fedora/samples/special_thing.rb
589
595
  - lib/active_fedora/semantic_node.rb
596
+ - lib/active_fedora/service_definitions.rb
590
597
  - lib/active_fedora/solr_service.rb
598
+ - lib/active_fedora/unsaved_digital_object.rb
591
599
  - lib/active_fedora/version.rb
592
600
  - lib/ruby-fedora.rb
593
601
  - lib/tasks/active_fedora.rake
@@ -622,6 +630,7 @@ files:
622
630
  - spec/integration/base_loader_spec.rb
623
631
  - spec/integration/base_spec.rb
624
632
  - spec/integration/bug_spec.rb
633
+ - spec/integration/datastream_collections_spec.rb
625
634
  - spec/integration/datastream_spec.rb
626
635
  - spec/integration/full_featured_model_spec.rb
627
636
  - spec/integration/metadata_datastream_helper_spec.rb
@@ -682,9 +691,9 @@ files:
682
691
  - spec/unit/base_delegate_spec.rb
683
692
  - spec/unit/base_extra_spec.rb
684
693
  - spec/unit/base_file_management_spec.rb
685
- - spec/unit/base_named_datastream_spec.rb
686
694
  - spec/unit/base_spec.rb
687
695
  - spec/unit/content_model_spec.rb
696
+ - spec/unit/datastream_collections_spec.rb
688
697
  - spec/unit/datastream_concurrency_spec.rb
689
698
  - spec/unit/datastream_spec.rb
690
699
  - spec/unit/has_many_collection_spec.rb
@@ -692,14 +701,17 @@ files:
692
701
  - spec/unit/metadata_datastream_spec.rb
693
702
  - spec/unit/model_spec.rb
694
703
  - spec/unit/nokogiri_datastream_spec.rb
704
+ - spec/unit/predicates_spec.rb
695
705
  - spec/unit/property_spec.rb
696
706
  - spec/unit/qualified_dublin_core_datastream_spec.rb
697
707
  - spec/unit/rdf_xml_writer.rb
708
+ - spec/unit/relationship_graph_spec.rb
698
709
  - spec/unit/relationship_spec.rb
699
710
  - spec/unit/relationships_helper_spec.rb
700
711
  - spec/unit/rels_ext_datastream_spec.rb
701
712
  - spec/unit/rubydora_connection_spec.rb
702
713
  - spec/unit/semantic_node_spec.rb
714
+ - spec/unit/service_definitions_spec.rb
703
715
  - spec/unit/solr_config_options_spec.rb
704
716
  - spec/unit/solr_service_spec.rb
705
717
  has_rdoc: true
@@ -723,12 +735,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
723
735
  required_rubygems_version: !ruby/object:Gem::Requirement
724
736
  none: false
725
737
  requirements:
726
- - - ">="
738
+ - - ">"
727
739
  - !ruby/object:Gem::Version
728
- hash: 3
740
+ hash: 25
729
741
  segments:
730
- - 0
731
- version: "0"
742
+ - 1
743
+ - 3
744
+ - 1
745
+ version: 1.3.1
732
746
  requirements: []
733
747
 
734
748
  rubyforge_project: rubyfedora
@@ -759,6 +773,7 @@ test_files:
759
773
  - spec/integration/base_loader_spec.rb
760
774
  - spec/integration/base_spec.rb
761
775
  - spec/integration/bug_spec.rb
776
+ - spec/integration/datastream_collections_spec.rb
762
777
  - spec/integration/datastream_spec.rb
763
778
  - spec/integration/full_featured_model_spec.rb
764
779
  - spec/integration/metadata_datastream_helper_spec.rb
@@ -819,9 +834,9 @@ test_files:
819
834
  - spec/unit/base_delegate_spec.rb
820
835
  - spec/unit/base_extra_spec.rb
821
836
  - spec/unit/base_file_management_spec.rb
822
- - spec/unit/base_named_datastream_spec.rb
823
837
  - spec/unit/base_spec.rb
824
838
  - spec/unit/content_model_spec.rb
839
+ - spec/unit/datastream_collections_spec.rb
825
840
  - spec/unit/datastream_concurrency_spec.rb
826
841
  - spec/unit/datastream_spec.rb
827
842
  - spec/unit/has_many_collection_spec.rb
@@ -829,13 +844,16 @@ test_files:
829
844
  - spec/unit/metadata_datastream_spec.rb
830
845
  - spec/unit/model_spec.rb
831
846
  - spec/unit/nokogiri_datastream_spec.rb
847
+ - spec/unit/predicates_spec.rb
832
848
  - spec/unit/property_spec.rb
833
849
  - spec/unit/qualified_dublin_core_datastream_spec.rb
834
850
  - spec/unit/rdf_xml_writer.rb
851
+ - spec/unit/relationship_graph_spec.rb
835
852
  - spec/unit/relationship_spec.rb
836
853
  - spec/unit/relationships_helper_spec.rb
837
854
  - spec/unit/rels_ext_datastream_spec.rb
838
855
  - spec/unit/rubydora_connection_spec.rb
839
856
  - spec/unit/semantic_node_spec.rb
857
+ - spec/unit/service_definitions_spec.rb
840
858
  - spec/unit/solr_config_options_spec.rb
841
859
  - spec/unit/solr_service_spec.rb