active-fedora 4.0.0 → 4.1.0
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.
- data/Gemfile.lock +4 -4
- data/lib/active_fedora/associations.rb +1 -1
- data/lib/active_fedora/file_configurator.rb +35 -4
- data/lib/active_fedora/model.rb +40 -1
- data/lib/active_fedora/nokogiri_datastream.rb +3 -1
- data/lib/active_fedora/version.rb +1 -1
- data/spec/integration/associations_spec.rb +3 -0
- data/spec/unit/active_fedora_spec.rb +1 -10
- data/spec/unit/base_spec.rb +5 -1
- data/spec/unit/file_configurator_spec.rb +45 -3
- data/spec/unit/model_spec.rb +25 -0
- data/spec/unit/nokogiri_datastream_spec.rb +6 -0
- metadata +45 -151
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                active-fedora (4. | 
| 4 | 
            +
                active-fedora (4.1.0)
         | 
| 5 5 | 
             
                  activeresource (>= 3.0.0)
         | 
| 6 6 | 
             
                  activesupport (>= 3.0.0)
         | 
| 7 7 | 
             
                  equivalent-xml
         | 
| @@ -30,7 +30,7 @@ GEM | |
| 30 30 | 
             
                activesupport (3.2.2)
         | 
| 31 31 | 
             
                  i18n (~> 0.6)
         | 
| 32 32 | 
             
                  multi_json (~> 1.0)
         | 
| 33 | 
            -
                addressable (2.2. | 
| 33 | 
            +
                addressable (2.2.8)
         | 
| 34 34 | 
             
                akami (1.0.0)
         | 
| 35 35 | 
             
                  gyoku (>= 0.4.0)
         | 
| 36 36 | 
             
                builder (3.0.0)
         | 
| @@ -44,7 +44,7 @@ GEM | |
| 44 44 | 
             
                ffi (1.0.11)
         | 
| 45 45 | 
             
                gyoku (0.4.4)
         | 
| 46 46 | 
             
                  builder (>= 2.1.2)
         | 
| 47 | 
            -
                httpi (0.9. | 
| 47 | 
            +
                httpi (0.9.7)
         | 
| 48 48 | 
             
                  rack
         | 
| 49 49 | 
             
                i18n (0.6.0)
         | 
| 50 50 | 
             
                jettywrapper (1.2.1)
         | 
| @@ -75,7 +75,7 @@ GEM | |
| 75 75 | 
             
                  rdf (>= 0.3.4)
         | 
| 76 76 | 
             
                rest-client (1.6.7)
         | 
| 77 77 | 
             
                  mime-types (>= 1.16)
         | 
| 78 | 
            -
                rsolr (1.0. | 
| 78 | 
            +
                rsolr (1.0.8)
         | 
| 79 79 | 
             
                  builder (>= 2.1.2)
         | 
| 80 80 | 
             
                rspec (2.9.0)
         | 
| 81 81 | 
             
                  rspec-core (~> 2.9.0)
         | 
| @@ -209,7 +209,7 @@ module ActiveFedora | |
| 209 209 | 
             
                      end
         | 
| 210 210 |  | 
| 211 211 | 
             
                      redefine_method("#{reflection.name}_id=") do |new_value|
         | 
| 212 | 
            -
                        obj =  new_value. | 
| 212 | 
            +
                        obj =  new_value.blank? ? nil : reflection.klass.find(new_value)
         | 
| 213 213 | 
             
                        send("#{reflection.name}=", obj)
         | 
| 214 214 | 
             
                      end
         | 
| 215 215 | 
             
                      redefine_method("#{reflection.name}_id") do 
         | 
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            require 'erb'
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module ActiveFedora
         | 
| 2 4 | 
             
              class FileConfigurator
         | 
| 3 5 |  | 
| @@ -103,8 +105,25 @@ module ActiveFedora | |
| 103 105 |  | 
| 104 106 | 
             
                def load_fedora_config
         | 
| 105 107 | 
             
                  return @fedora_config unless @fedora_config.empty?
         | 
| 106 | 
            -
                   | 
| 107 | 
            -
                   | 
| 108 | 
            +
                  @fedora_config_path = get_config_path(:fedora)
         | 
| 109 | 
            +
                  logger.info("ActiveFedora: loading fedora config from #{File.expand_path(@fedora_config_path)}")
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                  begin
         | 
| 112 | 
            +
                    config_erb = ERB.new(IO.read(@fedora_config_path)).result(binding)
         | 
| 113 | 
            +
                  rescue Exception => e
         | 
| 114 | 
            +
                    raise("fedora.yml was found, but could not be parsed with ERB. \n#{$!.inspect}")
         | 
| 115 | 
            +
                  end
         | 
| 116 | 
            +
             | 
| 117 | 
            +
                  begin
         | 
| 118 | 
            +
                    fedora_yml = YAML::load(config_erb)
         | 
| 119 | 
            +
                  rescue StandardError => e
         | 
| 120 | 
            +
                    raise("fedora.yml was found, but could not be parsed.\n")
         | 
| 121 | 
            +
                  end
         | 
| 122 | 
            +
             | 
| 123 | 
            +
                  config = fedora_yml.symbolize_keys
         | 
| 124 | 
            +
             | 
| 125 | 
            +
                  cfg = config[ActiveFedora.environment.to_sym] || {}
         | 
| 126 | 
            +
                  @fedora_config = cfg.kind_of?(Array) ? cfg.map(&:symbolize_keys) : cfg.symbolize_keys
         | 
| 108 127 | 
             
                end
         | 
| 109 128 |  | 
| 110 129 | 
             
                def load_solr_config
         | 
| @@ -112,8 +131,20 @@ module ActiveFedora | |
| 112 131 | 
             
                  @solr_config_path = get_config_path(:solr)
         | 
| 113 132 |  | 
| 114 133 | 
             
                  logger.info("ActiveFedora: loading solr config from #{File.expand_path(@solr_config_path)}")
         | 
| 115 | 
            -
                   | 
| 116 | 
            -
             | 
| 134 | 
            +
                  begin
         | 
| 135 | 
            +
                    config_erb = ERB.new(IO.read(@solr_config_path)).result(binding)
         | 
| 136 | 
            +
                  rescue Exception => e
         | 
| 137 | 
            +
                    raise("solr.yml was found, but could not be parsed with ERB. \n#{$!.inspect}")
         | 
| 138 | 
            +
                  end
         | 
| 139 | 
            +
             | 
| 140 | 
            +
                  begin
         | 
| 141 | 
            +
                    solr_yml = YAML::load(config_erb)
         | 
| 142 | 
            +
                  rescue StandardError => e
         | 
| 143 | 
            +
                    raise("solr.yml was found, but could not be parsed.\n")
         | 
| 144 | 
            +
                  end
         | 
| 145 | 
            +
             | 
| 146 | 
            +
                  config = solr_yml.symbolize_keys
         | 
| 147 | 
            +
                  raise "The #{ActiveFedora.environment.to_sym} environment settings were not found in the solr.yml config.  If you already have a solr.yml file defined, make sure it defines settings for the #{ActiveFedora.environment.to_sym} environment" unless config[ActiveFedora.environment.to_sym]
         | 
| 117 148 | 
             
                  @solr_config = {:url=> get_solr_url(config[ActiveFedora.environment.to_sym].symbolize_keys)}
         | 
| 118 149 | 
             
                end
         | 
| 119 150 |  | 
    
        data/lib/active_fedora/model.rb
    CHANGED
    
    | @@ -97,7 +97,7 @@ module ActiveFedora | |
| 97 97 | 
             
                  # Returns an Array of objects of the Class that +find+ is being 
         | 
| 98 98 | 
             
                  # called on
         | 
| 99 99 | 
             
                  #
         | 
| 100 | 
            -
                  # @param[String,Symbol] either a pid or :all | 
| 100 | 
            +
                  # @param[String,Symbol, Hash] either a pid or :all or a hash of conditions
         | 
| 101 101 | 
             
                  # @param [Hash] opts the options to create a message with.
         | 
| 102 102 | 
             
                  # @option opts [Integer] :rows when :all is passed, the maximum number of rows to load from solr
         | 
| 103 103 | 
             
                  # @option opts [Boolean] :cast when true, examine the model and cast it to the first known cModel
         | 
| @@ -111,11 +111,18 @@ module ActiveFedora | |
| 111 111 | 
             
                         pid = hit[SOLR_DOCUMENT_ID]
         | 
| 112 112 | 
             
                         find_one(pid, opts[:cast])
         | 
| 113 113 | 
             
                      end
         | 
| 114 | 
            +
                    elsif args.class == Hash 
         | 
| 115 | 
            +
                      hits = find_with_conditions(args, opts)
         | 
| 116 | 
            +
                      return hits.map do |hit|
         | 
| 117 | 
            +
                         pid = hit[SOLR_DOCUMENT_ID]
         | 
| 118 | 
            +
                         find_one(pid, opts[:cast])
         | 
| 119 | 
            +
                      end
         | 
| 114 120 | 
             
                    elsif args.class == String
         | 
| 115 121 | 
             
                      return find_one(args, opts[:cast])
         | 
| 116 122 | 
             
                    end
         | 
| 117 123 | 
             
                  end
         | 
| 118 124 |  | 
| 125 | 
            +
             | 
| 119 126 | 
             
                  # Returns true if the pid exists in the repository 
         | 
| 120 127 | 
             
                  # @param[String] pid 
         | 
| 121 128 | 
             
                  # @return[boolean] 
         | 
| @@ -250,6 +257,38 @@ module ActiveFedora | |
| 250 257 | 
             
                    logger.debug "Querying solr for #{self.name} objects with query: '#{query}'"
         | 
| 251 258 | 
             
                    SolrService.query(query, query_opts) 
         | 
| 252 259 | 
             
                  end
         | 
| 260 | 
            +
             | 
| 261 | 
            +
                  # @param[Hash] conditions 
         | 
| 262 | 
            +
                  def find_with_conditions(conditions, opts={})
         | 
| 263 | 
            +
                    escaped_class_uri = SolrService.escape_uri_for_query(self.to_class_uri)
         | 
| 264 | 
            +
                    clauses = ["#{ActiveFedora::SolrService.solr_name(:has_model, :symbol)}:#{escaped_class_uri}"]
         | 
| 265 | 
            +
                    conditions.each_pair do |key,value|
         | 
| 266 | 
            +
                      unless value.nil?
         | 
| 267 | 
            +
                        if value.is_a? Array
         | 
| 268 | 
            +
                          value.each do |val|
         | 
| 269 | 
            +
                            clauses << "#{key}:#{quote_for_solr(val)}"  
         | 
| 270 | 
            +
                          end
         | 
| 271 | 
            +
                        else
         | 
| 272 | 
            +
                          key = SOLR_DOCUMENT_ID if (key === :id || key === :pid)
         | 
| 273 | 
            +
                          escaped_value = quote_for_solr(value)
         | 
| 274 | 
            +
                          clauses << (key.to_s.eql?(SOLR_DOCUMENT_ID) ? "#{key}:#{escaped_value}" : "#{key}:#{escaped_value}")
         | 
| 275 | 
            +
                        end
         | 
| 276 | 
            +
                      end
         | 
| 277 | 
            +
                    end
         | 
| 278 | 
            +
             | 
| 279 | 
            +
                    query = clauses.join(" AND ")
         | 
| 280 | 
            +
             | 
| 281 | 
            +
                    #set default sort to created date ascending
         | 
| 282 | 
            +
                    unless opts.include?(:sort)
         | 
| 283 | 
            +
                      opts[:sort]=[ActiveFedora::SolrService.solr_name(:system_create,:date)+' asc'] 
         | 
| 284 | 
            +
                    end
         | 
| 285 | 
            +
                    SolrService.query(query, opts) 
         | 
| 286 | 
            +
                  end
         | 
| 287 | 
            +
             | 
| 288 | 
            +
                  def quote_for_solr(value)
         | 
| 289 | 
            +
                    '"' + value.gsub(/(:)/, '\\:').gsub(/"/, '\\"') + '"'
         | 
| 290 | 
            +
                  end
         | 
| 291 | 
            +
             | 
| 253 292 |  | 
| 254 293 | 
             
                  def class_fields
         | 
| 255 294 | 
             
                    #create dummy object that is empty by passing in fake pid
         | 
| @@ -57,8 +57,10 @@ module ActiveFedora | |
| 57 57 | 
             
                  self.xml_loaded=true
         | 
| 58 58 | 
             
                  self.dirty = true
         | 
| 59 59 | 
             
                  case new_xml 
         | 
| 60 | 
            -
                  when Nokogiri::XML::Document | 
| 60 | 
            +
                  when Nokogiri::XML::Document
         | 
| 61 61 | 
             
                    @ng_xml = new_xml
         | 
| 62 | 
            +
                  when  Nokogiri::XML::Node 
         | 
| 63 | 
            +
                    @ng_xml = Nokogiri::XML(new_xml.to_s) ## Cast a fragment to a document
         | 
| 62 64 | 
             
                  when String 
         | 
| 63 65 | 
             
                    @ng_xml = Nokogiri::XML::Document.parse(new_xml)
         | 
| 64 66 | 
             
                  else
         | 
| @@ -111,6 +111,9 @@ describe ActiveFedora::Base do | |
| 111 111 | 
             
                    @book = Book.new
         | 
| 112 112 | 
             
                    @book.save
         | 
| 113 113 | 
             
                  end
         | 
| 114 | 
            +
                  it "shouldn't do anything if you set a nil id" do
         | 
| 115 | 
            +
                    @book.library_id = nil
         | 
| 116 | 
            +
                  end
         | 
| 114 117 | 
             
                  it "should be settable from the book side" do
         | 
| 115 118 | 
             
                    @book.library_id = @library.pid
         | 
| 116 119 | 
             
                    @book.library.should == @library
         | 
| @@ -57,11 +57,7 @@ describe ActiveFedora do | |
| 57 57 | 
             
                end
         | 
| 58 58 |  | 
| 59 59 | 
             
                describe "outside of rails" do
         | 
| 60 | 
            -
             | 
| 61 | 
            -
                    ActiveFedora.init()
         | 
| 62 | 
            -
                    ActiveFedora.config.credentials.should == {:url=> "http://127.0.0.1:8983/fedora-test", :user=>'fedoraAdmin', :password=>'fedoraAdmin'}
         | 
| 63 | 
            -
                  end
         | 
| 64 | 
            -
                  it "should load the passed config if explicit config passed in as a string" do
         | 
| 60 | 
            +
                   it "should load the passed config if explicit config passed in as a string" do
         | 
| 65 61 | 
             
                    ActiveFedora.init(:fedora_config_path=>'./spec/fixtures/rails_root/config/fedora.yml', :environment => 'test')
         | 
| 66 62 | 
             
                    ActiveFedora.config.credentials.should == {:url=> "http://testhost.com:8983/fedora", :user=>'fedoraAdmin', :password=>'fedoraAdmin'}
         | 
| 67 63 | 
             
                  end
         | 
| @@ -99,11 +95,6 @@ describe ActiveFedora do | |
| 99 95 | 
             
                        ActiveFedora.init()
         | 
| 100 96 | 
             
                        ActiveFedora.config.credentials[:url].should == "http://testhost.com:8983/fedora"
         | 
| 101 97 | 
             
                      end
         | 
| 102 | 
            -
                      it "should load the default file if no config is found at Rails.root" do
         | 
| 103 | 
            -
                        stub_rails(:root=>File.join(File.dirname(__FILE__),"../fixtures/bad/path/to/rails_root"))
         | 
| 104 | 
            -
                        ActiveFedora.init()
         | 
| 105 | 
            -
                        ActiveFedora.config.credentials[:url].should == "http://127.0.0.1:8983/fedora-test"
         | 
| 106 | 
            -
                      end
         | 
| 107 98 | 
             
                    end
         | 
| 108 99 | 
             
                  end
         | 
| 109 100 | 
             
                end
         | 
    
        data/spec/unit/base_spec.rb
    CHANGED
    
    | @@ -13,9 +13,13 @@ describe ActiveFedora::Base do | |
| 13 13 | 
             
                  end
         | 
| 14 14 | 
             
                  context "When the server is not sharded" do
         | 
| 15 15 | 
             
                    subject {ActiveFedora::Base.connection_for_pid('foo:bar')}
         | 
| 16 | 
            +
                    before(:each) do
         | 
| 17 | 
            +
                      ActiveFedora.config.expects(:sharded?).returns(false)
         | 
| 18 | 
            +
                      ActiveFedora.config.expects(:credentials).returns(:url=>'myfedora')
         | 
| 19 | 
            +
                    end
         | 
| 16 20 | 
             
                    it { should be_kind_of Rubydora::Repository}
         | 
| 17 21 | 
             
                    it "should be the standard connection" do
         | 
| 18 | 
            -
                      subject.client.url.should == ' | 
| 22 | 
            +
                      subject.client.url.should == 'myfedora'
         | 
| 19 23 | 
             
                    end
         | 
| 20 24 | 
             
                  end
         | 
| 21 25 | 
             
                  context "When the repository is sharded" do
         | 
| @@ -32,7 +32,8 @@ describe ActiveFedora::FileConfigurator do | |
| 32 32 | 
             
                  subject.reset!
         | 
| 33 33 | 
             
                end
         | 
| 34 34 | 
             
                it "should trigger configuration to load" do
         | 
| 35 | 
            -
                  subject. | 
| 35 | 
            +
                  subject.expects(:load_fedora_config).at_least_once
         | 
| 36 | 
            +
                  subject.fedora_config
         | 
| 36 37 | 
             
                end 
         | 
| 37 38 | 
             
              end
         | 
| 38 39 | 
             
              describe "#solr_config" do
         | 
| @@ -40,7 +41,8 @@ describe ActiveFedora::FileConfigurator do | |
| 40 41 | 
             
                  subject.reset!
         | 
| 41 42 | 
             
                end
         | 
| 42 43 | 
             
                it "should trigger configuration to load" do
         | 
| 43 | 
            -
                  subject. | 
| 44 | 
            +
                  subject.expects(:load_solr_config).at_least_once
         | 
| 45 | 
            +
                  subject.solr_config
         | 
| 44 46 | 
             
                end 
         | 
| 45 47 | 
             
              end
         | 
| 46 48 |  | 
| @@ -138,14 +140,54 @@ describe ActiveFedora::FileConfigurator do | |
| 138 140 |  | 
| 139 141 | 
             
                end
         | 
| 140 142 |  | 
| 143 | 
            +
                describe "load_fedora_config" do
         | 
| 144 | 
            +
                  before(:each) do
         | 
| 145 | 
            +
                    subject.reset!
         | 
| 146 | 
            +
                  end
         | 
| 147 | 
            +
                  it "should load the file specified in fedora_config_path" do
         | 
| 148 | 
            +
                    subject.expects(:get_config_path).with(:fedora).returns("/path/to/fedora.yml")
         | 
| 149 | 
            +
                    subject.expects(:load_solr_config)
         | 
| 150 | 
            +
                    IO.expects(:read).with("/path/to/fedora.yml").returns("development:\n url: http://devfedora:8983\ntest:\n  url: http://myfedora:8080")
         | 
| 151 | 
            +
                    subject.load_fedora_config.should == {:url=>"http://myfedora:8080"}
         | 
| 152 | 
            +
                    subject.fedora_config.should == {:url=>"http://myfedora:8080"}
         | 
| 153 | 
            +
                  end
         | 
| 154 | 
            +
             | 
| 155 | 
            +
                  it "should allow sharding" do
         | 
| 156 | 
            +
                    subject.expects(:get_config_path).with(:fedora).returns("/path/to/fedora.yml")
         | 
| 157 | 
            +
                    subject.expects(:load_solr_config)
         | 
| 158 | 
            +
                    IO.expects(:read).with("/path/to/fedora.yml").returns("development:\n  url: http://devfedora:8983\ntest:\n- url: http://myfedora:8080\n- url: http://myfedora:8081")
         | 
| 159 | 
            +
                    subject.load_fedora_config.should == [{:url=>"http://myfedora:8080"}, {:url=>"http://myfedora:8081"}]
         | 
| 160 | 
            +
                    subject.fedora_config.should == [{:url=>"http://myfedora:8080"}, {:url=>"http://myfedora:8081"}]
         | 
| 161 | 
            +
                  end
         | 
| 162 | 
            +
             | 
| 163 | 
            +
                  it "should parse the file using ERb" do
         | 
| 164 | 
            +
                    subject.expects(:get_config_path).with(:fedora).returns("/path/to/fedora.yml")
         | 
| 165 | 
            +
                    subject.expects(:load_solr_config)
         | 
| 166 | 
            +
                    IO.expects(:read).with("/path/to/fedora.yml").returns("development:\n  url: http://devfedora:<%= 8983 %>\ntest:\n  url: http://myfedora:<%= 8081 %>")
         | 
| 167 | 
            +
                    subject.load_fedora_config.should == {:url=>"http://myfedora:8081"}
         | 
| 168 | 
            +
                    subject.fedora_config.should == {:url=>"http://myfedora:8081"}
         | 
| 169 | 
            +
                  end
         | 
| 170 | 
            +
                end
         | 
| 171 | 
            +
             | 
| 141 172 | 
             
                describe "load_solr_config" do
         | 
| 173 | 
            +
                  before(:each) do
         | 
| 174 | 
            +
                    subject.reset!
         | 
| 175 | 
            +
                  end
         | 
| 142 176 | 
             
                  it "should load the file specified in solr_config_path" do
         | 
| 143 177 | 
             
                    subject.expects(:get_config_path).with(:solr).returns("/path/to/solr.yml")
         | 
| 144 178 | 
             
                    subject.expects(:load_fedora_config)
         | 
| 145 | 
            -
                     | 
| 179 | 
            +
                    IO.expects(:read).with("/path/to/solr.yml").returns("development:\n  default:\n    url: http://devsolr:8983\ntest:\n  default:\n    url: http://mysolr:8080")
         | 
| 146 180 | 
             
                    subject.load_solr_config.should == {:url=>"http://mysolr:8080"}
         | 
| 147 181 | 
             
                    subject.solr_config.should == {:url=>"http://mysolr:8080"}
         | 
| 148 182 | 
             
                  end
         | 
| 183 | 
            +
             | 
| 184 | 
            +
                  it "should parse the file using ERb" do
         | 
| 185 | 
            +
                    subject.expects(:get_config_path).with(:solr).returns("/path/to/solr.yml")
         | 
| 186 | 
            +
                    subject.expects(:load_fedora_config)
         | 
| 187 | 
            +
                    IO.expects(:read).with("/path/to/solr.yml").returns("development:\n  default:\n    url: http://devsolr:<%= 8983 %>\ntest:\n  default:\n    url: http://mysolr:<%= 8081 %>")
         | 
| 188 | 
            +
                    subject.load_solr_config.should == {:url=>"http://mysolr:8081"}
         | 
| 189 | 
            +
                    subject.solr_config.should == {:url=>"http://mysolr:8081"}
         | 
| 190 | 
            +
                  end
         | 
| 149 191 | 
             
                end
         | 
| 150 192 |  | 
| 151 193 | 
             
                describe "load_configs" do
         | 
    
        data/spec/unit/model_spec.rb
    CHANGED
    
    | @@ -93,6 +93,16 @@ describe ActiveFedora::Model do | |
| 93 93 | 
             
                    SpecModel::Basic.find("_PID_", :cast=>true)
         | 
| 94 94 | 
             
                  end
         | 
| 95 95 | 
             
                end
         | 
| 96 | 
            +
             | 
| 97 | 
            +
                describe "with conditions hash" do
         | 
| 98 | 
            +
                  it "should filter by the provided fields" do
         | 
| 99 | 
            +
                    SpecModel::Basic.expects(:find_one).with("changeme:30", nil).returns("Fake Object1")
         | 
| 100 | 
            +
                    SpecModel::Basic.expects(:find_one).with("changeme:22", nil).returns("Fake Object2")
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                    ActiveFedora::SolrService.expects(:query).with('has_model_s:info\\:fedora/afmodel\\:SpecModel_Basic AND foo:"bar" AND baz:"quix" AND baz:"quack"', {:sort => ['system_create_dt asc'], :rows=>1002}).returns([{"id" => "changeme:30"}, {"id" => "changeme:22"}])
         | 
| 103 | 
            +
                    SpecModel::Basic.find({:foo=>'bar', :baz=>['quix','quack']}, {:rows=>1002}).should == ["Fake Object1", "Fake Object2"]
         | 
| 104 | 
            +
                  end
         | 
| 105 | 
            +
                end
         | 
| 96 106 | 
             
              end
         | 
| 97 107 |  | 
| 98 108 | 
             
              describe '#count' do
         | 
| @@ -123,6 +133,21 @@ describe ActiveFedora::Model do | |
| 123 133 | 
             
                  SpecModel::Basic.find_by_solr("changeme:30").should equal(mock_response)
         | 
| 124 134 | 
             
                end
         | 
| 125 135 | 
             
              end
         | 
| 136 | 
            +
             | 
| 137 | 
            +
              describe '#find_with_conditions' do
         | 
| 138 | 
            +
                it "should make a query to solr and return the results" do
         | 
| 139 | 
            +
                  mock_result = stub('Result')
         | 
| 140 | 
            +
                  ActiveFedora::SolrService.expects(:query).with('has_model_s:info\\:fedora/afmodel\\:SpecModel_Basic AND foo:"bar" AND baz:"quix" AND baz:"quack"', {:sort => ['system_create_dt asc']}).returns(mock_result)
         | 
| 141 | 
            +
                  SpecModel::Basic.find_with_conditions(:foo=>'bar', :baz=>['quix','quack']).should == mock_result
         | 
| 142 | 
            +
                  
         | 
| 143 | 
            +
                end
         | 
| 144 | 
            +
                it "should escape quotes" do
         | 
| 145 | 
            +
                  mock_result = stub('Result')
         | 
| 146 | 
            +
                  ActiveFedora::SolrService.expects(:query).with('has_model_s:info\\:fedora/afmodel\\:SpecModel_Basic AND foo:"9\\" Nails" AND baz:"7\\" version" AND baz:"quack"', {:sort => ['system_create_dt asc']}).returns(mock_result)
         | 
| 147 | 
            +
                  SpecModel::Basic.find_with_conditions(:foo=>'9" Nails', :baz=>['7" version','quack']).should == mock_result
         | 
| 148 | 
            +
                  
         | 
| 149 | 
            +
                end
         | 
| 150 | 
            +
              end
         | 
| 126 151 |  | 
| 127 152 | 
             
              describe "load_instance" do
         | 
| 128 153 | 
             
                it "should use SpecModel::Basic.allocate.init_with to instantiate an object" do
         | 
| @@ -206,6 +206,12 @@ describe ActiveFedora::NokogiriDatastream do | |
| 206 206 | 
             
                  @test_ds2.ng_xml.class.should == Nokogiri::XML::Document
         | 
| 207 207 | 
             
                  @test_ds2.ng_xml.to_xml.should be_equivalent_to(@sample_raw_xml)
         | 
| 208 208 | 
             
                end
         | 
| 209 | 
            +
             | 
| 210 | 
            +
                it "Should always set a document when an Element is passed" do
         | 
| 211 | 
            +
                  @test_ds2.ng_xml = Nokogiri::XML(@sample_raw_xml).xpath('//xmlelement').first
         | 
| 212 | 
            +
                  @test_ds2.ng_xml.should be_kind_of Nokogiri::XML::Document
         | 
| 213 | 
            +
                  @test_ds2.ng_xml.to_xml.should be_equivalent_to("<xmlelement/>")
         | 
| 214 | 
            +
                end
         | 
| 209 215 | 
             
                it "should mark the datastream as dirty" do
         | 
| 210 216 | 
             
                  @test_ds2.dirty.should be_false 
         | 
| 211 217 | 
             
                  @test_ds2.ng_xml = @sample_raw_xml
         | 
    
        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: 4. | 
| 4 | 
            +
              version: 4.1.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -11,11 +11,11 @@ authors: | |
| 11 11 | 
             
            autorequire: 
         | 
| 12 12 | 
             
            bindir: bin
         | 
| 13 13 | 
             
            cert_chain: []
         | 
| 14 | 
            -
            date: 2012- | 
| 14 | 
            +
            date: 2012-05-09 00:00:00.000000000 Z
         | 
| 15 15 | 
             
            dependencies:
         | 
| 16 16 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 17 17 | 
             
              name: rsolr
         | 
| 18 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 18 | 
            +
              requirement: &70192625579460 !ruby/object:Gem::Requirement
         | 
| 19 19 | 
             
                none: false
         | 
| 20 20 | 
             
                requirements:
         | 
| 21 21 | 
             
                - - ! '>='
         | 
| @@ -23,15 +23,10 @@ dependencies: | |
| 23 23 | 
             
                    version: '0'
         | 
| 24 24 | 
             
              type: :runtime
         | 
| 25 25 | 
             
              prerelease: false
         | 
| 26 | 
            -
              version_requirements:  | 
| 27 | 
            -
                none: false
         | 
| 28 | 
            -
                requirements:
         | 
| 29 | 
            -
                - - ! '>='
         | 
| 30 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 31 | 
            -
                    version: '0'
         | 
| 26 | 
            +
              version_requirements: *70192625579460
         | 
| 32 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 33 28 | 
             
              name: xml-simple
         | 
| 34 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 29 | 
            +
              requirement: &70192625578620 !ruby/object:Gem::Requirement
         | 
| 35 30 | 
             
                none: false
         | 
| 36 31 | 
             
                requirements:
         | 
| 37 32 | 
             
                - - ! '>='
         | 
| @@ -39,15 +34,10 @@ dependencies: | |
| 39 34 | 
             
                    version: 1.0.12
         | 
| 40 35 | 
             
              type: :runtime
         | 
| 41 36 | 
             
              prerelease: false
         | 
| 42 | 
            -
              version_requirements:  | 
| 43 | 
            -
                none: false
         | 
| 44 | 
            -
                requirements:
         | 
| 45 | 
            -
                - - ! '>='
         | 
| 46 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: 1.0.12
         | 
| 37 | 
            +
              version_requirements: *70192625578620
         | 
| 48 38 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 49 39 | 
             
              name: mime-types
         | 
| 50 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 40 | 
            +
              requirement: &70192625577920 !ruby/object:Gem::Requirement
         | 
| 51 41 | 
             
                none: false
         | 
| 52 42 | 
             
                requirements:
         | 
| 53 43 | 
             
                - - ! '>='
         | 
| @@ -55,31 +45,21 @@ dependencies: | |
| 55 45 | 
             
                    version: '1.16'
         | 
| 56 46 | 
             
              type: :runtime
         | 
| 57 47 | 
             
              prerelease: false
         | 
| 58 | 
            -
              version_requirements:  | 
| 59 | 
            -
                none: false
         | 
| 60 | 
            -
                requirements:
         | 
| 61 | 
            -
                - - ! '>='
         | 
| 62 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 63 | 
            -
                    version: '1.16'
         | 
| 48 | 
            +
              version_requirements: *70192625577920
         | 
| 64 49 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 65 50 | 
             
              name: multipart-post
         | 
| 66 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
              requirement: &70192625577060 !ruby/object:Gem::Requirement
         | 
| 67 52 | 
             
                none: false
         | 
| 68 53 | 
             
                requirements:
         | 
| 69 | 
            -
                - -  | 
| 54 | 
            +
                - - =
         | 
| 70 55 | 
             
                  - !ruby/object:Gem::Version
         | 
| 71 56 | 
             
                    version: 1.1.2
         | 
| 72 57 | 
             
              type: :runtime
         | 
| 73 58 | 
             
              prerelease: false
         | 
| 74 | 
            -
              version_requirements:  | 
| 75 | 
            -
                none: false
         | 
| 76 | 
            -
                requirements:
         | 
| 77 | 
            -
                - - '='
         | 
| 78 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 79 | 
            -
                    version: 1.1.2
         | 
| 59 | 
            +
              version_requirements: *70192625577060
         | 
| 80 60 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 81 61 | 
             
              name: nokogiri
         | 
| 82 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 62 | 
            +
              requirement: &70192625534600 !ruby/object:Gem::Requirement
         | 
| 83 63 | 
             
                none: false
         | 
| 84 64 | 
             
                requirements:
         | 
| 85 65 | 
             
                - - ! '>='
         | 
| @@ -87,15 +67,10 @@ dependencies: | |
| 87 67 | 
             
                    version: '0'
         | 
| 88 68 | 
             
              type: :runtime
         | 
| 89 69 | 
             
              prerelease: false
         | 
| 90 | 
            -
              version_requirements:  | 
| 91 | 
            -
                none: false
         | 
| 92 | 
            -
                requirements:
         | 
| 93 | 
            -
                - - ! '>='
         | 
| 94 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 95 | 
            -
                    version: '0'
         | 
| 70 | 
            +
              version_requirements: *70192625534600
         | 
| 96 71 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 97 72 | 
             
              name: om
         | 
| 98 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 73 | 
            +
              requirement: &70192625533500 !ruby/object:Gem::Requirement
         | 
| 99 74 | 
             
                none: false
         | 
| 100 75 | 
             
                requirements:
         | 
| 101 76 | 
             
                - - ~>
         | 
| @@ -103,15 +78,10 @@ dependencies: | |
| 103 78 | 
             
                    version: 1.6.0
         | 
| 104 79 | 
             
              type: :runtime
         | 
| 105 80 | 
             
              prerelease: false
         | 
| 106 | 
            -
              version_requirements:  | 
| 107 | 
            -
                none: false
         | 
| 108 | 
            -
                requirements:
         | 
| 109 | 
            -
                - - ~>
         | 
| 110 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 111 | 
            -
                    version: 1.6.0
         | 
| 81 | 
            +
              version_requirements: *70192625533500
         | 
| 112 82 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 113 83 | 
             
              name: solrizer
         | 
| 114 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 84 | 
            +
              requirement: &70192625531500 !ruby/object:Gem::Requirement
         | 
| 115 85 | 
             
                none: false
         | 
| 116 86 | 
             
                requirements:
         | 
| 117 87 | 
             
                - - ~>
         | 
| @@ -119,15 +89,10 @@ dependencies: | |
| 119 89 | 
             
                    version: 1.2.0
         | 
| 120 90 | 
             
              type: :runtime
         | 
| 121 91 | 
             
              prerelease: false
         | 
| 122 | 
            -
              version_requirements:  | 
| 123 | 
            -
                none: false
         | 
| 124 | 
            -
                requirements:
         | 
| 125 | 
            -
                - - ~>
         | 
| 126 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 127 | 
            -
                    version: 1.2.0
         | 
| 92 | 
            +
              version_requirements: *70192625531500
         | 
| 128 93 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 129 94 | 
             
              name: activeresource
         | 
| 130 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 95 | 
            +
              requirement: &70192625530520 !ruby/object:Gem::Requirement
         | 
| 131 96 | 
             
                none: false
         | 
| 132 97 | 
             
                requirements:
         | 
| 133 98 | 
             
                - - ! '>='
         | 
| @@ -135,15 +100,10 @@ dependencies: | |
| 135 100 | 
             
                    version: 3.0.0
         | 
| 136 101 | 
             
              type: :runtime
         | 
| 137 102 | 
             
              prerelease: false
         | 
| 138 | 
            -
              version_requirements:  | 
| 139 | 
            -
                none: false
         | 
| 140 | 
            -
                requirements:
         | 
| 141 | 
            -
                - - ! '>='
         | 
| 142 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 143 | 
            -
                    version: 3.0.0
         | 
| 103 | 
            +
              version_requirements: *70192625530520
         | 
| 144 104 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 145 105 | 
             
              name: activesupport
         | 
| 146 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 106 | 
            +
              requirement: &70192625529820 !ruby/object:Gem::Requirement
         | 
| 147 107 | 
             
                none: false
         | 
| 148 108 | 
             
                requirements:
         | 
| 149 109 | 
             
                - - ! '>='
         | 
| @@ -151,15 +111,10 @@ dependencies: | |
| 151 111 | 
             
                    version: 3.0.0
         | 
| 152 112 | 
             
              type: :runtime
         | 
| 153 113 | 
             
              prerelease: false
         | 
| 154 | 
            -
              version_requirements:  | 
| 155 | 
            -
                none: false
         | 
| 156 | 
            -
                requirements:
         | 
| 157 | 
            -
                - - ! '>='
         | 
| 158 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 159 | 
            -
                    version: 3.0.0
         | 
| 114 | 
            +
              version_requirements: *70192625529820
         | 
| 160 115 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 161 116 | 
             
              name: mediashelf-loggable
         | 
| 162 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 117 | 
            +
              requirement: &70192625529300 !ruby/object:Gem::Requirement
         | 
| 163 118 | 
             
                none: false
         | 
| 164 119 | 
             
                requirements:
         | 
| 165 120 | 
             
                - - ! '>='
         | 
| @@ -167,15 +122,10 @@ dependencies: | |
| 167 122 | 
             
                    version: '0'
         | 
| 168 123 | 
             
              type: :runtime
         | 
| 169 124 | 
             
              prerelease: false
         | 
| 170 | 
            -
              version_requirements:  | 
| 171 | 
            -
                none: false
         | 
| 172 | 
            -
                requirements:
         | 
| 173 | 
            -
                - - ! '>='
         | 
| 174 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 175 | 
            -
                    version: '0'
         | 
| 125 | 
            +
              version_requirements: *70192625529300
         | 
| 176 126 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 177 127 | 
             
              name: equivalent-xml
         | 
| 178 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 128 | 
            +
              requirement: &70192625528640 !ruby/object:Gem::Requirement
         | 
| 179 129 | 
             
                none: false
         | 
| 180 130 | 
             
                requirements:
         | 
| 181 131 | 
             
                - - ! '>='
         | 
| @@ -183,15 +133,10 @@ dependencies: | |
| 183 133 | 
             
                    version: '0'
         | 
| 184 134 | 
             
              type: :runtime
         | 
| 185 135 | 
             
              prerelease: false
         | 
| 186 | 
            -
              version_requirements:  | 
| 187 | 
            -
                none: false
         | 
| 188 | 
            -
                requirements:
         | 
| 189 | 
            -
                - - ! '>='
         | 
| 190 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 191 | 
            -
                    version: '0'
         | 
| 136 | 
            +
              version_requirements: *70192625528640
         | 
| 192 137 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 193 138 | 
             
              name: rubydora
         | 
| 194 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 139 | 
            +
              requirement: &70192625528120 !ruby/object:Gem::Requirement
         | 
| 195 140 | 
             
                none: false
         | 
| 196 141 | 
             
                requirements:
         | 
| 197 142 | 
             
                - - ~>
         | 
| @@ -199,15 +144,10 @@ dependencies: | |
| 199 144 | 
             
                    version: 0.5.8
         | 
| 200 145 | 
             
              type: :runtime
         | 
| 201 146 | 
             
              prerelease: false
         | 
| 202 | 
            -
              version_requirements:  | 
| 203 | 
            -
                none: false
         | 
| 204 | 
            -
                requirements:
         | 
| 205 | 
            -
                - - ~>
         | 
| 206 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 207 | 
            -
                    version: 0.5.8
         | 
| 147 | 
            +
              version_requirements: *70192625528120
         | 
| 208 148 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 209 149 | 
             
              name: rdf
         | 
| 210 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 150 | 
            +
              requirement: &70192625527680 !ruby/object:Gem::Requirement
         | 
| 211 151 | 
             
                none: false
         | 
| 212 152 | 
             
                requirements:
         | 
| 213 153 | 
             
                - - ! '>='
         | 
| @@ -215,31 +155,21 @@ dependencies: | |
| 215 155 | 
             
                    version: '0'
         | 
| 216 156 | 
             
              type: :runtime
         | 
| 217 157 | 
             
              prerelease: false
         | 
| 218 | 
            -
              version_requirements:  | 
| 219 | 
            -
                none: false
         | 
| 220 | 
            -
                requirements:
         | 
| 221 | 
            -
                - - ! '>='
         | 
| 222 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 223 | 
            -
                    version: '0'
         | 
| 158 | 
            +
              version_requirements: *70192625527680
         | 
| 224 159 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 225 160 | 
             
              name: rdf-rdfxml
         | 
| 226 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 161 | 
            +
              requirement: &70192625526960 !ruby/object:Gem::Requirement
         | 
| 227 162 | 
             
                none: false
         | 
| 228 163 | 
             
                requirements:
         | 
| 229 | 
            -
                - -  | 
| 164 | 
            +
                - - =
         | 
| 230 165 | 
             
                  - !ruby/object:Gem::Version
         | 
| 231 166 | 
             
                    version: 0.3.5
         | 
| 232 167 | 
             
              type: :runtime
         | 
| 233 168 | 
             
              prerelease: false
         | 
| 234 | 
            -
              version_requirements:  | 
| 235 | 
            -
                none: false
         | 
| 236 | 
            -
                requirements:
         | 
| 237 | 
            -
                - - '='
         | 
| 238 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 239 | 
            -
                    version: 0.3.5
         | 
| 169 | 
            +
              version_requirements: *70192625526960
         | 
| 240 170 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 241 171 | 
             
              name: yard
         | 
| 242 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 172 | 
            +
              requirement: &70192625526340 !ruby/object:Gem::Requirement
         | 
| 243 173 | 
             
                none: false
         | 
| 244 174 | 
             
                requirements:
         | 
| 245 175 | 
             
                - - ! '>='
         | 
| @@ -247,15 +177,10 @@ dependencies: | |
| 247 177 | 
             
                    version: '0'
         | 
| 248 178 | 
             
              type: :development
         | 
| 249 179 | 
             
              prerelease: false
         | 
| 250 | 
            -
              version_requirements:  | 
| 251 | 
            -
                none: false
         | 
| 252 | 
            -
                requirements:
         | 
| 253 | 
            -
                - - ! '>='
         | 
| 254 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 255 | 
            -
                    version: '0'
         | 
| 180 | 
            +
              version_requirements: *70192625526340
         | 
| 256 181 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 257 182 | 
             
              name: RedCloth
         | 
| 258 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 183 | 
            +
              requirement: &70192625525460 !ruby/object:Gem::Requirement
         | 
| 259 184 | 
             
                none: false
         | 
| 260 185 | 
             
                requirements:
         | 
| 261 186 | 
             
                - - ! '>='
         | 
| @@ -263,15 +188,10 @@ dependencies: | |
| 263 188 | 
             
                    version: '0'
         | 
| 264 189 | 
             
              type: :development
         | 
| 265 190 | 
             
              prerelease: false
         | 
| 266 | 
            -
              version_requirements:  | 
| 267 | 
            -
                none: false
         | 
| 268 | 
            -
                requirements:
         | 
| 269 | 
            -
                - - ! '>='
         | 
| 270 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 271 | 
            -
                    version: '0'
         | 
| 191 | 
            +
              version_requirements: *70192625525460
         | 
| 272 192 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 273 193 | 
             
              name: rake
         | 
| 274 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 194 | 
            +
              requirement: &70192625524480 !ruby/object:Gem::Requirement
         | 
| 275 195 | 
             
                none: false
         | 
| 276 196 | 
             
                requirements:
         | 
| 277 197 | 
             
                - - ! '>='
         | 
| @@ -279,15 +199,10 @@ dependencies: | |
| 279 199 | 
             
                    version: '0'
         | 
| 280 200 | 
             
              type: :development
         | 
| 281 201 | 
             
              prerelease: false
         | 
| 282 | 
            -
              version_requirements:  | 
| 283 | 
            -
                none: false
         | 
| 284 | 
            -
                requirements:
         | 
| 285 | 
            -
                - - ! '>='
         | 
| 286 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 287 | 
            -
                    version: '0'
         | 
| 202 | 
            +
              version_requirements: *70192625524480
         | 
| 288 203 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 289 204 | 
             
              name: jettywrapper
         | 
| 290 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 205 | 
            +
              requirement: &70192625522980 !ruby/object:Gem::Requirement
         | 
| 291 206 | 
             
                none: false
         | 
| 292 207 | 
             
                requirements:
         | 
| 293 208 | 
             
                - - ! '>='
         | 
| @@ -295,15 +210,10 @@ dependencies: | |
| 295 210 | 
             
                    version: 1.2.0
         | 
| 296 211 | 
             
              type: :development
         | 
| 297 212 | 
             
              prerelease: false
         | 
| 298 | 
            -
              version_requirements:  | 
| 299 | 
            -
                none: false
         | 
| 300 | 
            -
                requirements:
         | 
| 301 | 
            -
                - - ! '>='
         | 
| 302 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 303 | 
            -
                    version: 1.2.0
         | 
| 213 | 
            +
              version_requirements: *70192625522980
         | 
| 304 214 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 305 215 | 
             
              name: rspec
         | 
| 306 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 216 | 
            +
              requirement: &70192625521940 !ruby/object:Gem::Requirement
         | 
| 307 217 | 
             
                none: false
         | 
| 308 218 | 
             
                requirements:
         | 
| 309 219 | 
             
                - - ! '>='
         | 
| @@ -311,15 +221,10 @@ dependencies: | |
| 311 221 | 
             
                    version: 2.9.0
         | 
| 312 222 | 
             
              type: :development
         | 
| 313 223 | 
             
              prerelease: false
         | 
| 314 | 
            -
              version_requirements:  | 
| 315 | 
            -
                none: false
         | 
| 316 | 
            -
                requirements:
         | 
| 317 | 
            -
                - - ! '>='
         | 
| 318 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 319 | 
            -
                    version: 2.9.0
         | 
| 224 | 
            +
              version_requirements: *70192625521940
         | 
| 320 225 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 321 226 | 
             
              name: mocha
         | 
| 322 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 227 | 
            +
              requirement: &70192625521000 !ruby/object:Gem::Requirement
         | 
| 323 228 | 
             
                none: false
         | 
| 324 229 | 
             
                requirements:
         | 
| 325 230 | 
             
                - - ! '>='
         | 
| @@ -327,12 +232,7 @@ dependencies: | |
| 327 232 | 
             
                    version: 0.9.8
         | 
| 328 233 | 
             
              type: :development
         | 
| 329 234 | 
             
              prerelease: false
         | 
| 330 | 
            -
              version_requirements:  | 
| 331 | 
            -
                none: false
         | 
| 332 | 
            -
                requirements:
         | 
| 333 | 
            -
                - - ! '>='
         | 
| 334 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 335 | 
            -
                    version: 0.9.8
         | 
| 235 | 
            +
              version_requirements: *70192625521000
         | 
| 336 236 | 
             
            description: ActiveFedora provides for creating and managing objects in the Fedora
         | 
| 337 237 | 
             
              Repository Architecture.
         | 
| 338 238 | 
             
            email:
         | 
| @@ -566,21 +466,15 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 566 466 | 
             
              - - ! '>='
         | 
| 567 467 | 
             
                - !ruby/object:Gem::Version
         | 
| 568 468 | 
             
                  version: '0'
         | 
| 569 | 
            -
                  segments:
         | 
| 570 | 
            -
                  - 0
         | 
| 571 | 
            -
                  hash: 2634316874790357809
         | 
| 572 469 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 573 470 | 
             
              none: false
         | 
| 574 471 | 
             
              requirements:
         | 
| 575 472 | 
             
              - - ! '>='
         | 
| 576 473 | 
             
                - !ruby/object:Gem::Version
         | 
| 577 474 | 
             
                  version: '0'
         | 
| 578 | 
            -
                  segments:
         | 
| 579 | 
            -
                  - 0
         | 
| 580 | 
            -
                  hash: 2634316874790357809
         | 
| 581 475 | 
             
            requirements: []
         | 
| 582 476 | 
             
            rubyforge_project: rubyfedora
         | 
| 583 | 
            -
            rubygems_version: 1.8. | 
| 477 | 
            +
            rubygems_version: 1.8.10
         | 
| 584 478 | 
             
            signing_key: 
         | 
| 585 479 | 
             
            specification_version: 3
         | 
| 586 480 | 
             
            summary: A convenience libary for manipulating documents in the Fedora Repository.
         |