Module: BagIt::Info

Included in:
Bag
Defined in:
lib/bagit/info.rb

Constant Summary collapse

@@bag_info_headers =
{
  agent: "Bag-Software-Agent",
  org: "Source-Organization",
  org_addr: "Organization-Address",
  contact_name: "Contact-Name",
  contact_phone: "Contact-Phone",
  contact_email: "Contact-Email",
  ext_desc: "External-Description",
  ext_id: "External-Identifier",
  size: "Bag-Size",
  group_id: "Bag-Group-Identifier",
  group_count: "Bag-Count",
  sender_id: "Internal-Sender-Identifier",
  int_desc: "Internal-Sender-Description",
  date: "Bagging-Date",
  oxum: "Payload-Oxum"
}

Instance Method Summary collapse

Instance Method Details

#bag_infoObject



27
28
29
30
31
# File 'lib/bagit/info.rb', line 27

def bag_info
  read_info_file bag_info_txt_file
rescue
  {}
end

#bag_info_txt_fileObject



23
24
25
# File 'lib/bagit/info.rb', line 23

def bag_info_txt_file
  File.join bag_dir, "bag-info.txt"
end

#bagitObject



45
46
47
# File 'lib/bagit/info.rb', line 45

def bagit
  read_info_file bagit_txt_file
end

#bagit_txt_fileObject



41
42
43
# File 'lib/bagit/info.rb', line 41

def bagit_txt_file
  File.join bag_dir, "bagit.txt"
end

#update_bag_dateObject



53
54
55
56
# File 'lib/bagit/info.rb', line 53

def update_bag_date
  hash["Bagging-Date"] = Date.today.strftime("%Y-%m-%d")
  write_bag_info(hash)
end

#write_bag_info(hash = {}) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/bagit/info.rb', line 33

def write_bag_info(hash = {})
  hash = bag_info.merge(hash)
  hash[@@bag_info_headers[:agent]] = "BagIt Ruby Gem (https://github.com/tipr/bagit)" if hash[@@bag_info_headers[:agent]].nil?
  hash[@@bag_info_headers[:date]] = Date.today.strftime("%Y-%m-%d") if hash[@@bag_info_headers[:date]].nil?
  hash[@@bag_info_headers[:oxum]] = payload_oxum
  write_info_file bag_info_txt_file, hash
end

#write_bagit(hash) ⇒ Object



49
50
51
# File 'lib/bagit/info.rb', line 49

def write_bagit(hash)
  write_info_file bagit_txt_file, hash
end