druid-tools 0.2.6 → 0.3.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/.gitignore CHANGED
@@ -13,4 +13,7 @@ spec/reports
13
13
  test/tmp
14
14
  test/version_tmp
15
15
  tmp
16
- Gemfile.lock
16
+ .rvmrc
17
+ .ruby-version
18
+ .ruby-gemset
19
+
data/Gemfile CHANGED
@@ -1,4 +1,12 @@
1
1
  source 'https://rubygems.org'
2
+ source 'http://sul-gems.stanford.edu'
3
+
4
+ group :development do
5
+ gem "ruby-debug", :platform => :ruby_18
6
+ gem "rcov", :platform => :ruby_18
7
+ gem "simplecov", :platform => [:ruby_19, :ruby_20]
8
+ gem "debugger", :platform => :ruby_19
9
+ gem "pry-debugger", :platform => :ruby_19
10
+ end
2
11
 
3
- # Specify your gem's dependencies in druid-tools.gemspec
4
12
  gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,70 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ druid-tools (0.3.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ remote: http://sul-gems.stanford.edu/
9
+ specs:
10
+ coderay (1.0.9)
11
+ columnize (0.3.6)
12
+ debugger (1.6.2)
13
+ columnize (>= 0.3.1)
14
+ debugger-linecache (~> 1.2.0)
15
+ debugger-ruby_core_source (~> 1.2.3)
16
+ debugger-linecache (1.2.0)
17
+ debugger-ruby_core_source (1.2.3)
18
+ diff-lcs (1.2.4)
19
+ linecache (0.46)
20
+ rbx-require-relative (> 0.0.4)
21
+ lyberteam-gems-devel (1.0.1)
22
+ rake (>= 0.8.7)
23
+ rest-client
24
+ method_source (0.8.2)
25
+ mime-types (1.24)
26
+ multi_json (1.8.2)
27
+ pry (0.9.12.2)
28
+ coderay (~> 1.0.5)
29
+ method_source (~> 0.8)
30
+ slop (~> 3.4)
31
+ pry-debugger (0.2.2)
32
+ debugger (~> 1.3)
33
+ pry (~> 0.9.10)
34
+ rake (10.1.0)
35
+ rbx-require-relative (0.0.9)
36
+ rcov (1.0.0)
37
+ rest-client (1.6.7)
38
+ mime-types (>= 1.16)
39
+ rspec (2.14.1)
40
+ rspec-core (~> 2.14.0)
41
+ rspec-expectations (~> 2.14.0)
42
+ rspec-mocks (~> 2.14.0)
43
+ rspec-core (2.14.5)
44
+ rspec-expectations (2.14.2)
45
+ diff-lcs (>= 1.1.3, < 2.0)
46
+ rspec-mocks (2.14.3)
47
+ ruby-debug (0.10.4)
48
+ columnize (>= 0.1)
49
+ ruby-debug-base (~> 0.10.4.0)
50
+ ruby-debug-base (0.10.4)
51
+ linecache (>= 0.3)
52
+ simplecov (0.7.1)
53
+ multi_json (~> 1.0)
54
+ simplecov-html (~> 0.7.1)
55
+ simplecov-html (0.7.1)
56
+ slop (3.4.6)
57
+
58
+ PLATFORMS
59
+ ruby
60
+
61
+ DEPENDENCIES
62
+ debugger
63
+ druid-tools!
64
+ lyberteam-gems-devel (~> 1.0.0)
65
+ pry-debugger
66
+ rake (~> 10.1.0)
67
+ rcov
68
+ rspec (~> 2.14.0)
69
+ ruby-debug
70
+ simplecov
data/README.md CHANGED
@@ -35,7 +35,7 @@ Tools to manipulate DRUID trees and content directories
35
35
  d.rmdir
36
36
  # Link content from another source into a druid tree
37
37
  d.mkdir_with_final_link('/some/other/content/location')
38
-
38
+
39
39
  ### Content-specific methods create the relevant directories if they don't exist
40
40
 
41
41
  Pass `false` as a parameter to prevent directory creation, or `true` (default) to create directories.
@@ -50,25 +50,45 @@ Pass `false` as a parameter to prevent directory creation, or `true` (default) t
50
50
  => "/dor/workspace/ab/123/cd/4567/ab123cd4567/metadata"
51
51
  d.temp_dir(false)
52
52
  => "/dor/workspace/ab/123/cd/4567/ab123cd4567/temp"
53
-
53
+
54
54
  ### Locate existing content within the druid tree
55
55
 
56
56
  # In the correct directory
57
57
  d.find_metadata('contentMetadata.xml')
58
58
  => "/dor/workspace/ab/123/cd/4567/ab123cd4567/metadata/contentMetadata.xml"
59
-
59
+
60
60
  # In other known previous locations, for backward compatibility
61
61
  d.find_metadata('contentMetadata.xml')
62
62
  => "/dor/workspace/ab/123/cd/4567/ab123cd4567/contentMetadata.xml"
63
63
 
64
64
  d.find_metadata('contentMetadata.xml')
65
65
  => "/dor/workspace/ab/123/cd/4567/contentMetadata.xml"
66
-
66
+
67
67
  d.find_content('this/file/does/not/exist.jpg')
68
68
  => nil
69
-
70
- ## History
71
69
 
70
+ ### Pruning: removes leaves of tree up to non-empty branches
71
+
72
+ d1 = DruidTools::Druid.new 'druid:cd456ef7890', '/workspace'
73
+ d1.mkdir
74
+ d2 = DruidTools::Druid.new 'druid:cd456gh1234', '/workspace'
75
+ d2.mkdir
76
+
77
+ # /workspace/cd/456/gh/1234/cd456gh1234 pruned down to /workspace/cd/456
78
+ # /workspace/cd/456/ef/7890/cd456ef7890 left intact
79
+ d2.prune!
80
+
81
+ ### Stacks and Purl compatible Druid. All files at the leaf directories
82
+
83
+ pd = DruidTools::PurlDruid.new 'druid:ab123cd4567', '/purl'
84
+ pd.path
85
+ => "/purl/ab/123/cd/4567"
86
+ pd.content_dir
87
+ => "/purl/ab/123/cd/4567"
88
+
89
+ ### History
90
+
91
+ - <b>0.3.0</b> - Added #prune method. Added AccessDruid for stacks and purl access
72
92
  - <b>0.2.6</b> - Fixed VERSION warning message, and documentation cleanup
73
93
  - <b>0.2.5</b> - Added glob pattern as DruidTools::Druid.glob
74
94
  - <b>0.2.4</b> - Allow non-String as .new parameter and added InvalidDruidError
@@ -77,4 +97,4 @@ Pass `false` as a parameter to prevent directory creation, or `true` (default) t
77
97
  - <b>0.2.1</b> - Do not error out during symlink creation if it already exists
78
98
  - <b>0.2.0</b> - Added DruidTools::Druid.valid?
79
99
  - <b>0.1.0</b> - Additional support for alternate content locations
80
- - <b>0.0.1</b> - Initial Release
100
+ - <b>0.0.1</b> - Initial Release
data/Rakefile CHANGED
@@ -4,4 +4,7 @@ require "bundler/gem_tasks"
4
4
  require 'rspec/core/rake_task'
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
 
7
+ require 'dlss/rake/dlss_release'
8
+ Dlss::Release.new
9
+
7
10
  task :default => :spec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.6
1
+ 0.3.0
data/druid-tools.gemspec CHANGED
@@ -16,6 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.require_paths = ['lib']
17
17
  gem.version = File.read('VERSION').strip
18
18
 
19
- gem.add_development_dependency 'rake', '>= 10.1.0'
20
- gem.add_development_dependency 'rspec', '>= 2.14.0'
19
+ gem.add_development_dependency 'rake', '~> 10.1.0'
20
+ gem.add_development_dependency 'rspec', '~> 2.14.0'
21
+ gem.add_development_dependency 'lyberteam-gems-devel', '~> 1.0.0'
21
22
  end
data/lib/druid_tools.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  module DruidTools
2
2
  require 'druid_tools/version'
3
3
  require 'druid_tools/druid'
4
+ require 'druid_tools/access_druid'
4
5
  require 'druid_tools/exceptions'
5
6
  end
@@ -0,0 +1,25 @@
1
+
2
+ module DruidTools
3
+
4
+ # Overrides the Druid#tree method
5
+ class AccessDruid < Druid
6
+
7
+ self.prefix = 'druid'
8
+
9
+ def tree
10
+ @druid.scan(self.class.pattern).flatten
11
+ end
12
+
13
+ # all content lives in the base druid directory
14
+ def path(extra=nil, create=false)
15
+ result = File.join(*([base,tree].compact))
16
+ mkdir(extra) if create and not File.exists?(result)
17
+ result
18
+ end
19
+
20
+ end
21
+
22
+ PurlDruid = AccessDruid
23
+ StacksDruid = AccessDruid
24
+
25
+ end
@@ -3,10 +3,10 @@ require 'pathname'
3
3
  module DruidTools
4
4
  class Druid
5
5
  attr_accessor :druid, :base
6
-
6
+
7
7
  class << self
8
8
  attr_accessor :prefix
9
-
9
+
10
10
  # @return [Regexp] matches druid:aa111aa1111 or aa111aa1111
11
11
  def pattern
12
12
  /\A(?:#{self.prefix}:)?([a-z]{2})(\d{3})([a-z]{2})(\d{4})\z/
@@ -25,19 +25,19 @@ module DruidTools
25
25
 
26
26
  end
27
27
  self.prefix = 'druid'
28
-
28
+
29
29
  [:content, :metadata, :temp].each do |dir_type|
30
30
  self.class_eval <<-EOC
31
31
  def #{dir_type}_dir(create=true)
32
32
  path("#{dir_type}",create)
33
33
  end
34
-
34
+
35
35
  def find_#{dir_type}(path)
36
36
  find(:#{dir_type},path)
37
37
  end
38
38
  EOC
39
39
  end
40
-
40
+
41
41
  # @param druid [String] A valid druid
42
42
  # @param base [String] The directory used by #path
43
43
  def initialize(druid, base='.')
@@ -49,21 +49,21 @@ module DruidTools
49
49
  @base = base
50
50
  @druid = druid
51
51
  end
52
-
52
+
53
53
  def id
54
54
  @druid.scan(self.class.pattern).flatten.join('')
55
55
  end
56
-
56
+
57
57
  def tree
58
58
  @druid.scan(self.class.pattern).flatten + [id]
59
59
  end
60
-
60
+
61
61
  def path(extra=nil, create=false)
62
62
  result = File.join(*([base,tree,extra].compact))
63
63
  mkdir(extra) if create and not File.exists?(result)
64
64
  result
65
65
  end
66
-
66
+
67
67
  def mkdir(extra=nil)
68
68
  new_path = path(extra)
69
69
  if(File.symlink? new_path)
@@ -74,7 +74,7 @@ module DruidTools
74
74
  end
75
75
  FileUtils.mkdir_p(new_path)
76
76
  end
77
-
77
+
78
78
  def find(type, path)
79
79
  possibles = [self.path(type.to_s),self.path,File.expand_path('..',self.path)]
80
80
  loc = possibles.find { |p| File.exists?(File.join(p,path)) }
@@ -107,7 +107,7 @@ module DruidTools
107
107
  FileUtils.mkdir_p(real_path)
108
108
  FileUtils.ln_s(source, new_path, :force=>true)
109
109
  end
110
-
110
+
111
111
  def rmdir(extra=nil)
112
112
  parts = tree
113
113
  parts << extra unless extra.nil?
@@ -123,5 +123,33 @@ module DruidTools
123
123
  end
124
124
  end
125
125
 
126
+ def pathname
127
+ Pathname self.path
128
+ end
129
+
130
+ def base_pathname
131
+ Pathname self.base
132
+ end
133
+
134
+ def prune!
135
+ this_path = pathname
136
+ parent = this_path.parent
137
+ parent.rmtree if parent.exist? && parent != base_pathname
138
+ prune_ancestors parent.parent
139
+ end
140
+
141
+ protected
142
+
143
+ # @param [Pathname] outermost_branch The branch at which pruning begins
144
+ # @return [void] Ascend the druid tree and prune empty branches
145
+ def prune_ancestors(outermost_branch)
146
+ while outermost_branch.children.size == 0
147
+ outermost_branch.rmdir
148
+ outermost_branch = outermost_branch.parent
149
+ break if outermost_branch == base_pathname
150
+ end
151
+ rescue
152
+ end
153
+
126
154
  end
127
155
  end
@@ -0,0 +1,28 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe DruidTools::PurlDruid do
4
+
5
+ let(:purl_root) { Dir.mktmpdir }
6
+
7
+ let(:druid) { DruidTools::PurlDruid.new 'druid:cd456ef7890', purl_root }
8
+
9
+ after(:each) do
10
+ FileUtils.remove_entry purl_root
11
+ end
12
+
13
+ it "overrides Druid#tree so that the leaf is not Druid#id" do
14
+ expect(druid.tree).to eq(['cd','456','ef','7890'])
15
+ end
16
+
17
+ describe "#content_dir" do
18
+
19
+ it "creates content directories at leaf of the druid tree" do
20
+ expect(druid.content_dir).to match(/ef\/7890$/)
21
+ end
22
+
23
+ it "does not create a 'content' subdirectory" do
24
+ expect(druid.content_dir).to_not match(/content$/)
25
+ end
26
+ end
27
+
28
+ end
@@ -1,6 +1,6 @@
1
- #require File.expand_path('../spec_helper',__FILE__)
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
  #puts $LOAD_PATH.join("\n")
3
- require 'druid-tools'
3
+ require 'tmpdir'
4
4
 
5
5
  describe DruidTools::Druid do
6
6
  before (:all) do
@@ -11,7 +11,7 @@ describe DruidTools::Druid do
11
11
  @druid_2 = 'druid:cd456gh1234'
12
12
  @tree_2 = File.join(@fixture_dir,'cd/456/gh/1234/cd456gh1234')
13
13
  end
14
-
14
+
15
15
  after(:each) do
16
16
  FileUtils.rm_rf(File.join(@fixture_dir,'cd'))
17
17
  end
@@ -48,23 +48,23 @@ describe DruidTools::Druid do
48
48
  DruidTools::Druid.new('druid:cd456ef7890',@fixture_dir).druid.should == 'druid:cd456ef7890'
49
49
  DruidTools::Druid.new('cd456ef7890',@fixture_dir).druid.should == 'druid:cd456ef7890'
50
50
  end
51
-
51
+
52
52
  it "should extract the ID from the stem" do
53
53
  DruidTools::Druid.new('druid:cd456ef7890',@fixture_dir).id.should == 'cd456ef7890'
54
54
  DruidTools::Druid.new('cd456ef7890',@fixture_dir).id.should == 'cd456ef7890'
55
55
  end
56
-
56
+
57
57
  it "should raise an exception if the druid is invalid" do
58
58
  lambda { DruidTools::Druid.new('nondruid:cd456ef7890',@fixture_dir) }.should raise_error(ArgumentError)
59
59
  lambda { DruidTools::Druid.new('druid:cd4567ef890',@fixture_dir) }.should raise_error(ArgumentError)
60
60
  end
61
-
61
+
62
62
  it "should build a druid tree from a druid" do
63
63
  druid = DruidTools::Druid.new(@druid_1,@fixture_dir)
64
64
  druid.tree.should == ['cd','456','ef','7890','cd456ef7890']
65
65
  druid.path.should == @tree_1
66
66
  end
67
-
67
+
68
68
  it "should create and destroy druid directories" do
69
69
  File.exists?(@tree_1).should be_false
70
70
  File.exists?(@tree_2).should be_false
@@ -79,7 +79,7 @@ describe DruidTools::Druid do
79
79
  druid_2.mkdir
80
80
  File.exists?(@tree_1).should be_true
81
81
  File.exists?(@tree_2).should be_true
82
-
82
+
83
83
  druid_2.rmdir
84
84
  File.exists?(@tree_1).should be_true
85
85
  File.exists?(@tree_2).should be_false
@@ -94,7 +94,7 @@ describe DruidTools::Druid do
94
94
  before :all do
95
95
  DruidTools::Druid.prefix = 'sulair'
96
96
  end
97
-
97
+
98
98
  after :all do
99
99
  DruidTools::Druid.prefix = 'druid'
100
100
  end
@@ -105,14 +105,14 @@ describe DruidTools::Druid do
105
105
  DruidTools::Druid.new('cd456ef7890',@fixture_dir).druid.should == 'sulair:cd456ef7890'
106
106
  end
107
107
  end
108
-
108
+
109
109
  describe "content directories" do
110
110
  it "should know where its content goes" do
111
111
  druid = DruidTools::Druid.new(@druid_1,@fixture_dir)
112
112
  druid.content_dir(false).should == File.join(@tree_1,'content')
113
113
  druid.metadata_dir(false).should == File.join(@tree_1,'metadata')
114
114
  druid.temp_dir(false).should == File.join(@tree_1,'temp')
115
-
115
+
116
116
  File.exists?(File.join(@tree_1,'content')).should be_false
117
117
  File.exists?(File.join(@tree_1,'metadata')).should be_false
118
118
  File.exists?(File.join(@tree_1,'temp')).should be_false
@@ -123,31 +123,31 @@ describe DruidTools::Druid do
123
123
  druid.content_dir.should == File.join(@tree_1,'content')
124
124
  druid.metadata_dir.should == File.join(@tree_1,'metadata')
125
125
  druid.temp_dir.should == File.join(@tree_1,'temp')
126
-
126
+
127
127
  File.exists?(File.join(@tree_1,'content')).should be_true
128
128
  File.exists?(File.join(@tree_1,'metadata')).should be_true
129
129
  File.exists?(File.join(@tree_1,'temp')).should be_true
130
130
  end
131
-
131
+
132
132
  it "should match glob" do
133
133
  druid = DruidTools::Druid.new(@druid_1,@fixture_dir)
134
134
  druid.mkdir
135
135
  Dir.glob(File.join(File.dirname(druid.path), DruidTools::Druid::glob)).size.should == 1
136
136
  end
137
137
  end
138
-
138
+
139
139
  describe "content discovery" do
140
140
  before :all do
141
141
  @druid = DruidTools::Druid.new(@druid_1,@fixture_dir)
142
142
  @filelist = %w(1 2 3 4).collect { |num| "someFile#{num}" }
143
143
  end
144
-
144
+
145
145
  it "should find content in content directories" do
146
146
  location = @druid.content_dir
147
147
  File.open(File.join(location,'someContent'),'w') { |f| f.write 'This is the content' }
148
148
  @druid.find_content('someContent').should == File.join(location,'someContent')
149
149
  end
150
-
150
+
151
151
  it "should find content in the root directory" do
152
152
  location = @druid.path(nil,true)
153
153
  File.open(File.join(location,'someContent'),'w') { |f| f.write 'This is the content' }
@@ -159,7 +159,7 @@ describe DruidTools::Druid do
159
159
  File.open(File.join(location,'someContent'),'w') { |f| f.write 'This is the content' }
160
160
  @druid.find_content('someContent').should == File.join(location,'someContent')
161
161
  end
162
-
162
+
163
163
  it "should not find content in the wrong content directory" do
164
164
  location = @druid.metadata_dir
165
165
  File.open(File.join(location,'someContent'),'w') { |f| f.write 'This is the content' }
@@ -208,48 +208,102 @@ describe DruidTools::Druid do
208
208
  end
209
209
 
210
210
  end
211
-
211
+
212
212
  describe "#mkdir error handling" do
213
213
  it "raises SameContentExistsError if the directory already exists" do
214
214
  druid_2 = DruidTools::Druid.new(@druid_2,@fixture_dir)
215
215
  druid_2.mkdir
216
216
  lambda { druid_2.mkdir }.should raise_error(DruidTools::SameContentExistsError)
217
217
  end
218
-
218
+
219
219
  it "raises DifferentContentExistsError if a link already exists in the workspace for this druid" do
220
220
  source_dir = '/tmp/content_dir'
221
- FileUtils.mkdir_p(source_dir)
221
+ FileUtils.mkdir_p(source_dir)
222
222
  dr = DruidTools::Druid.new(@druid_2,@fixture_dir)
223
223
  dr.mkdir_with_final_link(source_dir)
224
224
  lambda { dr.mkdir }.should raise_error(DruidTools::DifferentContentExistsError)
225
225
  end
226
226
  end
227
-
227
+
228
228
  describe "#mkdir_with_final_link" do
229
-
229
+
230
230
  before(:each) do
231
231
  @source_dir = '/tmp/content_dir'
232
- FileUtils.mkdir_p(@source_dir)
232
+ FileUtils.mkdir_p(@source_dir)
233
233
  @dr = DruidTools::Druid.new(@druid_2,@fixture_dir)
234
234
  end
235
-
235
+
236
236
  it "creates a druid tree in the workspace with the final directory being a link to the passed in source" do
237
237
  @dr.mkdir_with_final_link(@source_dir)
238
238
 
239
239
  File.should be_symlink(@dr.path)
240
240
  File.readlink(@tree_2).should == @source_dir
241
241
  end
242
-
242
+
243
243
  it "should not error out if the link to source already exists" do
244
244
  @dr.mkdir_with_final_link(@source_dir)
245
245
  File.should be_symlink(@dr.path)
246
246
  File.readlink(@tree_2).should == @source_dir
247
247
  end
248
-
248
+
249
249
  it "raises DifferentContentExistsError if a directory already exists in the workspace for this druid" do
250
250
  @dr.mkdir(@fixture_dir)
251
251
  lambda { @dr.mkdir_with_final_link(@source_di) }.should raise_error(DruidTools::DifferentContentExistsError)
252
252
  end
253
253
  end
254
-
254
+
255
+ describe "#prune!" do
256
+
257
+ let(:workspace) { Dir.mktmpdir }
258
+
259
+ let(:dr1) { DruidTools::Druid.new @druid_1, workspace }
260
+ let(:dr2) { DruidTools::Druid.new @druid_2, workspace }
261
+ let(:pathname1) { dr1.pathname }
262
+
263
+ after(:each) do
264
+ FileUtils.remove_entry workspace
265
+ end
266
+
267
+ context "shared ancestor" do
268
+
269
+ before(:each) do
270
+ dr1.mkdir
271
+ dr2.mkdir
272
+ dr1.prune!
273
+ end
274
+
275
+ it "deletes the outermost directory" do
276
+ expect(File).to_not exist(dr1.path)
277
+ end
278
+
279
+ it "deletes empty ancestor directories" do
280
+ expect(File).to_not exist(pathname1.parent)
281
+ expect(File).to_not exist(pathname1.parent.parent)
282
+ end
283
+
284
+ it "stops at ancestor directories that have children" do
285
+ # 'cd/456' should still exist because of druid2
286
+ shared_ancestor = pathname1.parent.parent.parent
287
+ expect(shared_ancestor.to_s).to match(/cd\/456$/)
288
+ expect(File).to exist(shared_ancestor)
289
+ end
290
+ end
291
+
292
+ it "removes all directories up to the base path when there are no common ancestors" do
293
+ dr1.mkdir
294
+ dr1.prune!
295
+ expect(File).to_not exist(File.join(workspace, 'cd'))
296
+ expect(File).to exist(workspace)
297
+ end
298
+
299
+ it "removes directories with symlinks" do
300
+ source_dir = File.join workspace, 'src_dir'
301
+ FileUtils.mkdir_p(source_dir)
302
+ dr2.mkdir_with_final_link(source_dir)
303
+ dr2.prune!
304
+ expect(File).to_not exist(dr2.path)
305
+ expect(File).to_not exist(File.join(workspace, 'cd'))
306
+ end
307
+ end
308
+
255
309
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,4 @@
1
1
  #$LOAD_PATH.unshift(File.expand_path('../../lib',__FILE__))
2
2
 
3
3
  require 'bundler/setup'
4
+ Bundler.require(:default, :development)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: druid-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,14 +10,14 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-10-15 00:00:00.000000000 Z
13
+ date: 2013-11-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
- - - ! '>='
20
+ - - ~>
21
21
  - !ruby/object:Gem::Version
22
22
  version: 10.1.0
23
23
  type: :development
@@ -25,7 +25,7 @@ dependencies:
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  none: false
27
27
  requirements:
28
- - - ! '>='
28
+ - - ~>
29
29
  - !ruby/object:Gem::Version
30
30
  version: 10.1.0
31
31
  - !ruby/object:Gem::Dependency
@@ -33,7 +33,7 @@ dependencies:
33
33
  requirement: !ruby/object:Gem::Requirement
34
34
  none: false
35
35
  requirements:
36
- - - ! '>='
36
+ - - ~>
37
37
  - !ruby/object:Gem::Version
38
38
  version: 2.14.0
39
39
  type: :development
@@ -41,9 +41,25 @@ dependencies:
41
41
  version_requirements: !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
- - - ! '>='
44
+ - - ~>
45
45
  - !ruby/object:Gem::Version
46
46
  version: 2.14.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: lyberteam-gems-devel
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 1.0.0
47
63
  description: Tools to manipulate DRUID trees and content directories
48
64
  email:
49
65
  - mbklein@stanford.edu
@@ -52,8 +68,8 @@ extensions: []
52
68
  extra_rdoc_files: []
53
69
  files:
54
70
  - .gitignore
55
- - .rvmrc
56
71
  - Gemfile
72
+ - Gemfile.lock
57
73
  - LICENSE
58
74
  - README.md
59
75
  - Rakefile
@@ -91,9 +107,11 @@ files:
91
107
  - druid-tools.gemspec
92
108
  - lib/druid-tools.rb
93
109
  - lib/druid_tools.rb
110
+ - lib/druid_tools/access_druid.rb
94
111
  - lib/druid_tools/druid.rb
95
112
  - lib/druid_tools/exceptions.rb
96
113
  - lib/druid_tools/version.rb
114
+ - spec/access_druid_spec.rb
97
115
  - spec/druid_tools_spec.rb
98
116
  - spec/spec_helper.rb
99
117
  homepage: http://github.com/sul-dlss/druid-tools
@@ -110,24 +128,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
128
  - - ! '>='
111
129
  - !ruby/object:Gem::Version
112
130
  version: '0'
113
- segments:
114
- - 0
115
- hash: -3564401623141727809
116
131
  required_rubygems_version: !ruby/object:Gem::Requirement
117
132
  none: false
118
133
  requirements:
119
134
  - - ! '>='
120
135
  - !ruby/object:Gem::Version
121
136
  version: '0'
122
- segments:
123
- - 0
124
- hash: -3564401623141727809
125
137
  requirements: []
126
138
  rubyforge_project:
127
- rubygems_version: 1.8.23
139
+ rubygems_version: 1.8.25
128
140
  signing_key:
129
141
  specification_version: 3
130
142
  summary: Tools to manipulate DRUID trees and content directories
131
143
  test_files:
144
+ - spec/access_druid_spec.rb
132
145
  - spec/druid_tools_spec.rb
133
146
  - spec/spec_helper.rb
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use 1.8.7@druid-tools --create