class KindleCG::Ebook::Ebook

Public Class Methods

new(file) click to toggle source
# File lib/KindleCG/ebook/ebook.rb, line 17
def initialize(file)
  @file = file
  @metadata = initialize_metadata(file)
end

Public Instance Methods

hash() click to toggle source
# File lib/KindleCG/ebook/ebook.rb, line 22
def hash
  if @metadata.type && @metadata.asin
    "#%s^%s" % [@metadata.asin, @metadata.type]
  else
    folder = File.dirname(@file)
    filename = File.basename(@file)
    "*" + Digest::SHA1.hexdigest([KindleCG.device_mountpoint.to_path, folder.match(/(documents).*/)[0], filename].join("/"))
  end
end

Private Instance Methods

get_extension(file) click to toggle source
# File lib/KindleCG/ebook/ebook.rb, line 45
def get_extension(file)
  @_extension ||= File.basename(file).downcase.split('.')[-1]
end
initialize_metadata(file) click to toggle source
# File lib/KindleCG/ebook/ebook.rb, line 34
def initialize_metadata(file)
  case get_extension(file)
  when /(mobi|azw)/
    Mobi.new(file)
  when /(pdf)/
    Pdf.new(file)
  else
    raise EbookError, "Can't handle this book type"
  end
end