evertils 1.0.11 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 206974c6d6d876faed379c1f8d174c8e02f1af89410960b5a0759a2ba988c0ee
4
- data.tar.gz: 2a56984a7e1757992e811652c9ba989060943a2d99bf943dd318dfdfcf58a628
3
+ metadata.gz: 99e8ad314c474633e6107fb99dd66364cab9d8a2f38ae36e461c07cae6a2a842
4
+ data.tar.gz: 94cff8759a0cac2568fc06f59205870225d7b9f9e76c8f5c37ad3bccfa299f62
5
5
  SHA512:
6
- metadata.gz: 1cb7bf54cf9a60deb6959c37a053a031f4d406950a619fd784d987d5866a2208827ffdc451f1191d2c043734ce9847255786940754a1abfbcfc6d2df33647982
7
- data.tar.gz: c85ea5dab302bbdd7c0f6abd3d6c7eccbaccb9360cea96e517b7190a9fe052ace959a0ebbd2ceb9714668110221ca5009dd3b098ddd0b652d0c29f9728c2a12e
6
+ metadata.gz: d0a4d0c5ccb9461475e0c975515c0cdaddd13250ba10631504ac861f3729acf218361a86e5d6daeb037f779cd53a3bf8bd6d131a41a6dec4bc9ce503f882dcd0
7
+ data.tar.gz: 29e50ce9b59a4be5a41fe9288b4d465d13abb20422094487e7df9bdecccbd6f25fb22a8dda22cef551ec1c40239b53177b464ec3104d4b134ad184aacedd08ee
@@ -5,7 +5,6 @@ module Evertils
5
5
  super
6
6
 
7
7
  @note_helper = Evertils::Helper.load('Note')
8
- @search_grammar = Evertils::Helper.load('SearchGrammar')
9
8
  @api_helper = Evertils::Helper.load('ApiEnmlHandler', @config)
10
9
  end
11
10
 
@@ -13,16 +12,7 @@ module Evertils
13
12
  def message(text = nil)
14
13
  return Notify.error('A message is required') if text.nil?
15
14
 
16
- # TODO: should be an object instead of arbitrary hash
17
- criteria = {
18
- notebook: :Daily,
19
- tags: {
20
- day: Date.today.yday
21
- },
22
- created: Date.new(Date.today.year, 1, 1).strftime('%Y%m%d')
23
- }
24
-
25
- note = @note_helper.wait_for_with_grammar(criteria)
15
+ note = @note_helper.find_note_by_grammar(grammar.to_s)
26
16
 
27
17
  return Notify.error('Note not found') if note.entity.nil?
28
18
 
@@ -31,6 +21,17 @@ module Evertils
31
21
 
32
22
  private
33
23
 
24
+ def grammar
25
+ terms = Grammar.new
26
+ terms.tags = {
27
+ day: Date.today.yday,
28
+ week: Date.today.cweek
29
+ }
30
+ terms.notebook = :Daily
31
+ terms.created = Date.new(Date.today.year, 1, 1).strftime('%Y%m%d')
32
+ terms
33
+ end
34
+
34
35
  # Update a note with content
35
36
  def modify(note, text)
36
37
  xml = @api_helper.from_str(note.entity.content)
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Evertils
4
+ class Grammar
5
+ attr_accessor :tags, :notebook, :created
6
+
7
+ # Available grammars
8
+ # https://dev.evernote.com/doc/articles/search_grammar.php
9
+ # @since 1.0.12
10
+ def initialize
11
+ @tags = []
12
+ @grammar = []
13
+ @notebook = nil
14
+ @created = Date.today.strftime('%Y%m%d')
15
+ end
16
+
17
+ #
18
+ # @since 1.0.12
19
+ def to_s
20
+ stringify_properties
21
+ stringify_tags unless @tags.empty?
22
+
23
+ @grammar.join(' ')
24
+ end
25
+
26
+ private
27
+
28
+ #
29
+ # @since 1.0.12
30
+ def stringify_tags
31
+ @tags.each_pair do |k, v|
32
+ @grammar.push("tag:#{k}-#{v}")
33
+ end
34
+ end
35
+
36
+ #
37
+ # @since 1.0.12
38
+ def stringify_properties
39
+ # automatically convert the non-hash properties to EN grammar key/value
40
+ # pairs
41
+ grammars_used = methods - Object.instance_methods
42
+ grammars_used.reject! { |k, _| k.to_s.end_with?('=') || k == :tags }
43
+
44
+ grammars_used.each do |grammar|
45
+ @grammar.push("#{grammar}:#{send(grammar)}")
46
+ end
47
+ end
48
+ end
49
+ end
@@ -7,23 +7,20 @@ module Evertils
7
7
  def initialize
8
8
  @model = Evertils::Common::Query::Simple.new
9
9
  @format = Evertils::Helper.load('Formatting')
10
- @search_grammar = Evertils::Helper.load('SearchGrammar')
11
10
  @user = @model.user_info[:user]
12
11
  @shard = @model.user_info[:shard]
13
12
  end
14
13
 
15
- def wait_for_with_grammar(conf, iterations = Evertils::Type::Base::MAX_SEARCH_SIZE)
16
- grammar = @search_grammar.from(conf)
14
+ def wait_for_with_grammar(grammar, iterations = Evertils::Type::Base::MAX_SEARCH_SIZE)
17
15
  Notify.info("Searching with grammar #{grammar}")
18
- note = find_note_by_grammar(grammar)
16
+ note = find_note_by_grammar(grammar.to_s)
19
17
 
20
18
  begin
21
19
  if note.entity.nil?
22
20
  (1..iterations).each do |iter|
23
- conf[:tags][:day] -= 1
24
- grammar = @search_grammar.from(conf)
21
+ grammar.tags[:day] -= 1
25
22
  Notify.info(" (#{iter}) Looking for #{grammar}")
26
- note = find_note_by_grammar(grammar, true)
23
+ note = find_note_by_grammar(grammar.to_s, true)
27
24
 
28
25
  break unless note.entity.nil? || iter == Evertils::Type::Base::MAX_SEARCH_SIZE
29
26
  end
@@ -1,3 +1,3 @@
1
1
  module Evertils
2
- VERSION = '1.0.11'.freeze
2
+ VERSION = '1.0.12'.freeze
3
3
  end
data/lib/evertils.rb CHANGED
@@ -28,7 +28,6 @@ require 'evertils/actions/duplicate_previous'
28
28
  require 'evertils/helpers/time'
29
29
  require 'evertils/helpers/results'
30
30
  require 'evertils/helpers/api-enml-handler'
31
- require 'evertils/helpers/search-grammar'
32
31
  require 'evertils/gpg_exception'
33
32
  require 'evertils/yubikey_exception'
34
33
  require 'evertils/required_check_exception'
@@ -42,6 +41,7 @@ require 'evertils/helpers/formatting'
42
41
  require 'evertils/helpers/evernote-enml'
43
42
  require 'evertils/helpers/note'
44
43
  require 'evertils/helpers/xml'
44
+ require 'evertils/grammar'
45
45
 
46
46
  module Evertils
47
47
  # Flag to determine if module is running in test mode
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evertils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
4
+ version: 1.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Priebe
@@ -131,6 +131,7 @@ files:
131
131
  - lib/evertils/controllers/new.rb
132
132
  - lib/evertils/controllers/render.rb
133
133
  - lib/evertils/gpg_exception.rb
134
+ - lib/evertils/grammar.rb
134
135
  - lib/evertils/helper.rb
135
136
  - lib/evertils/helpers/api-enml-handler.rb
136
137
  - lib/evertils/helpers/evernote-enml.rb
@@ -138,7 +139,6 @@ files:
138
139
  - lib/evertils/helpers/formatting.rb
139
140
  - lib/evertils/helpers/note.rb
140
141
  - lib/evertils/helpers/results.rb
141
- - lib/evertils/helpers/search-grammar.rb
142
142
  - lib/evertils/helpers/time.rb
143
143
  - lib/evertils/helpers/xml.rb
144
144
  - lib/evertils/kernel.rb
@@ -1,29 +0,0 @@
1
- module Evertils
2
- module Helper
3
- class SearchGrammar
4
- def from(conf)
5
- @configuration = conf
6
- @grammar = []
7
-
8
- fix_standard_grammar
9
- fix_tags if @configuration.include?(:tags)
10
-
11
- @grammar.join(' ')
12
- end
13
-
14
- private
15
-
16
- def fix_tags
17
- @configuration[:tags].each_pair do |k, v|
18
- @grammar.push("tag:#{k}-#{v}")
19
- end
20
- end
21
-
22
- def fix_standard_grammar
23
- @configuration.each_pair do |k, v|
24
- @grammar.push("#{k}:#{v}") unless k == :tags
25
- end
26
- end
27
- end
28
- end
29
- end