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