lib/hybag.rb in hybag-0.1.0 vs lib/hybag.rb in hybag-0.1.1

- old
+ new

@@ -5,15 +5,31 @@ require 'hybag/version' require 'hybag/baggable' require 'hybag/validator' require 'hybag/bag_writer' require 'hybag/ingester' +require 'hybag/bulk_ingester' module Hybag def self.ingest(bag) + return self.bulk_ingest(bag) if self.bulk_directory?(bag) + bag = BagIt::Bag.new(bag.to_s) unless bag.kind_of?(BagIt::Bag) ingester = Hybag::Ingester.new(bag) yield(ingester) if block_given? ingester.ingest + end + + def self.bulk_ingest(directory) + objects = [] + Hybag::BulkIngester.new(directory).each do |ingester| + yield(ingester) if block_given? + objects << ingester.ingest + end + return objects + end + + def self.bulk_directory?(directory) + Dir.glob(File.join(directory,"*")).select{|x| File.directory?(x) && File.exist?(File.join(x, "bagit.txt"))}.length > 0 end # Error Classes class UndiscoverableModelName < StandardError def initialize(bag)