class Memot::Client
Public Class Methods
new(dropbox, evernote, logger)
click to toggle source
# File lib/memot/client.rb, line 3 def initialize(dropbox, evernote, logger) @dropbox = dropbox @evernote = evernote @logger = logger end
Public Instance Methods
save_to_evernote(dropbox_path, notebook, revision)
click to toggle source
# File lib/memot/client.rb, line 26 def save_to_evernote(dropbox_path, notebook, revision) note_body = Memot::Markdown.parse_markdown(dropbox.file_body_of(dropbox_path)) note_title = File.basename(dropbox_path) begin if (note_guid = evernote.get_note_guid(note_title, notebook)) == "" evernote.create_note(note_title, note_body, notebook) logger.info "Created: #{notebook}/#{note_title} (rev. #{revision})" else evernote.update_note(note_title, note_body, notebook, note_guid) logger.info "Updated: #{notebook}/#{note_title} (rev. #{revision})" end rescue Memot::EvernoteRateLimitReachedError => e sleep_interval = e.message.to_i + 60 logger.warn "Evernote rate limit exceeded, retry after #{sleep_interval} seconds." sleep sleep_interval retry end end
update(notes)
click to toggle source
# File lib/memot/client.rb, line 9 def update(notes) logger.info("Updating...") need_update = [] notes.each_pair do |notebook, dropbox_path| need_update << { notebook: notebook, updates: dropbox.parse_dir_tree!(dropbox_path) } end need_update.each do |update| notebook = update[:notebook].to_s update[:updates].each { |u| save_to_evernote(u[:dropbox_path], notebook, u[:revision]) } end logger.info("Finish") end
Private Instance Methods
dropbox()
click to toggle source
# File lib/memot/client.rb, line 49 def dropbox @dropbox end
evernote()
click to toggle source
# File lib/memot/client.rb, line 53 def evernote @evernote end
logger()
click to toggle source
# File lib/memot/client.rb, line 57 def logger @logger end