active-fedora 5.0.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/History.txt +14 -1
  2. data/README.textile +6 -0
  3. data/active-fedora.gemspec +1 -1
  4. data/lib/active_fedora.rb +2 -0
  5. data/lib/active_fedora/associations.rb +22 -2
  6. data/lib/active_fedora/associations/association_collection.rb +37 -0
  7. data/lib/active_fedora/associations/belongs_to_association.rb +8 -0
  8. data/lib/active_fedora/associations/has_many_association.rb +2 -0
  9. data/lib/active_fedora/base.rb +43 -6
  10. data/lib/active_fedora/datastream.rb +13 -37
  11. data/lib/active_fedora/datastreams.rb +2 -6
  12. data/lib/active_fedora/digital_object.rb +8 -1
  13. data/lib/active_fedora/metadata_datastream_helper.rb +2 -2
  14. data/lib/active_fedora/nokogiri_datastream.rb +55 -16
  15. data/lib/active_fedora/persistence.rb +14 -9
  16. data/lib/active_fedora/railtie.rb +15 -0
  17. data/lib/active_fedora/rdf_datastream.rb +4 -0
  18. data/lib/active_fedora/rdfxml_rdf_datastream.rb +2 -6
  19. data/lib/active_fedora/reflection.rb +11 -0
  20. data/lib/active_fedora/relationships.rb +4 -4
  21. data/lib/active_fedora/rels_ext_datastream.rb +21 -6
  22. data/lib/active_fedora/semantic_node.rb +3 -3
  23. data/lib/active_fedora/test_support.rb +38 -0
  24. data/lib/active_fedora/version.rb +1 -1
  25. data/lib/generators/active_fedora/config/USAGE +9 -0
  26. data/lib/generators/active_fedora/config/config_generator.rb +10 -0
  27. data/lib/generators/active_fedora/config/fedora/fedora_generator.rb +12 -0
  28. data/lib/generators/active_fedora/config/fedora/templates/fedora.yml +14 -0
  29. data/lib/generators/active_fedora/config/fedora/templates/fedora_conf/conf/development/fedora.fcfg +953 -0
  30. data/lib/generators/active_fedora/config/fedora/templates/fedora_conf/conf/test/fedora.fcfg +953 -0
  31. data/lib/generators/active_fedora/config/solr/solr_generator.rb +12 -0
  32. data/lib/generators/active_fedora/config/solr/templates/solr.yml +10 -0
  33. data/lib/generators/active_fedora/config/solr/templates/solr_conf/conf/schema.xml +692 -0
  34. data/lib/generators/active_fedora/config/solr/templates/solr_conf/conf/solrconfig.xml +299 -0
  35. data/lib/generators/active_fedora/config/solr/templates/solr_conf/solr.xml +35 -0
  36. data/lib/generators/active_fedora/model/USAGE +9 -0
  37. data/lib/generators/active_fedora/model/model_generator.rb +21 -0
  38. data/lib/generators/active_fedora/model/templates/model.rb.erb +6 -0
  39. data/lib/generators/active_fedora/model/templates/model_spec.rb.erb +21 -0
  40. data/lib/tasks/active_fedora_dev.rake +8 -0
  41. data/spec/fixtures/hydrangea_fixture_mods_article2.foxml.xml +234 -0
  42. data/spec/integration/associations_spec.rb +76 -15
  43. data/spec/integration/base_spec.rb +38 -10
  44. data/spec/integration/datastreams_spec.rb +24 -2
  45. data/spec/integration/nokogiri_datastream_spec.rb +23 -5
  46. data/spec/unit/base_extra_spec.rb +0 -1
  47. data/spec/unit/base_spec.rb +7 -47
  48. data/spec/unit/datastream_collections_spec.rb +0 -7
  49. data/spec/unit/datastream_spec.rb +7 -16
  50. data/spec/unit/datastreams_spec.rb +2 -2
  51. data/spec/unit/nokogiri_datastream_spec.rb +31 -20
  52. data/spec/unit/ntriples_datastream_spec.rb +7 -10
  53. data/spec/unit/persistence_spec.rb +0 -11
  54. data/spec/unit/qualified_dublin_core_datastream_spec.rb +1 -2
  55. data/spec/unit/relationships_spec.rb +5 -5
  56. data/spec/unit/rels_ext_datastream_spec.rb +14 -9
  57. data/spec/unit/semantic_node_spec.rb +4 -4
  58. metadata +25 -6
@@ -19,7 +19,7 @@ describe ActiveFedora::Datastream do
19
19
  end
20
20
 
21
21
  it "should be inspectable" do
22
- @test_datastream.inspect.should match /#<ActiveFedora::Datastream:-?\d+ @pid=\"__DO_NOT_USE__\" @dsid=\"abcd\" @controlGroup=\"M\" @dirty=\"true\" @mimeType=\"\" >/
22
+ @test_datastream.inspect.should match /#<ActiveFedora::Datastream:-?\d+ @pid=\"__DO_NOT_USE__\" @dsid=\"abcd\" @controlGroup=\"M\" changed=\"true\" @mimeType=\"\" >/
23
23
  end
24
24
 
25
25
  describe '#validate_content_present' do
@@ -62,14 +62,14 @@ describe ActiveFedora::Datastream do
62
62
  end
63
63
 
64
64
  describe '#save' do
65
- it "should set dirty? to false" do
66
- mock_repo = mock('repository', :config=>{})
67
- mock_repo.stubs(:add_datastream).with(:mimeType=>'text/xml', :versionable => true, :pid => @test_object.pid, :dsid => 'abcd', :controlGroup => 'M', :dsState => 'A', :content => 'hi there')
68
- mock_repo.expects(:datastream).with(:dsid => 'abcd', :pid => @test_object.pid).returns('')
65
+ it "should set changed" do
66
+ mock_repo = mock('repository')
67
+ mock_repo.stubs(:config).returns({})
68
+ mock_repo.stubs(:add_datastream).with(:versionable => true, :pid => @test_object.pid, :dsid => 'abcd', :controlGroup => 'M', :dsState => 'A', :content => 'hi there')
69
+ mock_repo.expects(:datastream).with(:dsid => 'abcd', :pid => @test_object.pid).returns('').at_least_once
69
70
  @test_object.inner_object.stubs(:repository).returns(mock_repo)
70
- @test_datastream.dirty?.should be_true
71
71
  @test_datastream.save
72
- @test_datastream.dirty?.should be_false
72
+ @test_datastream.should_not be_changed
73
73
  end
74
74
  end
75
75
 
@@ -85,15 +85,6 @@ describe ActiveFedora::Datastream do
85
85
  end
86
86
  end
87
87
 
88
- describe ".dirty?" do
89
- it "should return the value of the @dirty attribute or changed?" do
90
- @test_datastream.instance_variable_get(:@changed_attributes).clear
91
- @test_datastream.dirty?.should be_false
92
- @test_datastream.dirty = "boo"
93
- @test_datastream.dirty?.should be_true
94
- end
95
- end
96
-
97
88
  it "should have mimeType accessors" do
98
89
  ds1 = ActiveFedora::Datastream.new
99
90
  ds1.mimeType = "text/foo"
@@ -98,11 +98,11 @@ describe ActiveFedora::Datastreams do
98
98
  describe "creates datastreams" do
99
99
  before(:each) do
100
100
  class FooHistory < ActiveFedora::Base
101
- has_metadata :type=>ActiveFedora::SimpleDatastream, :name=>"someData" do |m|
101
+ has_metadata :type=>ActiveFedora::SimpleDatastream, :name=>"someData", :autocreate => true do |m|
102
102
  m.field "fubar", :string
103
103
  m.field "swank", :text
104
104
  end
105
- has_metadata :type=>ActiveFedora::SimpleDatastream, :name=>"withText2", :label=>"withLabel" do |m|
105
+ has_metadata :type=>ActiveFedora::SimpleDatastream, :name=>"withText2", :label=>"withLabel", :autocreate => true do |m|
106
106
  m.field "fubar", :text
107
107
  end
108
108
 
@@ -18,7 +18,9 @@ describe ActiveFedora::NokogiriDatastream do
18
18
  @mock_repo.stubs(:datastream_dissemination=>'My Content', :config=>{})
19
19
  @mock_inner.stubs(:repository).returns(@mock_repo)
20
20
  @mock_inner.stubs(:pid)
21
+ @mock_inner.stubs(:new? => false)
21
22
  @test_ds = ActiveFedora::NokogiriDatastream.new(@mock_inner, "descMetadata")
23
+ @test_ds.stubs(:new? => false, :profile => {}, :datastream_content => '<test_xml/>')
22
24
  @test_ds.content="<test_xml/>"
23
25
  end
24
26
 
@@ -44,7 +46,6 @@ describe ActiveFedora::NokogiriDatastream do
44
46
  it "should initialize from #xml_template if no xml is provided" do
45
47
  ActiveFedora::NokogiriDatastream.expects(:xml_template).returns("<fake template/>")
46
48
  n = ActiveFedora::NokogiriDatastream.new
47
- n.ensure_xml_loaded
48
49
  n.ng_xml.should be_equivalent_to("<fake template/>")
49
50
  end
50
51
  end
@@ -133,10 +134,10 @@ describe ActiveFedora::NokogiriDatastream do
133
134
  # @test_ds.fubar_values.should == ["val1", "val2"]
134
135
  # end
135
136
 
136
- it "should set @dirty to true" do
137
+ it "should set changed to true" do
137
138
  @mods_ds.get_values([{:title_info=>0},:main_title]).should == ["ARTICLE TITLE", "TITLE OF HOST JOURNAL"]
138
139
  @mods_ds.update_indexed_attributes [{"title_info"=>"0"},"main_title"]=>{"-1"=>"mork"}
139
- @mods_ds.dirty?.should be_true
140
+ @mods_ds.should be_changed
140
141
  end
141
142
  end
142
143
 
@@ -163,7 +164,7 @@ describe ActiveFedora::NokogiriDatastream do
163
164
  mods_xml = Nokogiri::XML::Document.parse( fixture(File.join("mods_articles", "hydrangea_article1.xml")) )
164
165
  tmpl = Hydra::ModsArticleDatastream.new
165
166
  Hydra::ModsArticleDatastream.from_xml(mods_xml,tmpl).ng_xml.root.to_xml.should == mods_xml.root.to_xml
166
- tmpl.dirty?.should be_false
167
+ tmpl.should_not be_changed
167
168
  end
168
169
  end
169
170
 
@@ -177,10 +178,10 @@ describe ActiveFedora::NokogiriDatastream do
177
178
  @test_ds.should respond_to(:save)
178
179
  end
179
180
  it "should persist the product of .to_xml in fedora" do
180
- @test_ds.expects(:new?).returns(true).twice
181
- @mock_repo.expects(:datastream).with(:pid => nil, :dsid => 'descMetadata').returns('').twice
181
+ @test_ds.expects(:new?).returns(true).at_least_once
182
+ @test_ds.stubs(:to_xml => "fake xml")
182
183
  @mock_repo.expects(:add_datastream).with(:pid => nil, :dsid => 'descMetadata', :versionable => true, :content => 'fake xml', :controlGroup => 'X', :dsState => 'A', :mimeType=>'text/xml')
183
- @test_ds.expects(:to_xml).returns("fake xml")
184
+
184
185
  @test_ds.serialize!
185
186
  @test_ds.save
186
187
  @test_ds.mimeType.should == 'text/xml'
@@ -188,14 +189,24 @@ describe ActiveFedora::NokogiriDatastream do
188
189
  end
189
190
 
190
191
  describe '.content=' do
191
- it "should update the content and ng_xml, marking the datastream as dirty" do
192
- @test_ds.dirty = false # pretend it isn't dirty to show that content= does it
193
- @test_ds.content.should_not be_equivalent_to(@sample_raw_xml)
194
- @test_ds.ng_xml.to_xml.should_not be_equivalent_to(@sample_raw_xml)
195
- @test_ds.content = @sample_raw_xml
196
- @test_ds.should be_dirty
197
- @test_ds.content.should be_equivalent_to(@sample_raw_xml)
198
- @test_ds.ng_xml.to_xml.should be_equivalent_to(@sample_raw_xml)
192
+ subject { ActiveFedora::NokogiriDatastream.new(@mock_inner, "descMetadata") }
193
+ it "should update the content" do
194
+ subject.stubs(:new? => false )
195
+ subject.content = "<a />"
196
+ subject.datastream_content.should == '<a />'
197
+ end
198
+
199
+ it "should mark the object as changed" do
200
+ subject.stubs(:new? => false )
201
+ subject.content = "<a />"
202
+ subject.should be_changed
203
+ end
204
+
205
+ it "update ngxml and mark the xml as loaded" do
206
+ subject.stubs(:new? => false )
207
+ subject.content = "<a />"
208
+ subject.ng_xml.to_xml.should =~ /<a\/>/
209
+ subject.xml_loaded.should be_true
199
210
  end
200
211
  end
201
212
 
@@ -214,11 +225,11 @@ describe ActiveFedora::NokogiriDatastream do
214
225
  @test_ds2.ng_xml.should be_kind_of Nokogiri::XML::Document
215
226
  @test_ds2.ng_xml.to_xml.should be_equivalent_to("<xmlelement/>")
216
227
  end
217
- it "should mark the datastream as dirty" do
218
- @test_ds2.dirty.should be_false
228
+ it "should mark the datastream as changed" do
229
+ @test_ds2.should_not be_changed
219
230
  @test_ds2.ng_xml = @sample_raw_xml
220
231
  @test_ds2.ng_xml_changed?.should be_true
221
- @test_ds2.should be_dirty
232
+ @test_ds2.should be_changed
222
233
  @test_ds2.instance_variable_get(:@content).should be_nil
223
234
  end
224
235
  end
@@ -342,11 +353,11 @@ describe ActiveFedora::NokogiriDatastream do
342
353
  @mods_ds.update_values([{":person"=>"0"}, "role", "text"]=>{"0"=>"role1", "1"=>"role2", "2"=>"role3"})
343
354
  end
344
355
 
345
- it "should set @dirty to true" do
356
+ it "should set changed to true" do
346
357
  mods_ds = Hydra::ModsArticleDatastream.new
347
358
  mods_ds.content=fixture(File.join("mods_articles","hydrangea_article1.xml")).read
348
359
  mods_ds.update_values([{":person"=>"0"}, "role", "text"]=>{"0"=>"role1", "1"=>"role2", "2"=>"role3"})
349
- mods_ds.dirty?.should be_true
360
+ mods_ds.should be_changed
350
361
  end
351
362
  end
352
363
 
@@ -126,15 +126,11 @@ describe ActiveFedora::NtriplesRDFDatastream do
126
126
  end
127
127
  end
128
128
  @subject = MyDatastream.new(@inner_object, 'mixed_rdf')
129
- @subject.stubs(:pid => 'test:1')
129
+ @subject.stubs(:pid => 'test:1', :repository => ActiveFedora::Base.connection_for_pid(0))
130
130
  end
131
131
  after(:each) do
132
132
  Object.send(:remove_const, :MyDatastream)
133
133
  end
134
- it "should save and reload" do
135
- @subject.publisher = ["St. Martin's Press"]
136
- @subject.save
137
- end
138
134
  it "should support to_s method" do
139
135
  @subject.publisher.to_s.should == [].to_s
140
136
  @subject.publisher = "Bob"
@@ -261,6 +257,9 @@ describe ActiveFedora::NtriplesRDFDatastream do
261
257
  delegate :rights, :to => :descMetadata
262
258
  end
263
259
  @obj = MyDatastream.new(@inner_object, 'solr_rdf')
260
+ @obj.stubs(:repository => mock(), :pid => 'test:1')
261
+ @obj.repository.stubs(:modify_datastream)
262
+ @obj.repository.stubs(:add_datastream)
264
263
  @obj.created = "2012-03-04"
265
264
  @obj.title = "Of Mice and Men, The Sequel"
266
265
  @obj.publisher = "Bob's Blogtastic Publishing"
@@ -271,18 +270,16 @@ describe ActiveFedora::NtriplesRDFDatastream do
271
270
  end
272
271
  describe '#save' do
273
272
  it "should set dirty? to false" do
274
- @obj.dirty?.should be_false
273
+ @obj.should_not be_changed
275
274
  @obj.title = "something"
276
- @obj.dirty?.should be_true
275
+ @obj.should be_changed
277
276
  @obj.save
278
- @obj.dirty?.should be_false
277
+ @obj.should_not be_changed
279
278
  end
280
279
  end
281
280
  describe '.content=' do
282
281
  it "should update the content and graph, marking the datastream as changed" do
283
282
  mock_repo = mock('repository')
284
- mock_repo.expects(:datastream_dissemination).with(:pid => 'test:123',
285
- :dsid => 'solr_rdf')
286
283
  sample_rdf = File.new('spec/fixtures/mixed_rdf_descMetadata.nt').read
287
284
  @obj.stubs(:pid).returns('test:123')
288
285
  @obj.stubs(:repository).returns(mock_repo)
@@ -19,20 +19,9 @@ describe ActiveFedora::Persistence do
19
19
  end
20
20
 
21
21
  describe "#update_needs_index?" do
22
- describe "when metadata is dirty" do
23
- before do
24
- subject.send(:metadata_is_dirty=, true)
25
- end
26
22
  it "should be true" do
27
23
  subject.send(:update_needs_index?).should be_true
28
24
  end
29
- end
30
-
31
- describe "when metadata is not dirty" do
32
- it "should be false" do
33
- subject.send(:update_needs_index?).should be_false
34
- end
35
- end
36
25
  end
37
26
 
38
27
 
@@ -60,8 +60,7 @@ describe ActiveFedora::QualifiedDublinCoreDatastream do
60
60
  n = ActiveFedora::QualifiedDublinCoreDatastream.from_xml(stream.to_xml, ds)
61
61
  n.spatial.should == ["Boston [7013445]", "Dorchester [7013575]", "Roxbury [7015002]"]
62
62
  n.title.should == ["Oral history with Frances Addelson, 1997 November 14"]
63
- n.dirty?.should == false
64
-
63
+ n.should_not be_changed
65
64
  end
66
65
 
67
66
 
@@ -90,7 +90,7 @@ describe ActiveFedora::Relationships do
90
90
  #local_node.internal_uri = "info:fedora/#{@pid}"
91
91
  local_node.pid = @pid
92
92
 
93
- local_node.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).at_least_once
93
+ local_node.expects(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>'')).at_least_once
94
94
  local_node.add_relationship(:is_member_of, "info:fedora/container:A")
95
95
  local_node.add_relationship(:is_member_of, "info:fedora/container:B")
96
96
 
@@ -122,7 +122,7 @@ describe ActiveFedora::Relationships do
122
122
  @test_object2 = MockHasRelationship.new
123
123
  @test_object2.pid = increment_pid
124
124
  @test_object2.stubs(:testing_inbound).returns({})
125
- @test_object2.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content =>'')).at_least_once
125
+ @test_object2.expects(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content =>'')).at_least_once
126
126
  @test_object2.add_relationship(:has_model, SpecNode.to_class_uri)
127
127
  @test_object2.should respond_to(:testing_append)
128
128
  @test_object2.should respond_to(:testing_remove)
@@ -273,7 +273,7 @@ describe ActiveFedora::Relationships do
273
273
  it "(:response_format => :id_array) should return an array of fedora PIDs" do
274
274
  SpecNode.create_outbound_relationship_finders("containers", :is_member_of)
275
275
  local_node = SpecNode.new
276
- local_node.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).at_least_once
276
+ local_node.expects(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>'')).at_least_once
277
277
  local_node.add_relationship(:is_member_of, "demo:10")
278
278
  result = local_node.containers_ids
279
279
  result.should be_instance_of(Array)
@@ -363,9 +363,9 @@ describe ActiveFedora::Relationships do
363
363
  @local_node2 = SpecNode.new
364
364
  @local_node2.pid = "mypid2"
365
365
  model_def = SpecNode.to_class_uri
366
- @local_node.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).at_least_once
366
+ @local_node.expects(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>'')).at_least_once
367
367
  @local_node.add_relationship(:has_model, model_def)
368
- @local_node2.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).at_least_once
368
+ @local_node2.expects(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>'')).at_least_once
369
369
  @local_node2.add_relationship(:has_model, model_def)
370
370
  @local_node.add_relationship(:has_part, @local_node2)
371
371
  @local_node2.add_relationship(:has_part, @local_node)
@@ -20,21 +20,26 @@ describe ActiveFedora::RelsExtDatastream do
20
20
  mock_inner.stubs(:repository).returns(@mock_repo)
21
21
  mock_inner.stubs(:pid).returns(@pid)
22
22
  @test_ds = ActiveFedora::RelsExtDatastream.new(mock_inner, "RELS-EXT")
23
+ @test_ds.stubs(:profile).returns({})
23
24
  end
24
25
 
25
26
  its(:metadata?) { should be_true}
26
27
 
27
- describe "#save" do
28
- before do
29
- @mock_repo.expects(:add_datastream).with(:pid => 'test:sample_pid', :dsid => 'RELS-EXT', :versionable => true, :content => 'fake xml', :controlGroup => 'M', :dsState => 'A', :mimeType=>'application/rdf+xml')
30
- @mock_repo.expects(:datastream).with(:pid => 'test:sample_pid', :dsid => 'RELS-EXT').returns("")
31
- end
32
- it 'should set the mime type' do
33
- @test_ds.content = 'fake xml'
34
- @test_ds.save
28
+ describe "#mimeType" do
29
+ it 'should use the application/rdf+xml mime type' do
35
30
  @test_ds.mimeType.should == 'application/rdf+xml'
36
31
  end
37
32
  end
33
+
34
+ describe "#changed?" do
35
+ it "should be false when no changes have been made" do
36
+ subject.changed?.should == false
37
+ end
38
+ it "should be true when the model has changes" do
39
+ subject.model = stub(:relationships_are_dirty=>true)
40
+ subject.changed?.should == true
41
+ end
42
+ end
38
43
 
39
44
 
40
45
  describe '#serialize!' do
@@ -44,7 +49,7 @@ describe ActiveFedora::RelsExtDatastream do
44
49
  subject = RDF::URI.new "info:fedora/test:sample_pid"
45
50
  graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:is_member_of), RDF::URI.new('demo:10'))
46
51
 
47
- @test_ds.expects(:model).returns(stub("model", :outbound_relationships=>graph, :relationships=>graph, :relationships_are_dirty =>true, :relationships_are_dirty= => true)).times(3)
52
+ @test_ds.stubs(:new? => true, :relationships_are_dirty? =>true, :relationships => graph, :model => mock(:relationships_are_dirty= => true))
48
53
  @test_ds.serialize!
49
54
  EquivalentXml.equivalent?(@test_ds.content, "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>\n <rdf:Description rdf:about='info:fedora/test:sample_pid'>\n <isMemberOf rdf:resource='demo:10' xmlns='info:fedora/fedora-system:def/relations-external#'/></rdf:Description>\n </rdf:RDF>").should be_true
50
55
  end
@@ -47,11 +47,11 @@ describe ActiveFedora::SemanticNode do
47
47
  end
48
48
 
49
49
  @node = SpecNode.new
50
- @node.stubs(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>''))
50
+ @node.stubs(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>''))
51
51
  @node.pid = increment_pid
52
52
  @test_object = SpecNode2.new
53
53
  @test_object.pid = increment_pid
54
- @test_object.stubs(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>''))
54
+ @test_object.stubs(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>''))
55
55
  end
56
56
 
57
57
  after(:each) do
@@ -105,7 +105,7 @@ describe ActiveFedora::SemanticNode do
105
105
  it "adding relationship to an instance should not affect class-level relationships hash" do
106
106
  local_test_node1 = SpecNode.new
107
107
  local_test_node2 = SpecNode.new
108
- local_test_node1.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).at_least_once
108
+ local_test_node1.expects(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>'')).at_least_once
109
109
  local_test_node1.add_relationship(:is_member_of, 'demo:10')
110
110
  local_test_node2.expects(:rels_ext).returns(stub('rels-ext', :content=>''))
111
111
 
@@ -137,7 +137,7 @@ describe ActiveFedora::SemanticNode do
137
137
 
138
138
  describe '#remove_relationship' do
139
139
  it 'should remove a relationship from the relationships hash' do
140
- @test_object.expects(:rels_ext).returns(stub("rels_ext", :dirty= => true, :content=>'')).times(4)
140
+ @test_object.expects(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>'')).times(4)
141
141
  @test_object.add_relationship(:has_part, "info:fedora/3")
142
142
  @test_object.add_relationship(:has_part, "info:fedora/4")
143
143
  #check both are there
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active-fedora
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 5.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-11-30 00:00:00.000000000 Z
14
+ date: 2012-12-07 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rsolr
@@ -132,7 +132,7 @@ dependencies:
132
132
  requirements:
133
133
  - - ~>
134
134
  - !ruby/object:Gem::Version
135
- version: 0.5.13
135
+ version: 0.8.0
136
136
  type: :runtime
137
137
  prerelease: false
138
138
  version_requirements: !ruby/object:Gem::Requirement
@@ -140,7 +140,7 @@ dependencies:
140
140
  requirements:
141
141
  - - ~>
142
142
  - !ruby/object:Gem::Version
143
- version: 0.5.13
143
+ version: 0.8.0
144
144
  - !ruby/object:Gem::Dependency
145
145
  name: rdf
146
146
  requirement: !ruby/object:Gem::Requirement
@@ -371,6 +371,7 @@ files:
371
371
  - lib/active_fedora/predicates.rb
372
372
  - lib/active_fedora/property.rb
373
373
  - lib/active_fedora/qualified_dublin_core_datastream.rb
374
+ - lib/active_fedora/railtie.rb
374
375
  - lib/active_fedora/rdf_datastream.rb
375
376
  - lib/active_fedora/rdf_xml_writer.rb
376
377
  - lib/active_fedora/rdfxml_rdf_datastream.rb
@@ -384,9 +385,25 @@ files:
384
385
  - lib/active_fedora/simple_datastream.rb
385
386
  - lib/active_fedora/solr_digital_object.rb
386
387
  - lib/active_fedora/solr_service.rb
388
+ - lib/active_fedora/test_support.rb
387
389
  - lib/active_fedora/unsaved_digital_object.rb
388
390
  - lib/active_fedora/validations.rb
389
391
  - lib/active_fedora/version.rb
392
+ - lib/generators/active_fedora/config/USAGE
393
+ - lib/generators/active_fedora/config/config_generator.rb
394
+ - lib/generators/active_fedora/config/fedora/fedora_generator.rb
395
+ - lib/generators/active_fedora/config/fedora/templates/fedora.yml
396
+ - lib/generators/active_fedora/config/fedora/templates/fedora_conf/conf/development/fedora.fcfg
397
+ - lib/generators/active_fedora/config/fedora/templates/fedora_conf/conf/test/fedora.fcfg
398
+ - lib/generators/active_fedora/config/solr/solr_generator.rb
399
+ - lib/generators/active_fedora/config/solr/templates/solr.yml
400
+ - lib/generators/active_fedora/config/solr/templates/solr_conf/conf/schema.xml
401
+ - lib/generators/active_fedora/config/solr/templates/solr_conf/conf/solrconfig.xml
402
+ - lib/generators/active_fedora/config/solr/templates/solr_conf/solr.xml
403
+ - lib/generators/active_fedora/model/USAGE
404
+ - lib/generators/active_fedora/model/model_generator.rb
405
+ - lib/generators/active_fedora/model/templates/model.rb.erb
406
+ - lib/generators/active_fedora/model/templates/model_spec.rb.erb
390
407
  - lib/tasks/active_fedora.rake
391
408
  - lib/tasks/active_fedora_dev.rake
392
409
  - script/console
@@ -400,6 +417,7 @@ files:
400
417
  - spec/fixtures/dino_jpg_no_file_ext
401
418
  - spec/fixtures/dublin_core_rdf_descMetadata.nt
402
419
  - spec/fixtures/hydrangea_fixture_mods_article1.foxml.xml
420
+ - spec/fixtures/hydrangea_fixture_mods_article2.foxml.xml
403
421
  - spec/fixtures/minivan.jpg
404
422
  - spec/fixtures/mixed_rdf_descMetadata.nt
405
423
  - spec/fixtures/mods_articles/hydrangea_article1.xml
@@ -542,10 +560,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
542
560
  version: '0'
543
561
  segments:
544
562
  - 0
545
- hash: 3035887802839477048
563
+ hash: -1107417416523628890
546
564
  requirements: []
547
565
  rubyforge_project: rubyfedora
548
- rubygems_version: 1.8.24
566
+ rubygems_version: 1.8.23
549
567
  signing_key:
550
568
  specification_version: 3
551
569
  summary: A convenience libary for manipulating documents in the Fedora Repository.
@@ -556,6 +574,7 @@ test_files:
556
574
  - spec/fixtures/dino_jpg_no_file_ext
557
575
  - spec/fixtures/dublin_core_rdf_descMetadata.nt
558
576
  - spec/fixtures/hydrangea_fixture_mods_article1.foxml.xml
577
+ - spec/fixtures/hydrangea_fixture_mods_article2.foxml.xml
559
578
  - spec/fixtures/minivan.jpg
560
579
  - spec/fixtures/mixed_rdf_descMetadata.nt
561
580
  - spec/fixtures/mods_articles/hydrangea_article1.xml