class Klipbook::Sources::KindleDevice::FileParser

Public Class Methods

new(entry_parser=EntryParser.new) click to toggle source
# File lib/klipbook/sources/kindle_device/file_parser.rb, line 7
def initialize(entry_parser=EntryParser.new)
  @entry_parser = entry_parser
end

Public Instance Methods

extract_entries(file_text) click to toggle source
# File lib/klipbook/sources/kindle_device/file_parser.rb, line 11
def extract_entries(file_text)
  entries_text = split_into_raw_entries_text(file_text)

  build_entries(entries_text)
end

Private Instance Methods

build_entries(entries_text) click to toggle source
# File lib/klipbook/sources/kindle_device/file_parser.rb, line 19
def build_entries(entries_text)
  entries_text.map do |entry_text|
    @entry_parser.build_entry(entry_text)
  end.compact
end
split_into_raw_entries_text(file_text) click to toggle source
# File lib/klipbook/sources/kindle_device/file_parser.rb, line 29
def split_into_raw_entries_text(file_text)
  strip_control_characters(file_text).split('==========')
end
strip_control_characters(file_text) click to toggle source
# File lib/klipbook/sources/kindle_device/file_parser.rb, line 25
def strip_control_characters(file_text)
  file_text.gsub("\r", '').gsub("\xef\xbb\xbf", '')
end