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



29
30
31
32
33
# File 'lib/bagit/info.rb', line 29

def bag_info
  read_info_file bag_info_txt_file
rescue
  {}
end

#bag_info_txt_fileObject



25
26
27
# File 'lib/bagit/info.rb', line 25

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

#bagitObject



47
48
49
# File 'lib/bagit/info.rb', line 47

def bagit
  read_info_file bagit_txt_file
end

#bagit_txt_fileObject



43
44
45
# File 'lib/bagit/info.rb', line 43

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

#update_bag_dateObject



55
56
57
58
# File 'lib/bagit/info.rb', line 55

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

#write_bag_info(hash = {}) ⇒ Object



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

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



51
52
53
# File 'lib/bagit/info.rb', line 51

def write_bagit(hash)
  write_info_file bagit_txt_file, hash
end