class NoteLister

Public Class Methods

new(notebook) click to toggle source
# File lib/notes_cli/services/note_lister.rb, line 6
def initialize(notebook)
  @notebook = notebook
end

Public Instance Methods

call() click to toggle source
# File lib/notes_cli/services/note_lister.rb, line 10
def call
  handle_errors
  return list if entries.any?

  empty_notebook_notification
end

Private Instance Methods

empty_notebook_notification() click to toggle source
# File lib/notes_cli/services/note_lister.rb, line 39
def empty_notebook_notification
  puts File.basename(current_workspace)
  puts '----------------'
  puts "#{@notebook} is empty"
end
entries() click to toggle source
# File lib/notes_cli/services/note_lister.rb, line 31
def entries
  @entries ||= {}.tap do |entries|
    Dir.glob(File.join(notes_folder, current_workspace, @notebook, '/*')).sort.each do |path|
      entries[File.basename(path)] = path
    end
  end
end
handle_errors() click to toggle source
# File lib/notes_cli/services/note_lister.rb, line 19
def handle_errors
  raise StandardError, 'no such notebook' unless notebook_exists?(@notebook)
end
list() click to toggle source
# File lib/notes_cli/services/note_lister.rb, line 23
def list
  max_spacing = entries.keys.max_by(&:length).size
  entries.each do |k, v|
    spacing = ' ' * (max_spacing - k.length)
    puts "#{k} #{spacing} #{v}"
  end
end