hybag 0.0.11 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzZkYTExZGU2NGI5YjA3MzFkNWE5YjA5ZTVkOTA4ZTgxM2U4MDY4Zg==
4
+ MjJmNGNhNzQ1Y2U1MTYyZDFiNDJlYzk5ZWU2MGUxODI0OTFjZTNhOA==
5
5
  data.tar.gz: !binary |-
6
- ZjM0NjU0NTc0ZGQzNWViNjc5OTQ2MjhhZGVkNjIzYmVkNDJjY2I1OQ==
6
+ MjViZjdlZDAzMzJmMDFiYmE0OTVkZjg1NTBmMDlhYmM5MDhkOTNkZg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MDgwZDYwZjEyMjY4ZTQ0ZmFjZWYyYWRlNjNiZGQwYTI1NDI5NzVjMWUxY2Nk
10
- MDgyMmY2YWFiNDkyMzMwZDdiMmRiNzU2YjYxYTM1M2VjYzk4ZDY1NGYzNzI5
11
- Y2MwYjM2ZTI0NTgzYTM4YTMyNDQ4NjYyOWJmZWU2NjY0NzIwMmM=
9
+ OWRmMDdiNDBkNjUyMGViZjU0YzI3NTQxNmQwMjMxYjRlNGJjMjM5OGI0ZTE2
10
+ ZTRjZThjNjhkMmZiMDNiYzc5NDA0MzRkMDUxNjFmMWEyMmFkY2RmMTk5OTI3
11
+ YjM2NDllZWVlYTk3OThhOGY2YzBlNTZmYjNjN2I5MzU0ZjA4YWE=
12
12
  data.tar.gz: !binary |-
13
- ZDFkOWUxNTY0NzI3NjJlZjVjYjlmOGI0ZTUwYTdkMzdhN2ZkYzQzNjZlNTFj
14
- MWFiYTY5NGRkMzNlNzIwMDE0MzEwYjdiNDFjMGM1OWZmMDhhNGU0MDQ3ZmJl
15
- ZDdiNTMzOGQ5NWI3ZTI3MTZjYTliMWE2M2EzMjVhM2U1MmM2YmE=
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 a config file stored in bag_root/hybag.yml. The fedora rels-ext takes precedence. An example Hybag.yml format is
47
- below
46
+ or is configurable via a block as shown before
48
47
 
49
- ```yml
50
- model: TestModel
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
@@ -10,7 +10,9 @@ require 'hybag/ingester'
10
10
 
11
11
  module Hybag
12
12
  def self.ingest(bag)
13
- Hybag::Ingester.new(bag).ingest
13
+ ingester = Hybag::Ingester.new(bag)
14
+ yield(ingester) if block_given?
15
+ ingester.ingest
14
16
  end
15
17
 
16
18
  # Error Classes
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Hybag
2
- VERSION = "0.0.11"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -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 "when there is a hybag.yml" do
49
+ context "but a model name is explicitly configured" do
50
50
  before(:each) do
51
- FileUtils.rm(subject.send(:fedora_rels), :force => true)
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 pull the data out of hybag.yml" do
59
- subject.send(:model_name).should == "TestModel"
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
- before(:each) do
65
- # Add the hybag.yml from fixture
66
- FakeFS.deactivate!
67
- hybag_content = File.read(File.join(FIXTURE_PATH,"hybag.yml"))
68
- FakeFS.activate!
69
- File.open(File.join(bag.bag_dir,"hybag.yml"),'w') {|f| f.puts hybag_content}
70
- end
71
- it "should prioritize the rels" do
72
- subject.send(:model_name).should == "BaggableDummy"
73
- end
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
@@ -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.11
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-10-21 00:00:00.000000000 Z
11
+ date: 2013-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler