evertils 1.0.11 → 1.0.12

Sign up to get free protection for your applications and to get access to all the features.
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