reminders_txt 0.4.4 → 0.5.0

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: 9513ff78ef31666123db5eafd6fd822eb4e6ca78968af6221a553732722769c5
4
- data.tar.gz: 256e3164ddeb056dda7d0bc311e671e1452e651e777a0b857bbc26ad2b78f094
3
+ metadata.gz: 82d43b528dbfbaf1fe0db1f39201ee83b132df59d915c130fc6fb743994cc02d
4
+ data.tar.gz: 6d7081ca6905ab0acb4149e7b65e632f5047b9cc1ce62750749c5b7222179fac
5
5
  SHA512:
6
- metadata.gz: e2c045a6a21042f716e794e6737a96725ce5f2a1b82007c10bd53d6dac00603a59b6fb2253ef0ed49fb4caf0e110a0d05932539f980ca2c54805ce8c1ec51be2
7
- data.tar.gz: d557e5713f2060525148ee76de09a3599f84a42d5f4e1e6972c3d88e460d52068800bea24d6c294bca54bea9d87345ee59d800950ed982ae2a6be026f110f8da
6
+ metadata.gz: f6a26f7f3fb6e13f543923ea85ccb33b6ba1e4198c50942db1a9280d5a615b7d80704bb73ae5578b0658c43805f74317c60967f951b1754ab80c6b64261c95cf
7
+ data.tar.gz: 894912a616fa45da1bc71bff611be87ff4543f2f0686b28e38bd20e768c77d16a3a57731f7d377fa0f2a7d1f45201df6e56309b71a7a8c199e3ef0bf207226ea
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -8,13 +8,27 @@ require 'event_nlp'
8
8
  require 'digest/md5'
9
9
 
10
10
 
11
+ module Ordinal
12
+ refine Integer do
13
+
14
+ def ordinal
15
+ self.to_s + ( (10...20).include?(self) ? 'th' :
16
+ %w{ th st nd rd th th th th th th }[self % 10] )
17
+ end
18
+
19
+ end
20
+ end
21
+
22
+
11
23
  class RemindersTxtException < Exception
12
24
 
13
25
 
14
26
  end
15
27
 
16
- class RemindersTxt
17
28
 
29
+ class RemindersTxt
30
+ using ColouredText
31
+ include RXFHelperModule
18
32
 
19
33
  attr_reader :reminders, :dx
20
34
 
@@ -24,7 +38,7 @@ class RemindersTxt
24
38
 
25
39
  @now, @debug = now, debug
26
40
 
27
- puts '@now: ' + @now.inspect if @debug
41
+ puts ('@now: ' + @now.inspect).debug if @debug
28
42
 
29
43
 
30
44
  @filepath = raw_s
@@ -48,7 +62,7 @@ class RemindersTxt
48
62
 
49
63
  elsif File.extname(@filepath) == '.txt'
50
64
 
51
- s = File.read @filepath
65
+ s = FileX.read @filepath
52
66
  @filename = File.basename(@filepath)
53
67
  @dxfilepath = @filepath.sub(/.txt$/,'.xml')
54
68
 
@@ -141,6 +155,7 @@ class RemindersTxt
141
155
  if (x.length > 1) then
142
156
 
143
157
  rx = EventNlp.new(@now, params: {input: x}).parse(x)
158
+ puts ('rx: ' + rx.inspect).debug if @debug
144
159
  r << rx if rx
145
160
  end
146
161
 
@@ -160,7 +175,7 @@ class RemindersTxt
160
175
  reminders = @reminders.clone
161
176
  # if XML file doesn't exist, create it
162
177
 
163
- if File.exists? @dxfilepath then
178
+ if FileX.exists? @dxfilepath then
164
179
 
165
180
  @dx = Dynarex.new @dxfilepath
166
181
 
@@ -216,7 +231,7 @@ class RemindersTxt
216
231
  if b or @reminders != reminders then
217
232
 
218
233
  save_dx()
219
- File.write File.join(File.dirname(@filepath), 'reminders.txt'), self.to_s
234
+ FileX.write File.join(File.dirname(@filepath), 'reminders.txt'), self.to_s
220
235
  @updated = true
221
236
  else
222
237
  puts 'no update'
@@ -252,7 +267,7 @@ class RemindersTxt
252
267
  end
253
268
 
254
269
  dx2 = Dynarex.new 'reminders/reminder(input, title, recurring, ' +
255
- 'date, end_date, info)'
270
+ 'date, end_date, venue, info)'
256
271
  dx2.import rows
257
272
  dx2.save File.join(filepath, 'reminder_details.xml')
258
273
 
@@ -261,7 +276,7 @@ class RemindersTxt
261
276
  def save_dx()
262
277
 
263
278
  @dx = Dynarex.new(
264
- 'reminders/reminder(input, title, recurring, date, end_date)')
279
+ 'reminders/reminder(input, title, recurring, date, end_date, venue)')
265
280
  @reminders.each {|x| @dx.create x.to_h}
266
281
  @dx.save @dxfilepath
267
282
 
@@ -271,3 +286,28 @@ class RemindersTxt
271
286
 
272
287
 
273
288
  end
289
+
290
+ class RemindersTxtVoice < RemindersTxt
291
+ using Ordinal
292
+
293
+ def weekahead()
294
+
295
+ s = super.all.map do |x|
296
+ date = DateTime.parse(x.date)
297
+ "you are at %s, on %s, at %s." % [(x.venue.empty? ? x.title : x.venue), \
298
+ format_date(date), date.strftime("%-I:%M%P")
299
+ ]
300
+ end.join(" Then ")
301
+
302
+ s.sub!(/^./){|x| x.upcase}
303
+
304
+ end
305
+
306
+ private
307
+
308
+ def format_date(date)
309
+ [Date::DAYNAMES[date.wday], 'the', date.day.ordinal, 'of',
310
+ Date::MONTHNAMES[date.month]].join(' ')
311
+ end
312
+
313
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reminders_txt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  U6f6HfP/6K9f602IeJGEDybVHYFQ7Ssl+AeclLBiMqy5HYuL7kRoD9C2D166GI42
36
36
  M4blonk3dgx08AvXnjoMsgqh
37
37
  -----END CERTIFICATE-----
38
- date: 2018-08-27 00:00:00.000000000 Z
38
+ date: 2019-03-09 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: dynarex
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '1.8'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.8.2
49
+ version: 1.8.17
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,7 +56,7 @@ dependencies:
56
56
  version: '1.8'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 1.8.2
59
+ version: 1.8.17
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: event_nlp
62
62
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +66,7 @@ dependencies:
66
66
  version: '0.5'
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 0.5.0
69
+ version: 0.5.1
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -76,27 +76,27 @@ dependencies:
76
76
  version: '0.5'
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: 0.5.0
79
+ version: 0.5.1
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: chronic_cron
82
82
  requirement: !ruby/object:Gem::Requirement
83
83
  requirements:
84
- - - "~>"
85
- - !ruby/object:Gem::Version
86
- version: '0.4'
87
84
  - - ">="
88
85
  - !ruby/object:Gem::Version
89
- version: 0.4.0
86
+ version: 0.5.0
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.5'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '0.4'
97
94
  - - ">="
98
95
  - !ruby/object:Gem::Version
99
- version: 0.4.0
96
+ version: 0.5.0
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '0.5'
100
100
  description:
101
101
  email: james@jamesrobertson.eu
102
102
  executables: []
@@ -123,8 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  requirements: []
126
- rubyforge_project:
127
- rubygems_version: 2.7.6
126
+ rubygems_version: 3.0.1
128
127
  signing_key:
129
128
  specification_version: 4
130
129
  summary: Reads and updates diary reminders from a plain text file
metadata.gz.sig CHANGED
Binary file