hybag 0.0.11 → 0.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.
- checksums.yaml +8 -8
- data/README.md +8 -4
- data/lib/hybag.rb +3 -1
- data/lib/hybag/ingester.rb +7 -20
- data/lib/hybag/version.rb +1 -1
- data/spec/lib/hybag/ingester_spec.rb +29 -21
- data/spec/lib/hybag_spec.rb +9 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MjJmNGNhNzQ1Y2U1MTYyZDFiNDJlYzk5ZWU2MGUxODI0OTFjZTNhOA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MjViZjdlZDAzMzJmMDFiYmE0OTVkZjg1NTBmMDlhYmM5MDhkOTNkZg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OWRmMDdiNDBkNjUyMGViZjU0YzI3NTQxNmQwMjMxYjRlNGJjMjM5OGI0ZTE2
|
10
|
+
ZTRjZThjNjhkMmZiMDNiYzc5NDA0MzRkMDUxNjFmMWEyMmFkY2RmMTk5OTI3
|
11
|
+
YjM2NDllZWVlYTk3OThhOGY2YzBlNTZmYjNjN2I5MzU0ZjA4YWE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODBhOTY5OWQ0NzJhMjNkZWZkMmQ2YjBlYmRjNGIyODUyYTA3YmVkMTQyZTdl
|
14
|
+
NjFjZjlmZDQwMGVmMDc2OTNkM2RiNzI3OWZjN2QzY2I5ZDQyZTE5OWNlN2Y4
|
15
|
+
ZjkzZjhkYTdhNGU5Y2M4YjMxNWFiZTU1MWMyNjQwMWEzMTcyZGE=
|
data/README.md
CHANGED
@@ -43,11 +43,15 @@ datastream to be populated bag_root/descMetadata.* (where * is the extension) mu
|
|
43
43
|
#### Determining the model name.
|
44
44
|
|
45
45
|
Currently the model name is determined from the bag's fedora/rels-ext.rdf file (which Hybag::Baggable exports)
|
46
|
-
or
|
47
|
-
below
|
46
|
+
or is configurable via a block as shown before
|
48
47
|
|
49
|
-
```
|
50
|
-
|
48
|
+
```ruby
|
49
|
+
bag = Bagit::Bag.new("/path/to/bag")
|
50
|
+
test_class = Hybag.ingest(bag) do |ingester|
|
51
|
+
ingester.bag == bag # => true
|
52
|
+
ingester.model_name = "ActiveFedora::Base"
|
53
|
+
end
|
54
|
+
test_class.class # => ActiveFedora::Base
|
51
55
|
```
|
52
56
|
|
53
57
|
### Examples
|
data/lib/hybag.rb
CHANGED
data/lib/hybag/ingester.rb
CHANGED
@@ -2,7 +2,7 @@ require 'rdf/rdfxml'
|
|
2
2
|
|
3
3
|
module Hybag
|
4
4
|
class Ingester
|
5
|
-
attr_accessor :bag
|
5
|
+
attr_accessor :bag, :model_name
|
6
6
|
def initialize(bag)
|
7
7
|
@bag = bag
|
8
8
|
end
|
@@ -17,6 +17,12 @@ module Hybag
|
|
17
17
|
return new_object
|
18
18
|
end
|
19
19
|
|
20
|
+
def model_name
|
21
|
+
# TODO: Add a default model_name configuration option?
|
22
|
+
@model_name ||= extract_model_from_rels
|
23
|
+
|
24
|
+
end
|
25
|
+
|
20
26
|
private
|
21
27
|
|
22
28
|
# TODO: Add some sort of configuration to map bag filenames -> dsids.
|
@@ -81,12 +87,6 @@ module Hybag
|
|
81
87
|
Pathname.new(bag_filename).basename.sub_ext('').to_s
|
82
88
|
end
|
83
89
|
|
84
|
-
def model_name
|
85
|
-
# TODO: Add a default model_name configuration option?
|
86
|
-
@model_name ||= extract_model_from_rels || extract_model_from_yaml
|
87
|
-
|
88
|
-
end
|
89
|
-
|
90
90
|
def extract_model_from_rels
|
91
91
|
if File.exist?(fedora_rels)
|
92
92
|
filler_object = ActiveFedora::Base.new
|
@@ -99,19 +99,6 @@ module Hybag
|
|
99
99
|
return model_name
|
100
100
|
end
|
101
101
|
|
102
|
-
def extract_model_from_yaml
|
103
|
-
model_name = nil
|
104
|
-
if(File.exist?(yaml_config))
|
105
|
-
conf = YAML.load(File.read(yaml_config))
|
106
|
-
model_name = conf['model']
|
107
|
-
end
|
108
|
-
return model_name
|
109
|
-
end
|
110
|
-
|
111
|
-
def yaml_config
|
112
|
-
File.join(bag.bag_dir,"hybag.yml")
|
113
|
-
end
|
114
|
-
|
115
102
|
def fedora_rels
|
116
103
|
File.join(bag.bag_dir,"fedora","RELS-EXT.rdf")
|
117
104
|
end
|
data/lib/hybag/version.rb
CHANGED
@@ -46,32 +46,40 @@ describe Hybag::Ingester do
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
context "when there is no rels" do
|
49
|
-
context "
|
49
|
+
context "but a model name is explicitly configured" do
|
50
50
|
before(:each) do
|
51
|
-
|
52
|
-
# Add the hybag.yml from fixture
|
53
|
-
FakeFS.deactivate!
|
54
|
-
hybag_content = File.read(File.join(FIXTURE_PATH,"hybag.yml"))
|
55
|
-
FakeFS.activate!
|
56
|
-
File.open(File.join(bag.bag_dir,"hybag.yml"),'w') {|f| f.puts hybag_content}
|
51
|
+
subject.model_name = "TestModel"
|
57
52
|
end
|
58
|
-
it "should
|
59
|
-
subject.send(:model_name).
|
53
|
+
it "should have a configured model name" do
|
54
|
+
expect(subject.send(:model_name)).to eq "TestModel"
|
60
55
|
end
|
61
56
|
end
|
57
|
+
#context "when there is a hybag.yml" do
|
58
|
+
# before(:each) do
|
59
|
+
# FileUtils.rm(subject.send(:fedora_rels), :force => true)
|
60
|
+
# # Add the hybag.yml from fixture
|
61
|
+
# FakeFS.deactivate!
|
62
|
+
# hybag_content = File.read(File.join(FIXTURE_PATH,"hybag.yml"))
|
63
|
+
# FakeFS.activate!
|
64
|
+
# File.open(File.join(bag.bag_dir,"hybag.yml"),'w') {|f| f.puts hybag_content}
|
65
|
+
# end
|
66
|
+
# it "should pull the data out of hybag.yml" do
|
67
|
+
# subject.send(:model_name).should == "TestModel"
|
68
|
+
# end
|
69
|
+
#end
|
62
70
|
end
|
63
|
-
context "when there is a rels and a hybag.yml" do
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
end
|
71
|
+
#context "when there is a rels and a hybag.yml" do
|
72
|
+
# before(:each) do
|
73
|
+
# # Add the hybag.yml from fixture
|
74
|
+
# FakeFS.deactivate!
|
75
|
+
# hybag_content = File.read(File.join(FIXTURE_PATH,"hybag.yml"))
|
76
|
+
# FakeFS.activate!
|
77
|
+
# File.open(File.join(bag.bag_dir,"hybag.yml"),'w') {|f| f.puts hybag_content}
|
78
|
+
# end
|
79
|
+
# it "should prioritize the rels" do
|
80
|
+
# subject.send(:model_name).should == "BaggableDummy"
|
81
|
+
# end
|
82
|
+
#end
|
75
83
|
end
|
76
84
|
describe ".ingest" do
|
77
85
|
context "when there is no discoverable model" do
|
data/spec/lib/hybag_spec.rb
CHANGED
@@ -6,5 +6,14 @@ describe Hybag do
|
|
6
6
|
Hybag::Ingester.any_instance.should_receive(:ingest).and_return("bla")
|
7
7
|
Hybag.ingest("empty")
|
8
8
|
end
|
9
|
+
it "should allow the ingester to be configurable" do
|
10
|
+
ingesting = nil
|
11
|
+
Hybag::Ingester.any_instance.should_receive(:ingest).and_return("bla")
|
12
|
+
Hybag.ingest("empty") do |ingester|
|
13
|
+
ingester.model_name = "TestModel"
|
14
|
+
ingesting = ingester
|
15
|
+
end
|
16
|
+
expect(ingesting.model_name).to eq "TestModel"
|
17
|
+
end
|
9
18
|
end
|
10
19
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hybag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Trey Terrell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|