evertils 0.3.6 → 0.3.7

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
  SHA1:
3
- metadata.gz: 613756ce620cb2f255b005b86da5e14357c2851c
4
- data.tar.gz: 4e1ced19ef5f23579fec39be7d0e939792c00195
3
+ metadata.gz: 6bf3d2b3c26ba0ece79f8aa12e697f5cd7edae75
4
+ data.tar.gz: 2fe5780fb6e21b93c3afb34f8dbd6f934f812f1c
5
5
  SHA512:
6
- metadata.gz: 16c384c2f9baa1580f9142126be48529e386afb0cb955bb6661876535b3bfb0c24eadbc50adf8ab8afe9d4e84118de56e9ee7d622559f9766467d648898f8bc1
7
- data.tar.gz: 0712a55cab72c0d843d9d69808aaaee89de92960814a1a73d798320941bbc47f1abd0b2a4a48b3102b7d56a6c7a836d8bd806cb3399f4c54891e6be4247c0efe
6
+ metadata.gz: 57861f7047caa63344d7a55f0f0a0f99a9d67d4d2f84463034a68ddf0633c09f4ec9b8aa7478ea0c28fb0057cdca6ee9fd38b581045e525bdc91c992bce83b36
7
+ data.tar.gz: c7ffdb0d40287f62da1ad3291b882e29af084b4276de62a8c1200e56a3e28e12b6b0b408d96d7dfdaa164becbc828895cd48a134d30123b1cdf7ba0e2b6b5465
data/bin/evertils CHANGED
@@ -18,23 +18,23 @@ require 'yaml'
18
18
  require 'nokogiri'
19
19
 
20
20
  # include required files
21
- require_relative '../lib/kernel.rb'
22
- require_relative '../lib/version.rb'
23
- require_relative '../lib/helpers/time.rb'
24
- require_relative '../lib/helpers/results.rb'
25
- require_relative '../lib/log.rb'
26
- require_relative '../lib/config.rb'
27
- require_relative '../lib/request.rb'
28
- require_relative '../lib/utils.rb'
29
- require_relative '../lib/logs.rb'
30
- require_relative '../lib/command.rb'
31
- require_relative '../lib/model_data.rb'
32
- require_relative '../lib/controller.rb'
33
- require_relative '../lib/router.rb'
34
- require_relative '../lib/model.rb'
35
- require_relative '../lib/helpers/formatting.rb'
36
- require_relative '../lib/helpers/evernote-enml.rb'
37
- require_relative '../lib/helper.rb'
21
+ require_relative '../lib/kernel'
22
+ require_relative '../lib/version'
23
+ require_relative '../lib/type'
24
+ require_relative '../lib/helpers/time'
25
+ require_relative '../lib/helpers/results'
26
+ require_relative '../lib/helpers/api-enml-handler'
27
+ require_relative '../lib/log'
28
+ require_relative '../lib/config'
29
+ require_relative '../lib/request'
30
+ require_relative '../lib/utils'
31
+ require_relative '../lib/logs'
32
+ require_relative '../lib/command'
33
+ require_relative '../lib/controller'
34
+ require_relative '../lib/router'
35
+ require_relative '../lib/helpers/formatting'
36
+ require_relative '../lib/helpers/evernote-enml'
37
+ require_relative '../lib/helper'
38
38
 
39
39
  # Modify configuration options here
40
40
  $config = Evertils::Cfg.new
data/lib/controller.rb CHANGED
@@ -7,11 +7,6 @@ module Evertils
7
7
 
8
8
  # Perform pre-run tasks
9
9
  def pre_exec
10
- # interface with the Evernote API so we can use it later
11
- @model = Evertils::Common::Query::Simple.new
12
-
13
- @format = Evertils::Helper.load('formatting')
14
-
15
10
  OptionParser.new do |opt|
16
11
  opt.banner = "#{Evertils::PACKAGE_NAME} controller command [...-flags]"
17
12
 
@@ -38,7 +33,6 @@ module Evertils
38
33
 
39
34
  # Determines if the command can execute
40
35
  def can_exec?(command = nil, name = nil)
41
- @model = Evertils::Model.const_get(command.capitalize).new rescue nil
42
36
  @helper = Evertils::Helper.const_get(command.capitalize).new rescue nil
43
37
  @methods_require_internet = []
44
38
 
@@ -1,16 +1,14 @@
1
+ require_relative '../types/priority-queue'
2
+ require_relative '../types/monthly-task-summary'
3
+ require_relative '../types/daily'
4
+ require_relative '../types/weekly'
5
+ require_relative '../types/monthly'
6
+
1
7
  module Evertils
2
8
  module Controller
3
9
  class Generate < Controller::Base
4
10
  attr_accessor :force, :start, :name
5
11
 
6
- # required user-created notebooks
7
- NOTEBOOK_DAILY = :Daily
8
- NOTEBOOK_WEEKLY = :Weekly
9
- NOTEBOOK_MONTHLY = :Monthly
10
- NOTEBOOK_DEPLOYMENT = :Deployments
11
- NOTEBOOK_MTS = :'Monthly Task Summaries'
12
- NOTEBOOK_PRIORITY_QUEUE = :'Priority Queue'
13
-
14
12
  def pre_exec
15
13
  @methods_require_internet.push(:daily, :weekly, :monthly, :mts)
16
14
 
@@ -27,160 +25,53 @@ module Evertils
27
25
 
28
26
  # generate daily notes
29
27
  def daily
30
- title = @format.date_templates[NOTEBOOK_DAILY]
31
- body = @format.template_contents(NOTEBOOK_DAILY)
32
- body += to_enml($config.custom_sections[NOTEBOOK_DAILY]) unless $config.custom_sections.nil?
33
- parent_notebook = NOTEBOOK_DAILY
34
-
35
- @model.create_note(title: title, body: body, parent_notebook: parent_notebook)
28
+ note = Type::Daily.new
29
+ note.create
36
30
  end
37
31
 
38
32
  # generate weekly notes
39
33
  def weekly
40
- title = @format.date_templates[NOTEBOOK_WEEKLY]
41
- body = @format.template_contents(NOTEBOOK_WEEKLY)
42
- body += to_enml($config.custom_sections[NOTEBOOK_WEEKLY]) unless $config.custom_sections.nil?
43
- parent_notebook = NOTEBOOK_WEEKLY
44
-
45
- note = @model.create_note(title: title, body: body, parent_notebook: parent_notebook)
46
-
47
- # BUG: inability to tag notes lies somewhere in evertils-common,
48
- # specifically in how note.tag works
49
- # As this is non-functional, lets not run it - commented out for now
50
- # tag_manager = Evertils::Common::Manager::Tag.instance
51
- # week_tag = tag_manager.find_or_create("week-#{Date.today.cweek}")
52
- # note.tag(week_tag.prop(:name))
34
+ note = Type::Weekly.new
35
+ note.create
53
36
  end
54
37
 
55
38
  # generate monthly notes
56
39
  def monthly
57
- title = @format.date_templates[NOTEBOOK_MONTHLY]
58
- body = @format.template_contents(NOTEBOOK_MONTHLY)
59
- body += to_enml($config.custom_sections[NOTEBOOK_MONTHLY]) unless $config.custom_sections.nil?
60
- parent_notebook = NOTEBOOK_MONTHLY
61
-
62
- note = @model.create_note(title: title, body: body, parent_notebook: parent_notebook)
63
-
64
- # BUG: inability to tag notes lies somewhere in evertils-common,
65
- # specifically in how note.tag works
66
- # As this is non-functional, lets not run it - commented out for now
67
- # tag_manager = Evertils::Common::Manager::Tag.instance
68
- # month_tag = tag_manager.find_or_create("month-#{Date.today.month}")
69
- # note.tag(month_tag.prop(:name))
40
+ note = Type::Monthly.new
41
+ note.create
70
42
  end
71
43
 
72
44
  # generate monthly task summary templates
73
45
  def mts
74
- Notify.error("Name argument is required", {}) if @name.nil?
46
+ Notify.error('Name argument is required', {}) if @name.nil?
75
47
 
76
- title = "#{@name} #{DateTime.now.strftime('%m-%Y')}"
77
- body = @format.template_contents(NOTEBOOK_MTS)
78
- body += to_enml($config.custom_sections[NOTEBOOK_MTS]) unless $config.custom_sections.nil?
79
- parent_notebook = NOTEBOOK_MTS
80
-
81
- # create the note from template
82
- mts_note = @model.create_note(title: title, body: body, parent_notebook: parent_notebook)
83
-
84
- # BUG: inability to tag notes lies somewhere in evertils-common,
85
- # specifically in how note.tag works
86
- # As this is non-functional, lets not run it - commented out for now
87
- # tag_manager = Evertils::Common::Manager::Tag.instance
88
- # month_tag = tag_manager.find_or_create("month-#{Date.today.month}")
89
- # mts_note.tag(month_tag.prop(:name))
90
-
91
- # TODO: commented out until support for multiple tags is added
92
- # client_tag = tag_manager.find_or_create(@name)
93
- # mts_note.tag(client_tag.prop(:name))
48
+ note = Type::MonthlyTaskSummary.new(@name)
49
+ note.create
94
50
  end
95
51
 
96
52
  # generate priority queue notes
97
53
  def pq
98
- if Date.today.monday?
99
- # get friday's note
100
- friday = (Date.today - 3)
101
- dow = @format.day_of_week(friday.strftime('%a'))
102
- note_title = "Queue For [#{friday.strftime('%B %-d')} - #{dow}]"
103
- found = @model.find_note_contents(note_title)
104
-
105
- raise "Queue was not found - #{friday.strftime('%B %-d')}" unless found
106
-
107
- title = @format.date_templates[NOTEBOOK_PRIORITY_QUEUE]
108
- content = prepare_enml(found.entity.content)
109
-
110
- @model.create_note(title: title, body: content, parent_notebook: NOTEBOOK_PRIORITY_QUEUE)
111
- elsif Date.today.tuesday?
112
- # find monday's note
113
- monday = (Date.today - 1)
114
- dow = @format.day_of_week(monday.strftime('%a'))
115
- monday_note_title = "Queue For [#{monday.strftime('%B %-d')} - #{dow}]"
116
- monday_note = @model.find_note_contents(monday_note_title)
117
-
118
- if !monday_note.entity.nil?
119
- note = monday_note.entity
120
- note.title = @format.date_templates[NOTEBOOK_PRIORITY_QUEUE]
121
- else
122
- # if it does not exist, get friday's note
123
- friday = (Date.today - 4)
124
- dow = @format.day_of_week(friday.strftime('%a'))
125
- note_title = "Queue For [#{friday.strftime('%B %-d')} - #{dow}]"
126
- note = @model.find_note_contents(note_title)
127
- end
128
-
129
- raise 'Queue was not found' unless note
130
-
131
- content = prepare_enml(note.content)
132
-
133
- @model.create_note(title: note.title, body: content, parent_notebook: NOTEBOOK_PRIORITY_QUEUE)
134
- else
135
- yest = (Date.today - 1)
136
- dow = @format.day_of_week(yest.strftime('%a'))
137
- yest_note_title = "Queue For [#{yest.strftime('%B %-d')} - #{dow}]"
138
- found = @model.find_note_contents(yest_note_title).entity
139
-
140
- raise "Queue was not found - #{yest.strftime('%B %-d')}" unless found
141
-
142
- title = @format.date_templates[NOTEBOOK_PRIORITY_QUEUE]
143
- content = prepare_enml(found.content)
144
- content += to_enml($config.custom_sections[NOTEBOOK_PRIORITY_QUEUE]) unless $config.custom_sections.nil?
145
-
146
- @model.create_note(title: title, body: content, parent_notebook: NOTEBOOK_PRIORITY_QUEUE)
147
- end
54
+ note = Type::PriorityQueue.new
55
+ note.create
148
56
  end
149
57
 
150
58
  # creates the notes required to start the day
151
59
  # - priority queue
152
60
  # - daily
153
- # - weekly (if today is Monday)
61
+ # - weekly (if today is Monday and there isn't a weekly log already)
62
+ # - monthly (if today is the 1st and there isn't a monthly log already)
154
63
  def morning
155
- pq
156
- daily
157
- weekly if Date.today.monday?
158
- end
159
-
160
- private
161
-
162
- #
163
- # @since 0.3.1
164
- def to_enml(hash)
165
- Evertils::Helper::EvernoteENML.with_list(hash)
166
- end
167
-
168
- #
169
- # @since 0.3.5
170
- def prepare_enml(content)
171
- # remove the xml declaration and DTD
172
- content = content.split("\n")
173
- content.shift(2)
64
+ pq = Type::PriorityQueue.new
65
+ pq.create
174
66
 
175
- xml = Nokogiri::XML::DocumentFragment.parse(content.join)
176
- note_xml = xml.search('en-note')
67
+ daily = Type::Daily.new
68
+ daily.create
177
69
 
178
- # remove <br> tags
179
- note_xml.search('br').each do |br|
180
- br.remove
181
- end
70
+ weekly = Type::Weekly.new
71
+ weekly.create if weekly.should_create?
182
72
 
183
- note_xml.inner_html().to_s
73
+ monthly = Type::Monthly.new
74
+ monthly.create if monthly.should_create?
184
75
  end
185
76
  end
186
77
  end
data/lib/helper.rb CHANGED
@@ -2,8 +2,8 @@ module Evertils
2
2
  module Helper
3
3
  def self.load(klass, args = nil)
4
4
  begin
5
- klass_instance = Evertils::Helper.const_get(klass.capitalize)
6
-
5
+ klass_instance = Evertils::Helper.const_get(klass)
6
+
7
7
  if klass_instance
8
8
  if args.nil?
9
9
  klass_instance.new
@@ -0,0 +1,46 @@
1
+ module Evertils
2
+ module Helper
3
+ class ApiEnmlHandler
4
+ #
5
+ # @since 0.3.7
6
+ def initialize(enml = nil)
7
+ convert_to_xml(enml) if enml
8
+ self
9
+ end
10
+
11
+ #
12
+ # @since 0.3.7
13
+ def convert_to_xml(enml)
14
+ # remove the xml declaration and DTD
15
+ enml = enml.split("\n")
16
+ enml.shift(2)
17
+
18
+ @xml = Nokogiri::XML::DocumentFragment.parse(enml.join)
19
+ self
20
+ end
21
+
22
+ #
23
+ # @since 0.3.5
24
+ def prepare
25
+ note_xml = @xml.search('en-note')
26
+
27
+ # remove <br> tags
28
+ note_xml.search('br').each(&:remove)
29
+
30
+ enml = note_xml.inner_html.to_s
31
+
32
+ # append custom sections to the end of the content if they exist
33
+ return enml if $config.custom_sections.nil?
34
+
35
+ enml += to_enml($config.custom_sections[NOTEBOOK_PRIORITY_QUEUE])
36
+ enml
37
+ end
38
+
39
+ #
40
+ # @since 0.3.1
41
+ def to_enml(hash)
42
+ Evertils::Helper::EvernoteENML.with_list(hash)
43
+ end
44
+ end
45
+ end
46
+ end
data/lib/router.rb CHANGED
@@ -17,24 +17,6 @@ module Evertils
17
17
  if context.can_exec? $request.controller, $request.command
18
18
  context.pre_exec
19
19
 
20
- # no command sent? Use default to populate model data
21
- model_method = ($request.command ? $request.command : context.default_method).to_s + "_data"
22
-
23
- # populate model data
24
- method = context.model.public_method(model_method) rescue false
25
-
26
- # model is not set, use Base model instead so the controller still has
27
- # access to model methods
28
- if context.model.nil?
29
- context.model = Model::Base.new
30
- end
31
-
32
- # If the method exists, set model data accordingly
33
- # If it doesn't exist then just fail silently, the model may not
34
- # be required by some controllers
35
- if method.respond_to? :call
36
- context.model.data = method.call($request.custom || [])
37
- end
38
20
 
39
21
  if context.methods_require_internet.include? $request.command
40
22
  if !Utils.has_internet_connection?
data/lib/type.rb ADDED
@@ -0,0 +1,35 @@
1
+ module Evertils
2
+ module Type
3
+ class Base
4
+ #
5
+ # @since 0.3.7
6
+ def initialize(*args)
7
+ @model = Evertils::Common::Query::Simple.new
8
+ @format = Evertils::Helper.load('Formatting')
9
+ @args = args unless args.size.zero?
10
+ end
11
+
12
+ #
13
+ # @since 0.3.7
14
+ def create
15
+ data = {
16
+ title: @title,
17
+ body: @content,
18
+ parent_notebook: self.class::NOTEBOOK
19
+ }
20
+
21
+ raise 'Invalid title' if @title.nil?
22
+ raise 'Invalid note content' if @content.nil?
23
+ raise 'Invalid notebook' if self.class::NOTEBOOK.nil?
24
+
25
+ @model.create_note(data)
26
+ end
27
+
28
+ #
29
+ # @since 0.3.7
30
+ def should_create?
31
+ raise 'Should be overwritten in sub classes'
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,19 @@
1
+ module Evertils
2
+ module Type
3
+ class Daily < Type::Base
4
+ attr_reader :title, :content, :notebook
5
+
6
+ NOTEBOOK = :Daily
7
+
8
+ #
9
+ # @since 0.3.7
10
+ def initialize
11
+ super
12
+
13
+ @title = @format.date_templates[NOTEBOOK]
14
+ @content = @format.template_contents(NOTEBOOK)
15
+ @content += to_enml($config.custom_sections[NOTEBOOK]) unless $config.custom_sections.nil?
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,37 @@
1
+ module Evertils
2
+ module Type
3
+ class MonthlyTaskSummary < Type::Base
4
+ attr_reader :title, :content, :notebook
5
+
6
+ NOTEBOOK = :'Monthly Task Summaries'
7
+
8
+ #
9
+ # @since 0.3.7
10
+ def initialize(*args)
11
+ super(*args)
12
+
13
+ @name = @args.first
14
+ @title = "#{@name} #{DateTime.now.strftime('%m-%Y')}"
15
+ @content = @format.template_contents(NOTEBOOK)
16
+ @content += to_enml($config.custom_sections[NOTEBOOK]) unless $config.custom_sections.nil?
17
+
18
+ # BUG: inability to tag notes lies somewhere in evertils-common,
19
+ # specifically in how note.tag works
20
+ # As this is non-functional, lets not run it - commented out for now
21
+ # tag_manager = Evertils::Common::Manager::Tag.instance
22
+ # month_tag = tag_manager.find_or_create("month-#{Date.today.month}")
23
+ # mts_note.tag(month_tag.prop(:name))
24
+
25
+ # TODO: commented out until support for multiple tags is added
26
+ # client_tag = tag_manager.find_or_create(@name)
27
+ # mts_note.tag(client_tag.prop(:name))
28
+ end
29
+
30
+ #
31
+ # @since 0.3.7
32
+ def notebook
33
+ NOTEBOOK
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,37 @@
1
+ module Evertils
2
+ module Type
3
+ class Monthly < Type::Base
4
+ attr_reader :title, :content, :notebook
5
+
6
+ NOTEBOOK = :Monthly
7
+
8
+ #
9
+ # @since 0.3.7
10
+ def initialize
11
+ super
12
+
13
+ @title = @format.date_templates[NOTEBOOK]
14
+ @content = @format.template_contents(NOTEBOOK)
15
+ @content += to_enml($config.custom_sections[NOTEBOOK]) unless $config.custom_sections.nil?
16
+
17
+ # BUG: inability to tag notes lies somewhere in evertils-common,
18
+ # specifically in how note.tag works
19
+ # As this is non-functional, lets not run it - commented out for now
20
+ # tag_manager = Evertils::Common::Manager::Tag.instance
21
+ # month_tag = tag_manager.find_or_create("month-#{Date.today.month}")
22
+ # note.tag(month_tag.prop(:name))
23
+ end
24
+
25
+ #
26
+ # @since 0.3.7
27
+ def should_create?
28
+ today_is_first_of_month = Date.today.day == 1
29
+
30
+ monthly_note_title = @format.date_templates[NOTEBOOK]
31
+ found = @model.find_note_contents(monthly_note_title)
32
+
33
+ !found.entity.nil? && today_is_first_of_month
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,86 @@
1
+ module Evertils
2
+ module Type
3
+ class PriorityQueue < Type::Base
4
+ attr_reader :title, :content, :notebook
5
+
6
+ NOTEBOOK = :'Priority Queue'
7
+
8
+ #
9
+ # @since 0.3.7
10
+ def initialize
11
+ super
12
+
13
+ @handler = Evertils::Helper.load('ApiEnmlHandler')
14
+
15
+ if Date.today.monday?
16
+ @title, @content = condition_monday
17
+ elsif Date.today.tuesday?
18
+ @title, @content = condition_tuesday
19
+ else
20
+ @title, @content = condition_default
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ # Get friday's note
27
+ # @since 0.3.7
28
+ def condition_monday
29
+ friday = (Date.today - 3)
30
+ dow = @format.day_of_week(friday.strftime('%a'))
31
+ note_title = "Queue For [#{friday.strftime('%B %-d')} - #{dow}]"
32
+ found = @model.find_note_contents(note_title)
33
+
34
+ raise "Queue was not found - #{friday.strftime('%B %-d')}" unless found
35
+
36
+ [
37
+ @format.date_templates[NOTEBOOK],
38
+ @handler.convert_to_xml(found.entity.content).prepare
39
+ ]
40
+ end
41
+
42
+ # Find monday's note
43
+ # @since 0.3.7
44
+ def condition_tuesday
45
+ monday = (Date.today - 1)
46
+ dow = @format.day_of_week(monday.strftime('%a'))
47
+ monday_note_title = "Queue For [#{monday.strftime('%B %-d')} - #{dow}]"
48
+ monday_note = @model.find_note_contents(monday_note_title)
49
+
50
+ if !monday_note.entity.nil?
51
+ note = monday_note.entity
52
+ note.title = @format.date_templates[NOTEBOOK]
53
+ else
54
+ # if it does not exist, get friday's note
55
+ friday = (Date.today - 4)
56
+ dow = @format.day_of_week(friday.strftime('%a'))
57
+ note_title = "Queue For [#{friday.strftime('%B %-d')} - #{dow}]"
58
+ note = @model.find_note_contents(note_title)
59
+ end
60
+
61
+ raise 'Queue was not found' unless note
62
+
63
+ [
64
+ note.title,
65
+ @handler.convert_to_xml(note.content).prepare
66
+ ]
67
+ end
68
+
69
+ # Default action for not-Monday/Tuesday
70
+ # @since 0.3.7
71
+ def condition_default
72
+ yest = (Date.today - 1)
73
+ dow = @format.day_of_week(yest.strftime('%a'))
74
+ yest_note_title = "Queue For [#{yest.strftime('%B %-d')} - #{dow}]"
75
+ found = @model.find_note_contents(yest_note_title).entity
76
+
77
+ raise "Queue was not found - #{yest.strftime('%B %-d')}" unless found
78
+
79
+ [
80
+ @format.date_templates[NOTEBOOK],
81
+ @handler.convert_to_xml(found.content).prepare
82
+ ]
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,38 @@
1
+ module Evertils
2
+ module Type
3
+ class Weekly < Type::Base
4
+ attr_reader :title, :content, :notebook
5
+
6
+ NOTEBOOK = :Weekly
7
+
8
+ #
9
+ # @since 0.3.7
10
+ def initialize
11
+ super
12
+
13
+ @title = @format.date_templates[NOTEBOOK]
14
+ @content = @format.template_contents(NOTEBOOK)
15
+ @content += to_enml($config.custom_sections[NOTEBOOK]) unless $config.custom_sections.nil?
16
+
17
+ # BUG: inability to tag notes lies somewhere in evertils-common,
18
+ # specifically in how note.tag works
19
+ # As this is non-functional, lets not run it - commented out for now
20
+ # tag_manager = Evertils::Common::Manager::Tag.instance
21
+ # week_tag = tag_manager.find_or_create("week-#{Date.today.cweek}")
22
+ # note.tag(week_tag.prop(:name))
23
+ end
24
+
25
+ #
26
+ # @since 0.3.7
27
+ def should_create?
28
+ today = Date.today
29
+ is_monday = today.monday?
30
+
31
+ weekly_note_title = @format.date_templates[NOTEBOOK]
32
+ found = @model.find_note_contents(weekly_note_title)
33
+
34
+ !found.entity.nil? && is_monday
35
+ end
36
+ end
37
+ end
38
+ end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Evertils
2
- VERSION = '0.3.6'.freeze
2
+ VERSION = '0.3.7'.freeze
3
3
  end
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: 0.3.6
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Priebe
@@ -122,19 +122,23 @@ files:
122
122
  - lib/controllers/new.rb
123
123
  - lib/controllers/status.rb
124
124
  - lib/helper.rb
125
+ - lib/helpers/api-enml-handler.rb
125
126
  - lib/helpers/evernote-enml.rb
126
127
  - lib/helpers/evernote-markdown.rb
127
128
  - lib/helpers/formatting.rb
128
- - lib/helpers/generate.rb
129
129
  - lib/helpers/results.rb
130
130
  - lib/helpers/time.rb
131
131
  - lib/kernel.rb
132
132
  - lib/log.rb
133
133
  - lib/logs.rb
134
- - lib/model.rb
135
- - lib/model_data.rb
136
134
  - lib/request.rb
137
135
  - lib/router.rb
136
+ - lib/type.rb
137
+ - lib/types/daily.rb
138
+ - lib/types/monthly-task-summary.rb
139
+ - lib/types/monthly.rb
140
+ - lib/types/priority-queue.rb
141
+ - lib/types/weekly.rb
138
142
  - lib/utils.rb
139
143
  - lib/version.rb
140
144
  - logs/.gitignore
@@ -1,39 +0,0 @@
1
- module Evertils
2
- module Helper
3
- class Generate
4
- def self.format_date(title)
5
- if title =~ /Daily/
6
- resp = /Daily Log \[([A-Z].*) \- [A-Z]\]/.match(title)
7
-
8
- if resp
9
- Time.parse($1)
10
- end
11
- elsif title =~ /Weekly/
12
- resp = /Weekly Log \[([A-Z].*) (\d+) \- (\d+)\]/.match(title)
13
-
14
- if resp
15
- first = Time.parse($1 +" "+ $2)
16
- second = Time.parse($1 +" "+ $3)
17
-
18
- [first, second]
19
- end
20
- elsif title =~ /Monthly/
21
- resp = /Monthly Log \[([A-Z].*) (\d+)\]/.match(title)
22
-
23
- if resp
24
- Time.parse($1 +" "+ $2)
25
- end
26
- elsif title =~ /Quarterly/
27
- resp = /Quarterly Log \[([A-Z].*) \- ([A-Z].*) (\d+)\]/.match(title)
28
-
29
- if resp
30
- first = Time.parse($1 +" "+ $3)
31
- second = Time.parse($2 +" "+ $3)
32
-
33
- [first, second]
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
data/lib/model.rb DELETED
@@ -1,26 +0,0 @@
1
- module Evertils
2
- module Model
3
- class Base
4
- attr_accessor :data, :branch, :browser, :command, :start
5
-
6
- def initialize(hash = nil)
7
- @data = hash || Evertils::Model::Data.new
8
-
9
- # Current time
10
- #@time = @data.start
11
- # Time the command was executed
12
- @start = Time.now
13
- # Current working branch
14
- @branch = @data.branch
15
- # Browser to execute tests in
16
- @browser = @data.browser
17
- # Instantiate the command execution class
18
- @command = Command::Exec.new
19
- end
20
-
21
- def bind(hash)
22
- initialize(hash)
23
- end
24
- end
25
- end
26
- end
data/lib/model_data.rb DELETED
@@ -1,97 +0,0 @@
1
- module Evertils
2
- module Model
3
- class Data
4
- attr_accessor :identifier, :branch, :browser, :files_with_errors
5
-
6
- def initialize()
7
- @d = Hash.new([])
8
-
9
- # setup defaults
10
- defaults = {
11
- :issues => {:errors => 0, :warnings => 0},
12
- :status => {:success => 0, :error => 0, :total => 0, :errors_per_file => 0},
13
- :success_rate => {:int => 0, :str => "0%"},
14
- :log => '',
15
- :below_acceptable_limit => false
16
- }
17
-
18
- @branch = Command::Exec.git_current_branch
19
- @files_with_errors = []
20
-
21
- @d.merge! defaults
22
- end
23
-
24
- def unset(key)
25
- @d.delete(key.to_sym)
26
- end
27
-
28
- def instance_var(key, val = nil)
29
- self.class.__send__(:attr_accessor, key)
30
- instance_variable_set("@#{key}", val)
31
- end
32
-
33
- def serialize
34
- @d.to_json
35
- end
36
-
37
- def status
38
- get(:status)
39
- end
40
-
41
- def success_rate
42
- get(:success_rate)
43
- end
44
-
45
- def increment_issues(key, val)
46
- @d[:issues][key.to_sym] += val
47
- end
48
-
49
- def increment_status(key, val)
50
- @d[:status][key.to_sym] += val
51
- end
52
-
53
- def issues
54
- get(:issues)
55
- end
56
-
57
- def issues=(val)
58
- set(:issues, val)
59
- end
60
-
61
- def log
62
- get(:log, Evertils::DEFAULT_LOG)
63
- end
64
-
65
- def add_to_error_list(file)
66
- @files_with_errors << file
67
- end
68
-
69
- def identifier=(val)
70
- @identifier = val
71
-
72
- # create the log file now
73
- @d[:log] = Log.new(@branch, Time.now, @identifier)
74
- end
75
-
76
- def below_acceptable_limit?
77
- get(:below_acceptable_limit) == true
78
- end
79
-
80
- def below_acceptable_limit=(val)
81
- set(:below_acceptable_limit, val)
82
- end
83
-
84
- def bind!(seed_data)
85
- @d = seed_data
86
- end
87
-
88
- def get(key, default = @d.default)
89
- @d[key] || default
90
- end
91
-
92
- def set(key, val = nil)
93
- @d[key] = val
94
- end
95
- end
96
- end
97
- end