active-fedora 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active-fedora (4.0.0)
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.7)
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.6)
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.7)
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.empty? ? nil : reflection.klass.find(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
- config_path = get_config_path(:fedora)
107
- @fedora_config = YAML.load(File.open(config_path))[@config_env] || {}
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
- config = YAML.load(File.open(@solr_config_path)).symbolize_keys
116
- raise "The #{@config_env.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 #{@config_env} environment" unless config[@config_env.to_sym]
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
 
@@ -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, Nokogiri::XML::Element, Nokogiri::XML::Node
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
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "4.0.0"
2
+ VERSION = "4.1.0"
3
3
  end
@@ -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
- it "should load the default packaged config/fedora.yml file if no explicit config path is passed" do
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
@@ -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 == 'http://127.0.0.1:8983/fedora-test'
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.fedora_config.should == {"url"=>"http://127.0.0.1:8983/fedora-test", "password"=>"fedoraAdmin", "user"=>"fedoraAdmin"}
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.solr_config.should == {:url=>"http://localhost:8983/solr/test"}
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
- File.expects(:open).with("/path/to/solr.yml").returns("development:\n default:\n url: http://devsolr:8983\ntest:\n default:\n url: http://mysolr:8080")
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
@@ -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.0.0
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-04-23 00:00:00.000000000 Z
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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.21
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.