MacにインストールされているKindleアプリのデータから蔵書一覧を生成

kindle_books_mac.rb
require 'rexml/document'
require 'date'
require 'csv'
 
# Kindle for Mac
KINDLE_XML = "#{ENV['HOME']}/Library/Containers/com.amazon.Kindle/Data/Library/Application Support/Kindle/Cache/KindleSyncMetadataCache.xml"
 
doc = REXML::Document.new(File.read(KINDLE_XML))
 
csv = CSV.generate(force_quotes: true) do |csv|
  doc.elements.each("//response/add_update_list/meta_data") do |e|
    csv << [
            e.elements["ASIN"].text,
            e.elements["title"].text,
            e.elements["authors"].map{|item| item.text}.join('/'),
            e.elements["publishers"].map{|item| item.text}.join('/'),
            e.elements["publication_date"].text,
            e.elements["purchase_date"].text
    ]
  end
end
 
puts csv