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.
@@ -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.