active-fedora 3.1.4 → 3.1.5

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 (54) hide show
  1. data/Gemfile +3 -0
  2. data/Gemfile.lock +38 -14
  3. data/History.txt +8 -0
  4. data/Rakefile +4 -3
  5. data/active-fedora.gemspec +2 -3
  6. data/config/jetty.yml +5 -3
  7. data/lib/active_fedora/base.rb +14 -10
  8. data/lib/active_fedora/metadata_datastream_helper.rb +6 -2
  9. data/lib/active_fedora/version.rb +1 -1
  10. data/lib/tasks/active_fedora_dev.rake +13 -32
  11. data/spec/integration/base_file_management_spec.rb +1 -1
  12. data/spec/integration/base_find_by_fields_spec.rb +1 -1
  13. data/spec/integration/base_loader_spec.rb +1 -1
  14. data/spec/integration/base_spec.rb +8 -8
  15. data/spec/integration/bug_spec.rb +3 -4
  16. data/spec/integration/datastream_spec.rb +1 -2
  17. data/spec/integration/full_featured_model_spec.rb +2 -1
  18. data/spec/integration/metadata_datastream_helper_spec.rb +1 -2
  19. data/spec/integration/model_spec.rb +1 -2
  20. data/spec/integration/mods_article_integration_spec.rb +1 -1
  21. data/spec/integration/nokogiri_datastream_spec.rb +1 -1
  22. data/spec/integration/rels_ext_datastream_spec.rb +1 -2
  23. data/spec/integration/semantic_node_spec.rb +1 -1
  24. data/spec/integration/solr_service_spec.rb +1 -1
  25. data/spec/rails3_test_app/spec/unit/rails_3_init.rb +1 -1
  26. data/spec/spec_helper.rb +3 -5
  27. data/spec/unit/active_fedora_spec.rb +7 -17
  28. data/spec/unit/base_active_model_spec.rb +1 -1
  29. data/spec/unit/base_cma_spec.rb +1 -1
  30. data/spec/unit/base_datastream_management_spec.rb +1 -1
  31. data/spec/unit/base_delegate_spec.rb +1 -1
  32. data/spec/unit/base_extra_spec.rb +1 -1
  33. data/spec/unit/base_file_management_spec.rb +1 -1
  34. data/spec/unit/base_named_datastream_spec.rb +1 -1
  35. data/spec/unit/base_spec.rb +47 -16
  36. data/spec/unit/content_model_spec.rb +1 -1
  37. data/spec/unit/datastream_concurrency_spec.rb +1 -2
  38. data/spec/unit/datastream_spec.rb +1 -2
  39. data/spec/unit/has_many_collection_spec.rb +4 -4
  40. data/spec/unit/inheritance_spec.rb +1 -1
  41. data/spec/unit/metadata_datastream_spec.rb +1 -1
  42. data/spec/unit/model_spec.rb +1 -2
  43. data/spec/unit/nokogiri_datastream_spec.rb +1 -1
  44. data/spec/unit/property_spec.rb +1 -1
  45. data/spec/unit/qualified_dublin_core_datastream_spec.rb +4 -4
  46. data/spec/unit/rdf_xml_writer.rb +1 -1
  47. data/spec/unit/relationship_spec.rb +1 -1
  48. data/spec/unit/relationships_helper_spec.rb +1 -1
  49. data/spec/unit/rels_ext_datastream_spec.rb +1 -1
  50. data/spec/unit/rubydora_connection_spec.rb +1 -1
  51. data/spec/unit/semantic_node_spec.rb +1 -1
  52. data/spec/unit/solr_config_options_spec.rb +1 -1
  53. data/spec/unit/solr_service_spec.rb +1 -1
  54. metadata +10 -25
data/Gemfile CHANGED
@@ -3,3 +3,6 @@ source "http://rubygems.org"
3
3
  # Bundler will rely on active-fedora.gemspec for dependency information.
4
4
 
5
5
  gemspec
6
+
7
+ gem 'ruby-debug', :platform => :ruby_18
8
+ gem 'ruby-debug19', :platform => :ruby_19
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active-fedora (3.1.4)
4
+ active-fedora (3.1.5)
5
5
  activeresource (~> 3.0.0)
6
6
  activesupport (~> 3.0.0)
7
7
  equivalent-xml
@@ -21,7 +21,7 @@ PATH
21
21
  GEM
22
22
  remote: http://rubygems.org/
23
23
  specs:
24
- RedCloth (4.2.8)
24
+ RedCloth (4.2.9)
25
25
  activemodel (3.0.11)
26
26
  activesupport (= 3.0.11)
27
27
  builder (~> 2.1.2)
@@ -33,11 +33,13 @@ GEM
33
33
  addressable (2.2.6)
34
34
  akami (1.0.0)
35
35
  gyoku (>= 0.4.0)
36
+ archive-tar-minitar (0.5.2)
36
37
  builder (2.1.2)
37
- childprocess (0.2.2)
38
+ childprocess (0.2.3)
38
39
  ffi (~> 1.0.6)
39
- columnize (0.3.4)
40
+ columnize (0.3.5)
40
41
  daemons (1.1.4)
42
+ diff-lcs (1.1.3)
41
43
  equivalent-xml (0.2.8)
42
44
  nokogiri (>= 1.4.3)
43
45
  facets (2.9.2)
@@ -48,7 +50,7 @@ GEM
48
50
  httpi (0.9.5)
49
51
  rack
50
52
  i18n (0.5.0)
51
- jettywrapper (1.1.0)
53
+ jettywrapper (1.2.0)
52
54
  activesupport (>= 3.0.0)
53
55
  childprocess
54
56
  i18n
@@ -56,8 +58,10 @@ GEM
56
58
  mediashelf-loggable
57
59
  linecache (0.46)
58
60
  rbx-require-relative (> 0.0.4)
61
+ linecache19 (0.5.12)
62
+ ruby_core_source (>= 0.1.4)
59
63
  logger (1.2.8)
60
- mediashelf-loggable (0.4.7)
64
+ mediashelf-loggable (0.4.9)
61
65
  metaclass (0.0.1)
62
66
  mime-types (1.17.2)
63
67
  mocha (0.10.0)
@@ -79,14 +83,31 @@ GEM
79
83
  rdf (>= 0.3.4)
80
84
  rest-client (1.6.7)
81
85
  mime-types (>= 1.16)
82
- rsolr (1.0.2)
86
+ rsolr (1.0.6)
83
87
  builder (>= 2.1.2)
84
- rspec (1.3.2)
88
+ rspec (2.7.0)
89
+ rspec-core (~> 2.7.0)
90
+ rspec-expectations (~> 2.7.0)
91
+ rspec-mocks (~> 2.7.0)
92
+ rspec-core (2.7.1)
93
+ rspec-expectations (2.7.0)
94
+ diff-lcs (~> 1.1.2)
95
+ rspec-mocks (2.7.0)
85
96
  ruby-debug (0.10.4)
86
97
  columnize (>= 0.1)
87
98
  ruby-debug-base (~> 0.10.4.0)
88
99
  ruby-debug-base (0.10.4)
89
100
  linecache (>= 0.3)
101
+ ruby-debug-base19 (0.11.25)
102
+ columnize (>= 0.3.1)
103
+ linecache19 (>= 0.5.11)
104
+ ruby_core_source (>= 0.1.4)
105
+ ruby-debug19 (0.11.6)
106
+ columnize (>= 0.3.1)
107
+ linecache19 (>= 0.5.11)
108
+ ruby-debug-base19 (>= 0.11.19)
109
+ ruby_core_source (0.1.5)
110
+ archive-tar-minitar (>= 0.5.2)
90
111
  rubydora (0.2.6)
91
112
  activemodel
92
113
  activesupport
@@ -111,17 +132,19 @@ GEM
111
132
  om (>= 1.4.0)
112
133
  stomp
113
134
  xml-simple
114
- solrizer-fedora (1.1.3)
115
- active-fedora (>= 2.3.0)
135
+ solrizer-fedora (1.2.1)
136
+ active-fedora (~> 3.1.0)
137
+ activesupport
116
138
  fastercsv
139
+ jettywrapper (>= 1.1.0)
117
140
  rsolr
118
141
  solr-ruby (>= 0.0.6)
119
142
  solrizer (>= 1.0.0)
120
- stomp (1.1.9)
143
+ stomp (1.1.10)
121
144
  wasabi (2.0.0)
122
145
  nokogiri (>= 1.4.0)
123
146
  xml-simple (1.1.1)
124
- yard (0.7.3)
147
+ yard (0.7.4)
125
148
 
126
149
  PLATFORMS
127
150
  ruby
@@ -129,11 +152,12 @@ PLATFORMS
129
152
  DEPENDENCIES
130
153
  RedCloth
131
154
  active-fedora!
132
- jettywrapper (>= 1.1.0)
155
+ jettywrapper (>= 1.2.0)
133
156
  mocha (>= 0.9.8)
134
157
  rake
135
158
  rcov
136
- rspec (< 2.0.0)
159
+ rspec (~> 2.0)
137
160
  ruby-debug
161
+ ruby-debug19
138
162
  solrizer-fedora (>= 1.1.3)
139
163
  yard
@@ -1,3 +1,11 @@
1
+ 3.1.5
2
+ HYDRA-722 updating AF::Base#label= and then saving doesn't persist the change
3
+ JettyWrapper to 1.2.0
4
+ Upgrade to rspec2
5
+ add_file_datastream should take a prefix option.
6
+ Added assert_content_model method
7
+ Updates for ruby 1.9 compatibility
8
+
1
9
  3.1.4
2
10
  Update rubydora to 0.2.6
3
11
  Created a consistent implementation of Model.classname_from_uri
data/Rakefile CHANGED
@@ -3,9 +3,6 @@ require 'rubygems'
3
3
  require 'bundler'
4
4
  require "bundler/setup"
5
5
 
6
-
7
- $: << 'lib'
8
-
9
6
  Bundler::GemHelper.install_tasks
10
7
 
11
8
  # load rake tasks defined in lib/tasks
@@ -13,4 +10,8 @@ Dir["lib/tasks/**/*.rake"].each { |ext| load ext } if defined?(Rake)
13
10
 
14
11
  CLEAN.include %w[**/.DS_Store tmp *.log *.orig *.tmp **/*~]
15
12
 
13
+ task :spec => ['active_fedora:rspec']
14
+ task :rcov => ['active_fedora:rcov']
15
+
16
+
16
17
  task :default => [:spec]
@@ -35,10 +35,9 @@ Gem::Specification.new do |s|
35
35
  s.add_development_dependency("rake")
36
36
  s.add_development_dependency("rcov")
37
37
  s.add_development_dependency("solrizer-fedora", ">=1.1.3") # used by the fixtures rake tasks
38
- s.add_development_dependency("jettywrapper", ">=1.1.0")
39
- s.add_development_dependency("rspec", "<2.0.0")
38
+ s.add_development_dependency("jettywrapper", ">=1.2.0")
39
+ s.add_development_dependency("rspec", "~> 2.0")
40
40
  s.add_development_dependency("mocha", ">= 0.9.8")
41
- s.add_development_dependency("ruby-debug")
42
41
 
43
42
  s.files = `git ls-files`.split("\n")
44
43
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -1,3 +1,5 @@
1
- jetty_port: 8983
2
- java_opts:
3
- - "-Xmx256m -XX:MaxPermSize=128m"
1
+ default:
2
+ jetty_port: 8983
3
+ java_opts:
4
+ - "-Xmx256m"
5
+ - "-XX:MaxPermSize=128m"
@@ -300,10 +300,10 @@ module ActiveFedora
300
300
  # Add the given file as a datastream in the object
301
301
  #
302
302
  # @param [File] file the file to add
303
- # @param [Hash] opts options: :dsid, :label, :mimeType
303
+ # @param [Hash] opts options: :dsid, :label, :mimeType, :prefix
304
304
  def add_file_datastream(file, opts={})
305
305
  label = opts.has_key?(:label) ? opts[:label] : ""
306
- attrs = {:dsLabel => label, :controlGroup => 'M', :blob => file}
306
+ attrs = {:dsLabel => label, :controlGroup => 'M', :blob => file, :prefix=>opts[:prefix]}
307
307
  if opts.has_key?(:mime_type)
308
308
  attrs.merge!({:mimeType=>opts[:mime_type]})
309
309
  elsif opts.has_key?(:mimeType)
@@ -655,10 +655,8 @@ module ActiveFedora
655
655
  end
656
656
 
657
657
  self.send(:define_method,:"#{append_method_name}") do |*args|
658
- opts = *args
659
- opts ||= {}
660
658
  #call add_named_datastream instead of add_file_named_datastream in case not managed datastream
661
- add_named_datastream(name,opts)
659
+ add_named_datastream(name,*args)
662
660
  end
663
661
  end
664
662
 
@@ -788,7 +786,7 @@ module ActiveFedora
788
786
  end
789
787
 
790
788
  def label=(new_label)
791
- @inner_object.profile["objLabel"] = new_label
789
+ @inner_object.label = new_label
792
790
  end
793
791
 
794
792
  #Return a hash of all available metadata fields for all
@@ -933,9 +931,10 @@ module ActiveFedora
933
931
  # m.update_attributes({"fubar"=>{"-1"=>"mork", "0"=>"york", "1"=>"mangle"}}, :datastreams=>["my_ds", "my_other_ds"])
934
932
  #
935
933
  def update_indexed_attributes(params={}, opts={})
936
- if opts[:datastreams]
934
+ if ds = opts[:datastreams]
937
935
  ds_array = []
938
- opts[:datastreams].each do |dsname|
936
+ ds = [ds] unless ds.respond_to? :each
937
+ ds.each do |dsname|
939
938
  ds_array << datastreams[dsname]
940
939
  end
941
940
  else
@@ -990,6 +989,12 @@ module ActiveFedora
990
989
  end
991
990
  end
992
991
 
992
+ # This can be overriden to assert a different model
993
+ # It's normally called once in the lifecycle, by #create#
994
+ def assert_content_model
995
+ add_relationship(:has_model, ActiveFedora::ContentModel.pid_from_ruby_class(self.class))
996
+ end
997
+
993
998
  private
994
999
  def configure_defined_datastreams
995
1000
  if self.class.ds_specs
@@ -1032,11 +1037,10 @@ module ActiveFedora
1032
1037
  end
1033
1038
 
1034
1039
 
1035
-
1036
1040
 
1037
1041
  # Deals with preparing new object to be saved to Fedora, then pushes it and its datastreams into Fedora.
1038
1042
  def create
1039
- add_relationship(:has_model, ActiveFedora::ContentModel.pid_from_ruby_class(self.class))
1043
+ assert_content_model
1040
1044
  @metadata_is_dirty = true
1041
1045
  update
1042
1046
  end
@@ -35,7 +35,9 @@ module ActiveFedora::MetadataDatastreamHelper
35
35
  fields.each do |field_key, field_info|
36
36
  if field_info.has_key?(:values) && !field_info[:values].nil?
37
37
  field_symbol = ActiveFedora::SolrService.solr_name(field_key, field_info[:type])
38
- field_info[:values].each do |val|
38
+ values = field_info[:values]
39
+ values = [values] unless values.respond_to? :each
40
+ values.each do |val|
39
41
  ::Solrizer::Extractor.insert_solr_field_value(solr_doc, field_symbol, val )
40
42
  end
41
43
  end
@@ -80,7 +82,9 @@ module ActiveFedora::MetadataDatastreamHelper
80
82
  builder = Nokogiri::XML::Builder.with(xml_insertion_point) do |xml|
81
83
  fields.each_pair do |field,field_info|
82
84
  element_attrs = field_info[:element_attrs].nil? ? {} : field_info[:element_attrs]
83
- field_info[:values].each do |val|
85
+ values = field_info[:values]
86
+ values = [values] unless values.respond_to? :each
87
+ values.each do |val|
84
88
  builder_arg = "xml.#{field}(val, element_attrs)"
85
89
  eval(builder_arg)
86
90
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "3.1.4"
2
+ VERSION = "3.1.5"
3
3
  end
@@ -1,32 +1,9 @@
1
- begin
2
- require 'spec'
3
- rescue LoadError
4
- require 'rubygems'
5
- require 'spec'
6
- end
7
- begin
8
- require 'spec/rake/spectask'
9
- rescue LoadError
10
- puts <<-EOS
11
- To use rspec for testing you must install rspec gem:
12
- gem install rspec
13
- EOS
14
- exit(0)
15
- end
16
-
17
1
  APP_ROOT = File.expand_path("#{File.dirname(__FILE__)}/../../")
18
- require 'jettywrapper'
19
2
 
20
- $: << 'lib'
21
-
22
- desc "Run active-fedora rspec tests"
23
- task :spec do
24
- Rake::Task["active_fedora:rspec"].invoke
25
- end
3
+ require 'jettywrapper'
26
4
 
27
5
  desc "Hudson build"
28
6
  task :hudson do
29
-
30
7
  ENV['environment'] = "test"
31
8
  Rake::Task["active_fedora:doc"].invoke
32
9
  Rake::Task["active_fedora:configure_jetty"].invoke
@@ -40,13 +17,13 @@ task :hudson do
40
17
  end
41
18
 
42
19
  namespace :active_fedora do
43
- require 'lib/active-fedora'
20
+ require 'active-fedora'
44
21
 
45
22
  # Use yard to build docs
46
23
  begin
47
24
  require 'yard'
48
25
  require 'yard/rake/yardoc_task'
49
- project_root = File.expand_path("#{File.dirname(__FILE__)}/../../")
26
+ project_root = APP_ROOT
50
27
  doc_destination = File.join(project_root, 'doc')
51
28
 
52
29
  YARD::Rake::YardocTask.new(:doc) do |yt|
@@ -61,12 +38,16 @@ namespace :active_fedora do
61
38
  end
62
39
  end
63
40
 
41
+ require 'rspec/core/rake_task'
42
+ RSpec::Core::RakeTask.new(:rspec) do |spec|
43
+ spec.pattern = FileList['spec/**/*_spec.rb']
44
+ spec.pattern += FileList['spec/*_spec.rb']
45
+ end
64
46
 
65
- Spec::Rake::SpecTask.new(:rspec) do |t|
66
- t.spec_files = FileList['spec/**/*_spec.rb']
67
- t.rcov = true
68
- t.rcov_opts << ['--exclude', 'gems']
69
- t.rcov_opts << ['--exclude', 'spec']
47
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
48
+ spec.pattern = FileList['spec/**/*_spec.rb']
49
+ spec.pattern += FileList['spec/*_spec.rb']
50
+ spec.rcov = true
70
51
  end
71
52
 
72
53
  task :clean_jetty do
@@ -99,6 +80,6 @@ end
99
80
  desc 'Set up ActiveFedora environment. !! Only for use while working within a working copy of active-fedora'
100
81
  task :environment do
101
82
  puts "Initializing ActiveFedora Rake environment. This should only be called when working within a workign copy of the active-fedora code."
102
- require 'spec/samples/models/hydrangea_article'
83
+ require "#{APP_ROOT}/spec/samples/models/hydrangea_article"
103
84
  require 'active_fedora/samples'
104
85
  end
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::Base do
4
4
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "..", "spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  class MockAFBaseQuerySolr < ActiveFedora::Base
4
4
  has_metadata :name => "properties", :type => ActiveFedora::MetadataDatastream do |m|
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "..", "spec_helper" )
1
+ require 'spec_helper'
2
2
  require 'active_fedora'
3
3
  require 'active_fedora/base'
4
4
  require 'active_fedora/metadata_datastream'
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  class MockAFBaseRelationship < ActiveFedora::Base
4
4
  has_relationship "testing", :has_part, :type=>MockAFBaseRelationship
@@ -700,8 +700,8 @@ describe ActiveFedora::Base do
700
700
  it 'should add a datastream with the given name to the object in fedora' do
701
701
  @test_object2 = MockAFBaseDatastream.new
702
702
  # @test_object2.new_object = true
703
- f = File.new(File.join( File.dirname(__FILE__), "../fixtures/minivan.jpg"))
704
- f2 = File.new(File.join( File.dirname(__FILE__), "../fixtures/dino.jpg" ))
703
+ f = File.open(File.join( File.dirname(__FILE__), "../fixtures/minivan.jpg"), 'rb')
704
+ f2 = File.open(File.join( File.dirname(__FILE__), "../fixtures/dino.jpg" ), 'rb')
705
705
  f2.stubs(:original_filename).returns("dino.jpg")
706
706
  f.stubs(:content_type).returns("image/jpeg")
707
707
  @test_object2.add_named_datastream("thumbnail",{:content_type=>"image/jpeg",:blob=>f, :label=>"testDS"})
@@ -734,7 +734,7 @@ describe ActiveFedora::Base do
734
734
  it 'should add a file datastream with the given name to the object in fedora' do
735
735
  @test_object2 = MockAFBaseDatastream.new
736
736
  # @test_object2.new_object = true
737
- f = File.new(File.join( File.dirname(__FILE__), "../fixtures/minivan.jpg"))
737
+ f = File.open(File.join( File.dirname(__FILE__), "../fixtures/minivan.jpg"), 'rb')
738
738
  f.stubs(:content_type).returns("image/jpeg")
739
739
  @test_object2.add_named_file_datastream("thumbnail",f)
740
740
  ds = @test_object2.thumbnail.first
@@ -758,10 +758,10 @@ describe ActiveFedora::Base do
758
758
  describe '#update_named_datastream' do
759
759
  it 'should update a named datastream to have a new file' do
760
760
  @test_object2 = MockAFBaseDatastream.new
761
- f = File.new(File.join( File.dirname(__FILE__), "../fixtures/minivan.jpg"))
761
+ f = File.open(File.join( File.dirname(__FILE__), "../fixtures/minivan.jpg"), 'rb')
762
762
  minivan = f.read
763
763
  f.rewind
764
- f2 = File.new(File.join( File.dirname(__FILE__), "../fixtures/dino.jpg" ))
764
+ f2 = File.open(File.join( File.dirname(__FILE__), "../fixtures/dino.jpg" ), 'rb')
765
765
  dino = f2.read
766
766
  f2.rewind
767
767
  f.stubs(:content_type).returns("image/jpeg")
@@ -802,8 +802,8 @@ describe ActiveFedora::Base do
802
802
  it 'should return a hash of datastream name to an array of dsids' do
803
803
  @test_object2 = MockAFBaseDatastream.new
804
804
  # @test_object2.new_object = true
805
- f = File.new(File.join( File.dirname(__FILE__), "../fixtures/minivan.jpg"))
806
- f2 = File.new(File.join( File.dirname(__FILE__), "../fixtures/dino.jpg" ))
805
+ f = File.open(File.join( File.dirname(__FILE__), "../fixtures/minivan.jpg"), 'rb')
806
+ f2 = File.open(File.join( File.dirname(__FILE__), "../fixtures/dino.jpg" ), 'rb')
807
807
  f2.stubs(:original_filename).returns("dino.jpg")
808
808
  f.stubs(:content_type).returns("image/jpeg")
809
809
  @test_object2.add_named_datastream("thumbnail",{:content_type=>"image/jpeg",:blob=>f, :label=>"testDS"})
@@ -1,9 +1,8 @@
1
- require File.join( File.dirname(__FILE__), "..", "spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require 'active_fedora/model'
5
5
  require "rexml/document"
6
- require 'ftools'
7
6
  require 'mocha'
8
7
 
9
8
  include ActiveFedora::Model
@@ -37,13 +36,13 @@ end
37
36
 
38
37
  @test_object.pid.should_not be_nil
39
38
 
40
- x = *FooHistory.find(@test_object.pid)
39
+ x = FooHistory.find(@test_object.pid)
41
40
  ds2 = x.datastreams["someData"]
42
41
  ds2.fubar_values.should == ['bar']
43
42
  ds2.fubar_values = ["meh"]
44
43
  ds2.fubar_values.should == ["meh"]
45
44
  x.save
46
- x = *FooHistory.find(@test_object.pid)
45
+ x = FooHistory.find(@test_object.pid)
47
46
  x.datastreams['someData'].fubar_values.should == ["meh"]
48
47
  x.save
49
48
  end
@@ -1,8 +1,7 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require "rexml/document"
5
- require 'ftools'
6
5
 
7
6
  describe ActiveFedora::Datastream do
8
7
 
@@ -1,4 +1,5 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ # encoding: WINDOWS-1252
2
+ require 'spec_helper'
2
3
  require 'rexml/document'
3
4
  require "active_fedora/samples"
4
5
 
@@ -1,8 +1,7 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active-fedora'
4
4
  require "rexml/document"
5
- require 'ftools'
6
5
 
7
6
  class MockMetaHelperSolr < ActiveFedora::Base
8
7
  has_metadata :name => "properties", :type => ActiveFedora::MetadataDatastream do |m|
@@ -1,9 +1,8 @@
1
- require File.join( File.dirname(__FILE__), "..", "spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require 'active_fedora/model'
5
5
  require "rexml/document"
6
- require 'ftools'
7
6
  require 'mocha'
8
7
 
9
8
  include ActiveFedora::Model
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
  require "active_fedora/samples"
3
3
 
4
4
  describe ActiveFedora::Base do
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
  require "active_fedora/samples"
3
3
  require "solrizer"
4
4
 
@@ -1,8 +1,7 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require "rexml/document"
5
- require 'ftools'
6
5
 
7
6
  class MockAFRelsSolr < ActiveFedora::Base
8
7
  has_relationship "testing", :has_part, :type=>MockAFRelsSolr
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
 
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), '../spec_helper')
1
+ require 'spec_helper'
2
2
 
3
3
  describe "initializing active-fedora in a rails 3 app" do
4
4
  it "should include ActiveFedora::Railtie" do
@@ -1,25 +1,23 @@
1
1
  ENV["environment"] ||= 'test'
2
2
  require "bundler/setup"
3
3
  require 'active-fedora'
4
- require 'spec'
4
+ require 'rspec'
5
5
  require 'equivalent-xml/rspec_matchers'
6
6
 
7
7
  require 'support/mock_fedora'
8
8
 
9
9
 
10
10
  logger.level = Logger::WARN if logger.respond_to? :level ###MediaShelf StubLogger doesn't have a level= method
11
-
12
- $:.unshift(File.dirname(__FILE__) + '/../lib')
13
11
  $VERBOSE=nil
14
12
 
15
13
  # This loads the Fedora and Solr config info from /config/fedora.yml
16
14
  # You can load it from a different location by passing a file path as an argument.
17
15
  ActiveFedora.init(:fedora_config_path=>File.join(File.dirname(__FILE__), "..", "config", "fedora.yml"))
18
16
 
19
- Spec::Runner.configure do |config|
17
+ RSpec.configure do |config|
20
18
  config.mock_with :mocha
21
19
  end
22
20
 
23
21
  def fixture(file)
24
- File.new(File.join(File.dirname(__FILE__), 'fixtures', file))
22
+ File.open(File.join(File.dirname(__FILE__), 'fixtures', file), 'rb')
25
23
  end
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  # For testing Module-level methods like ActiveFedora.init
4
4
 
@@ -6,7 +6,6 @@ describe ActiveFedora do
6
6
 
7
7
  after :all do
8
8
  unstub_rails
9
- unstub_blacklight
10
9
  # Restore to default fedora configs
11
10
  fedora_config_path = File.join(File.dirname(__FILE__), "..", "..", "config", "fedora.yml")
12
11
  ActiveFedora.init(:environment=>"test", :fedora_config_path=>fedora_config_path)
@@ -339,8 +338,7 @@ describe ActiveFedora do
339
338
 
340
339
  after(:all) do
341
340
  # Restore to default fedora configs
342
- ActiveFedora.init(:fedora_config_path => File.join(File.dirname(__FILE__), "..", "..", "config", "fedora.yml"))
343
-
341
+ ActiveFedora.init(:environment => "test", :fedora_config_path => File.join(File.dirname(__FILE__), "..", "..", "config", "fedora.yml"))
344
342
  end
345
343
 
346
344
  describe "outside of rails" do
@@ -400,6 +398,11 @@ end
400
398
 
401
399
 
402
400
  describe ActiveFedora do
401
+ after(:all) do
402
+ # Restore to default fedora configs
403
+ ActiveFedora.init(:environment => "test", :fedora_config_path => File.join(File.dirname(__FILE__), "..", "..", "config", "fedora.yml"))
404
+ end
405
+
403
406
  # Put methods whose tests require registering Fedora & Solr here.
404
407
  # to allow tests to run fast, keep these to a minimum.
405
408
  describe "register_solr_and_fedora" do
@@ -435,19 +438,6 @@ def unstub_rails
435
438
  Object.send(:remove_const,:Rails) if defined?(Rails)
436
439
  end
437
440
 
438
- def stub_blacklight(opts={})
439
- Object.const_set("Blacklight",Class)
440
- Blacklight.send(:undef_method,:solr_config) if Blacklight.respond_to?(:solr_config)
441
- if opts[:solr_config]
442
- Blacklight.send(:define_method,:solr_config) do
443
- opts[:solr_config]
444
- end
445
- end
446
- end
447
-
448
- def unstub_blacklight
449
- Object.send(:remove_const,:Blacklight) if defined?(Blacklight)
450
- end
451
441
 
452
442
  def setup_pretest_env
453
443
  ENV['RAILS_ENV']='test'
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::Base do
4
4
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::Base do
4
4
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::Base do
4
4
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::Base do
4
4
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
  require 'active_fedora'
3
3
  require 'active_fedora/base'
4
4
  require 'active_fedora/metadata_datastream'
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
1
+ require 'spec_helper'
2
2
 
3
3
  # Some tentative extensions to ActiveFedora::Base
4
4
 
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
1
+ require 'spec_helper'
2
2
  require "active_fedora"
3
3
 
4
4
  # Some tentative extensions to ActiveFedora::Base
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require 'active_fedora/base'
@@ -169,6 +169,11 @@ describe ActiveFedora::Base do
169
169
  stub_ingest(@this_pid)
170
170
  stub_add_ds(@this_pid, ['RELS-EXT', 'externalDisseminator', 'externalUrl'])
171
171
  end
172
+
173
+ after(:all) do
174
+ # clean up test class
175
+ Object.send(:remove_const, :MoreFooHistory)
176
+ end
172
177
  it "should raise an error without :disseminator or :url option" do
173
178
  class MoreFooHistory < ActiveFedora::Base
174
179
  has_metadata :type=>ActiveFedora::NokogiriDatastream, :name=>"externalDisseminator", :control_group => "E"
@@ -371,6 +376,16 @@ describe ActiveFedora::Base do
371
376
  end
372
377
  end
373
378
 
379
+ describe '.assert_content_model' do
380
+ it "should default to the name of the class" do
381
+ stub_ingest(@this_pid)
382
+ stub_add_ds(@this_pid, ['RELS-EXT'])
383
+ @test_object.assert_content_model
384
+ @test_object.relationships(:has_model).should == ["info:fedora/afmodel:ActiveFedora_Base"]
385
+
386
+ end
387
+ end
388
+
374
389
  describe '.save' do
375
390
 
376
391
 
@@ -384,20 +399,13 @@ describe ActiveFedora::Base do
384
399
  @test_object.persisted?.should be true
385
400
  end
386
401
 
387
-
388
- it "should raise an exception if object fails to save" do
389
- pending # Not using Fedora::Repository anymore
390
- server_response = mock("Server Error")
391
- Fedora::Repository.instance.expects(:save).with(@test_object.inner_object).raises(Fedora::ServerError, server_response)
392
- lambda {@test_object.save}.should raise_error(Fedora::ServerError)
393
- #lambda {@test_object.save}.should raise_error(Fedora::ServerError, "Error Saving object #{@test_object.pid}. Server Error: RubyFedora Error Msg")
394
- end
395
-
396
- it "should raise an exception if any of the datastreams fail to save" do
397
- pending # Not using Fedora::Repository anymore
398
- Fedora::Repository.instance.expects(:save).with(@test_object.inner_object).returns(true)
399
- Fedora::Repository.instance.expects(:save).with(kind_of(ActiveFedora::RelsExtDatastream)).raises(Fedora::ServerError, mock("Server Error"))
400
- lambda {@test_object.save}.should raise_error(Fedora::ServerError)
402
+ it "should call assert_content_model" do
403
+ stub_ingest(@this_pid)
404
+ stub_add_ds(@this_pid, ['RELS-EXT'])
405
+ @test_object.expects(:assert_content_model)
406
+ @test_object.save.should == true
407
+
408
+
401
409
  end
402
410
 
403
411
  it "should call .save on any datastreams that are dirty" do
@@ -492,6 +500,29 @@ describe ActiveFedora::Base do
492
500
  end
493
501
  end
494
502
 
503
+ describe ".add_file_datastream" do
504
+ before do
505
+ @mock_file = mock('file')
506
+ end
507
+ it "should pass prefix" do
508
+ #@test_object.expects(:create_datastream).with(ActiveFedora::Datastream, nil, attrs)
509
+ stub_add_ds(@test_object.pid, ['content1'])
510
+ @test_object.add_file_datastream(@mock_file, :prefix=>'content' )
511
+ @test_object.datastreams.keys.should include 'content1'
512
+ end
513
+ it "should pass dsid" do
514
+ #@test_object.expects(:create_datastream).with(ActiveFedora::Datastream, "MY_DSID", attrs)
515
+ stub_add_ds(@test_object.pid, ['MY_DSID'])
516
+ @test_object.add_file_datastream(@mock_file, :dsid=>'MY_DSID')
517
+ @test_object.datastreams.keys.should include 'MY_DSID'
518
+ end
519
+ it "without dsid or prefix" do
520
+ #@test_object.expects(:create_datastream).with(ActiveFedora::Datastream, nil, attrs)
521
+ stub_add_ds(@test_object.pid, ['DS1'])
522
+ @test_object.add_file_datastream(@mock_file, {} )
523
+ @test_object.datastreams.keys.should include 'DS1'
524
+ end
525
+ end
495
526
 
496
527
  describe ".to_xml" do
497
528
  it "should provide .to_xml" do
@@ -729,7 +760,7 @@ describe ActiveFedora::Base do
729
760
  sinmock = mock('solr instance')
730
761
  conmock = mock("solr conn")
731
762
  sinmock.expects(:conn).returns(conmock)
732
- conmock.expects(:query).with('pid: foobar', {:ding, :dang}).returns({:baz=>:bif})
763
+ conmock.expects(:query).with('pid: foobar', {:ding => :dang}).returns({:baz=>:bif})
733
764
  ActiveFedora::SolrService.expects(:instance).returns(sinmock)
734
765
  FooHistory.solr_search("pid: foobar", {:ding=>:dang}).should == {:baz=>:bif}
735
766
  end
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require 'mocha'
@@ -1,8 +1,7 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require "rexml/document"
5
- require 'ftools'
6
5
 
7
6
  describe ActiveFedora::Datastream do
8
7
 
@@ -1,8 +1,7 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require "nokogiri"
5
- require 'ftools'
6
5
 
7
6
  describe ActiveFedora::Datastream do
8
7
 
@@ -2,15 +2,15 @@ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::Associations::HasManyAssociation do
4
4
  it "should be able to replace the collection" do
5
- @owner = stub(:new_record? => false)
5
+ @owner = stub(:new_record? => false, :to_ary => nil)
6
6
  @reflection = stub(:klass => Mocha::Mock, :options=>{:property=>'predicate'})
7
7
  #ac = ActiveFedora::Associations::AssociationCollection.new(@owner, @reflection)
8
8
  ac = ActiveFedora::Associations::HasManyAssociation.new(@owner, @reflection)
9
- @target = [stub(:new_record? => false, :remove_relationship=>true), stub(:new_record? => false, :remove_relationship=>true), stub(:new_record? => false, :remove_relationship=>true)]
9
+ @target = [stub(:to_ary => nil, :new_record? => false, :remove_relationship=>true), stub(:to_ary => nil, :new_record? => false, :remove_relationship=>true), stub(:to_ary => nil, :new_record? => false, :remove_relationship=>true)]
10
10
  ac.target = @target
11
11
 
12
- @expected1 = stub(:new_record? => false, :add_relationship=>true, :save=>true)
13
- @expected2 = stub(:new_record? => false, :add_relationship=>true, :save=>true)
12
+ @expected1 = stub(:new_record? => false, :add_relationship=>true, :save=>true, :to_ary => nil)
13
+ @expected2 = stub(:new_record? => false, :add_relationship=>true, :save=>true, :to_ary => nil)
14
14
  ac.replace([@expected1, @expected2])
15
15
  ac.target.should == [@expected1, @expected2]
16
16
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require 'active_fedora/base'
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require 'active_fedora/metadata_datastream'
@@ -1,9 +1,8 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require 'active_fedora/model'
5
5
  require "rexml/document"
6
- require 'ftools'
7
6
  require 'mocha'
8
7
 
9
8
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
  require "active_fedora/samples"
3
3
  describe ActiveFedora::NokogiriDatastream do
4
4
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require 'active_fedora/model'
@@ -1,8 +1,9 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require 'xmlsimple'
5
5
  require 'nokogiri'
6
+ require 'equivalent-xml'
6
7
 
7
8
  describe ActiveFedora::QualifiedDublinCoreDatastream do
8
9
 
@@ -61,7 +62,7 @@ describe ActiveFedora::QualifiedDublinCoreDatastream do
61
62
  end
62
63
 
63
64
  it "should have unmodifiable constants" do
64
- proc {ActiveFedora::QualifiedDublinCoreDatastream::DCTERMS<<:foo}.should raise_error(TypeError, 'can\'t modify frozen array')
65
+ proc {ActiveFedora::QualifiedDublinCoreDatastream::DCTERMS<<:foo}.should raise_error((TypeError if RUBY_VERSION < "1.9.0") || RuntimeError, /can't modify frozen array/i)
65
66
 
66
67
  end
67
68
 
@@ -80,8 +81,7 @@ describe ActiveFedora::QualifiedDublinCoreDatastream do
80
81
  tmpl.expects(:content).returns('')
81
82
  tmpl.field :mycomplicated, :string, :xml_node=>'alt', :element_attrs=>{:foo=>'bar'}
82
83
  tmpl.mycomplicated_values='fubar'
83
- tmpl.to_dc_xml.should == '<dc xmlns:xsi=\'http://www.w3.org/2001/XMLSchema-instance\' xmlns:dcterms=\'http://purl.org/dc/terms/\'><dcterms:alt foo=\'bar\'>fubar</dcterms:alt></dc>'
84
-
84
+ Nokogiri::XML(tmpl.to_dc_xml).should be_equivalent_to('<dc xmlns:xsi=\'http://www.w3.org/2001/XMLSchema-instance\' xmlns:dcterms=\'http://purl.org/dc/terms/\'><dcterms:alt foo=\'bar\'>fubar</dcterms:alt></dc>')
85
85
  end
86
86
 
87
87
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
  require File.join( File.dirname(__FILE__), "../../lib/active_fedora/rdf_xml_writer" )
3
3
 
4
4
  describe ActiveFedora::RDFXMLWriter do
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require "rexml/document"
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'active_fedora'
4
4
  require 'xmlsimple'
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::RelsExtDatastream do
4
4
  describe "short_predicate" do
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
  require 'active_fedora/rubydora_connection'
3
3
 
4
4
  describe ActiveFedora::RubydoraConnection do
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
  require 'xmlsimple'
4
4
 
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
 
4
4
  #include ActiveFedora
@@ -1,4 +1,4 @@
1
- require File.join( File.dirname(__FILE__), "../spec_helper" )
1
+ require 'spec_helper'
2
2
 
3
3
 
4
4
  describe ActiveFedora::SolrService do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active-fedora
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 3
8
8
  - 1
9
- - 4
10
- version: 3.1.4
9
+ - 5
10
+ version: 3.1.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Matt Zumwalt
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-11-28 00:00:00 -06:00
19
+ date: 2011-12-14 00:00:00 -06:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -327,12 +327,12 @@ dependencies:
327
327
  requirements:
328
328
  - - ">="
329
329
  - !ruby/object:Gem::Version
330
- hash: 19
330
+ hash: 31
331
331
  segments:
332
332
  - 1
333
- - 1
333
+ - 2
334
334
  - 0
335
- version: 1.1.0
335
+ version: 1.2.0
336
336
  requirement: *id021
337
337
  - !ruby/object:Gem::Dependency
338
338
  name: rspec
@@ -341,14 +341,13 @@ dependencies:
341
341
  version_requirements: &id022 !ruby/object:Gem::Requirement
342
342
  none: false
343
343
  requirements:
344
- - - <
344
+ - - ~>
345
345
  - !ruby/object:Gem::Version
346
- hash: 15
346
+ hash: 3
347
347
  segments:
348
348
  - 2
349
349
  - 0
350
- - 0
351
- version: 2.0.0
350
+ version: "2.0"
352
351
  requirement: *id022
353
352
  - !ruby/object:Gem::Dependency
354
353
  name: mocha
@@ -366,20 +365,6 @@ dependencies:
366
365
  - 8
367
366
  version: 0.9.8
368
367
  requirement: *id023
369
- - !ruby/object:Gem::Dependency
370
- name: ruby-debug
371
- type: :development
372
- prerelease: false
373
- version_requirements: &id024 !ruby/object:Gem::Requirement
374
- none: false
375
- requirements:
376
- - - ">="
377
- - !ruby/object:Gem::Version
378
- hash: 3
379
- segments:
380
- - 0
381
- version: "0"
382
- requirement: *id024
383
368
  description: ActiveFedora provides for creating and managing objects in the Fedora Repository Architecture.
384
369
  email:
385
370
  - matt.zumwalt@yourmediashelf.com