lib/evertils/common/entity/notes.rb in evertils-common-0.3.1 vs lib/evertils/common/entity/notes.rb in evertils-common-0.3.2
- old
+ new
@@ -1,35 +1,38 @@
module Evertils
module Common
module Entity
class Notes < Entity::Base
+ #
+ # @since 0.3.2
+ def all(keyword)
+ find_all(keyword, nil, 1000)
+ end
- def find_all(title, notebook = nil)
- filter = ::Evernote::EDAM::NoteStore::NoteFilter.new
- filter.words = "intitle:#{title}" if title
- filter.notebookGuid = notebook if notebook
+ #
+ # @since 0.2.0
+ def find_all(title, notebook = nil, limit = 300)
+ filters = find_filters(title, notebook)
- spec = ::Evernote::EDAM::NoteStore::NotesMetadataResultSpec.new
- spec.includeTitle = true
-
- response = @evernote.call(:findNotesMetadata, filter, nil, 300, spec)
+ response = @evernote.call(:findNotesMetadata, filters, nil, limit, find_spec)
response.notes
end
alias_method :find, :find_all
+ #
+ # @since 0.2.0
def find_one(title, notebook = nil)
- filter = ::Evernote::EDAM::NoteStore::NoteFilter.new
- filter.words = "intitle:#{title}" if title
- filter.notebookGuid = notebook if notebook
+ filters = find_filters(title, notebook)
- spec = ::Evernote::EDAM::NoteStore::NotesMetadataResultSpec.new
- spec.includeTitle = true
+ response = @evernote.call(:findNotesMetadata, filters, nil, 10, find_spec)
- response = @evernote.call(:findNotesMetadata, filter, nil, 1, spec)
- response.notes
+ notes = response.notes.detect { |note| note.title == title }
+ notes
end
+ #
+ # @since 0.2.0
def find_by_tag(tag_name)
filter = ::Evernote::EDAM::NoteStore::NoteFilter.new
filter.words = "tag:#{tag_name}"
spec = ::Evernote::EDAM::NoteStore::NotesMetadataResultSpec.new
@@ -51,11 +54,11 @@
spec.includeUpdated = true
spec.includeCreated = true
pool = @evernote.call(:findNotesMetadata, filter, 0, 300, spec)
- notes_by_date = pool.notes.select do |note|
+ pool.notes.select do |note|
f = finish.to_time.to_i
s = start.to_time.to_i
n = note_date(note, period).to_time.to_i
n <= f && n >= s
@@ -73,19 +76,29 @@
spec.includeTitle = true
spec.includeUpdated = true
spec.includeCreated = true
pool = @evernote.call(:findNotesMetadata, filter, 0, 300, spec)
-
- notes_by_date = pool.notes.select do |note|
- d = date.to_time.to_i
- n = note_date(note, period).to_time.to_i
- n == d
+ pool.notes.select do |note|
+ n = note_date(note, period)
+
+ n.strftime('%m-%d-%Y') == date.strftime('%m-%d-%Y')
end
end
+ #
+ # @since 0.3.2
+ def find_by_filter(filter)
+ spec = ::Evernote::EDAM::NoteStore::NotesMetadataResultSpec.new
+ spec.includeTitle = true
+ spec.includeUpdated = true
+ spec.includeCreated = true
+
+ @evernote.call(:findNotesMetadata, filter, nil, 300, spec)
+ end
+
private
#
# @since 0.2.9
def year_diff(start_year)
@@ -95,13 +108,31 @@
return 1 if diff == 0 || start_year > curr_year
diff
end
+ #
+ # @since 0.2.0
def note_date(note, period)
DateTime.strptime(note.send(period).to_s[0...-3], '%s')
end
+ #
+ # @since 0.3.2
+ def find_filters(title, notebook)
+ filter = ::Evernote::EDAM::NoteStore::NoteFilter.new
+ filter.words = "intitle:#{title}" if title
+ filter.notebookGuid = notebook if notebook
+ filter
+ end
+
+ #
+ # @since 0.3.2
+ def find_spec
+ spec = ::Evernote::EDAM::NoteStore::NotesMetadataResultSpec.new
+ spec.includeTitle = true
+ spec
+ end
end
end
end
end
\ No newline at end of file