event_nlp 0.5.0 → 0.5.1

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: b8f102397207d428e347bb308b05ec13a95816e3e6c6e8d83eab6d95ba50619f
4
- data.tar.gz: 3c90203fe7a732e3877119b6986fbe63da8534555b692761f01ca50eed3ef52e
3
+ metadata.gz: 6cfeae1554c39f4b0829c15b6878a4214b45353b614ba1321540285980d9d722
4
+ data.tar.gz: 43502f60e11fd431026da2c82b303818f1ae98e973ed29e7b7cc0e254ae3030b
5
5
  SHA512:
6
- metadata.gz: ff2e3d465256a32fb5a03be23690f6a8115d5bf3045d59b621eb43dfc856d0efb018b4fcf8ed5fef766dc37f0a417607e02bd1ef2e25149be7e6b502a199af67
7
- data.tar.gz: 2f1c21235b869ce0815b4f5881c3f15dec7a070adf29a162a956bc166fedb1176d062b3f7c14452b671fa4359245637800ba5877eca5f821b713f1809db86e18
6
+ metadata.gz: 6d56b0824eabf0189b84a5284cf28470a36ed4ae255e79564ffcdb2d23b16e830458d82fccf97bc7fc80c0708f5535f7f3f969018f271a26f43112ba6027e0dc
7
+ data.tar.gz: 9b09a7ce76de7dc2fed5100e6cf16279901798b514e22303f239024a4e49e0a28dc22dc8972dd6adaa63180141caa5b8c67d46b2b0f324b862f6974c63ce2078
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -22,6 +22,7 @@ end
22
22
  class EventNlp
23
23
  include AppRoutes
24
24
  using Ordinals
25
+ using ColouredText
25
26
 
26
27
  attr_accessor :params
27
28
 
@@ -77,7 +78,7 @@ class EventNlp
77
78
 
78
79
 
79
80
  if @debug then
80
- puts [0.1, title, recurring, d].inspect
81
+ puts [0.1, title, recurring, d].inspect.debug
81
82
  end
82
83
 
83
84
  {title: title, recurring: recurring, date: d}
@@ -105,7 +106,7 @@ class EventNlp
105
106
  end
106
107
 
107
108
  if @debug then
108
- puts [0.2, input, title, recurring, time, raw_date, end_date].inspect
109
+ puts [0.2, input, title, recurring, time, raw_date, end_date].inspect.debug
109
110
  end
110
111
 
111
112
  {input: input, title: title, recurring: recurring, date: d,
@@ -135,7 +136,7 @@ class EventNlp
135
136
  end
136
137
  end
137
138
 
138
- puts [0.3, title, recurring, time, raw_date, end_date].inspect if @debug
139
+ puts [0.3, title, recurring, time, raw_date, end_date].inspect.debug if @debug
139
140
  {input: input, title: title, recurring: recurring, date: d, end_date:
140
141
  end_date}
141
142
 
@@ -158,7 +159,7 @@ class EventNlp
158
159
  start_date = Chronic.parse(raw_start_date, now: @now - 1,
159
160
  :endian_precedence => :little)
160
161
 
161
- puts 'start_date: ' + start_date.inspect if @debug
162
+ puts ('start_date: ' + start_date.inspect).debug if @debug
162
163
 
163
164
  if @now > start_date then
164
165
  exp = ChronicCron.new(recurring, start_date).to_expression
@@ -190,7 +191,7 @@ class EventNlp
190
191
  recurring[/(?<=-)\d+(?::\d+)?(?:[ap]m)?/]
191
192
  end
192
193
 
193
- puts [0.5, title, recurring, d].inspect if @debug
194
+ puts [0.5, title, recurring, d].inspect.debug if @debug
194
195
  {input: input, title: title.rstrip, recurring: recurring,
195
196
  date: d, end_date: end_date }
196
197
 
@@ -201,7 +202,7 @@ class EventNlp
201
202
  get /(.*)\s+(\w+ \w+day of (?:the|every) month at .*)/ do
202
203
  |title, recurring|
203
204
 
204
- puts [1, title, recurring].inspect if @debug
205
+ puts [1, title, recurring].inspect.debug if @debug
205
206
  { title: title, recurring: recurring }
206
207
 
207
208
  end
@@ -213,7 +214,7 @@ class EventNlp
213
214
 
214
215
  d = Chronic.parse(raw_day + ' ' + time)
215
216
 
216
- puts [1.5, title, raw_day, time].inspect if @debug
217
+ puts [1.5, title, raw_day, time].inspect.debug if @debug
217
218
  { title: title, date: d }
218
219
 
219
220
  end
@@ -224,9 +225,9 @@ class EventNlp
224
225
  relative_day = '|today|tomorrow|tonight'
225
226
  get /^(.*)\s+(#{weekdays2+relative_day})(?: \(([^\)]+)\)) (at \d{1,2}(?::\d{2})?(?:[ap]m)?)/i \
226
227
  do |title, raw_date, date2, time2|
227
- puts 'time2: ' + time2.inspect if @debug
228
- puts 'date2: ' + date2 if @debug
229
- puts 'raw_date: ' + raw_date if @debug
228
+ puts ('time2: ' + time2.inspect).debug if @debug
229
+ puts ('date2: ' + date2).debug if @debug
230
+ puts ('raw_date: ' + raw_date).debug if @debug
230
231
 
231
232
  d = if date2 then
232
233
  Chronic.parse(date2 + ' '+ time2.to_s)
@@ -234,7 +235,7 @@ class EventNlp
234
235
  Chronic.parse(raw_date + ' '+ time2)
235
236
  end
236
237
 
237
- puts [4, title, raw_date, date2, time2].inspect if @debug
238
+ puts [4, title, raw_date, date2, time2].inspect.debug if @debug
238
239
  {title: title, date: d }
239
240
 
240
241
  end
@@ -243,9 +244,11 @@ class EventNlp
243
244
  get /^(.*)\s+(#{times2})(?: on) +#{weekdays}(?: \(([^\)]+)\))?/i \
244
245
  do |title, xtimes, raw_day, actual_date|
245
246
 
246
- puts 'actual_date: ' + actual_date.inspect if @debug
247
- puts 'raw_day: ' + raw_day.inspect if @debug
248
- puts 'xtimes: ' + xtimes.inspect if @debug
247
+ if @debug then
248
+ puts ('actual_date: ' + actual_date.inspect).debug
249
+ puts ('raw_day: ' + raw_day.inspect).debug
250
+ puts ('xtimes: ' + xtimes.inspect).debug
251
+ end
249
252
 
250
253
  input = params[:input].clone
251
254
 
@@ -259,11 +262,11 @@ class EventNlp
259
262
 
260
263
  t1, t2 = xtimes.split(/-/,2)
261
264
 
262
- puts 'd: ' + d.inspect if @debug
265
+ puts ('d: ' + d.inspect).debug if @debug
263
266
 
264
267
  d1, d2 = [t1, t2].map {|t| Chronic.parse([d.to_date.to_s, t].join(' ')) }
265
268
 
266
- puts [4.65, input, title, raw_day, d1, d2].inspect if @debug
269
+ puts [4.65, input, title, raw_day, d1, d2].inspect.debug if @debug
267
270
 
268
271
  {input: input, title: title, date: d1, end_date: d2 }
269
272
 
@@ -274,9 +277,11 @@ class EventNlp
274
277
  get /^(.*)\s+#{weekdays}(?: \(([^\)]+)\))?(#{times})?/i \
275
278
  do |title, raw_day, actual_date, time|
276
279
 
277
- puts 'actual_date: ' + actual_date.inspect if @debug
278
- puts 'raw_day: ' + raw_day.inspect if @debug
279
- puts 'time: ' + time.inspect if @debug
280
+ if @debug then
281
+ puts ('actual_date: ' + actual_date.inspect).debug
282
+ puts ('raw_day: ' + raw_day.inspect).debug
283
+ puts ('time: ' + time.inspect).debug
284
+ end
280
285
 
281
286
  input = params[:input].clone
282
287
 
@@ -288,10 +293,9 @@ class EventNlp
288
293
  %Q(#{raw_day} (#{d.strftime("#{d.day.ordinal} %b %Y")})))
289
294
  end
290
295
 
291
- puts 'd: ' + d.inspect if @debug
292
-
296
+ puts ('d: ' + d.inspect).debug if @debug
293
297
 
294
- puts [1.7, input, title, raw_day].inspect if @debug
298
+ puts [1.7, input, title, raw_day].inspect.debug if @debug
295
299
 
296
300
  {input: input, title: title, date: d }
297
301
 
@@ -306,18 +310,32 @@ class EventNlp
306
310
  raw_time, :endian_precedence => :little)
307
311
  recurring = nil
308
312
 
309
- puts [3, title, raw_date].inspect if @debug
313
+ puts [3, title, raw_date].inspect.debug if @debug
310
314
  { title: title, date: d }
311
315
  end
312
316
 
317
+ # friday hall 2 11am until 12am
318
+ get /^#{weekdays}\s+(.*)\s+#{times} until #{times}$/i do \
319
+ |raw_day, title, start_time, end_time|
320
+
321
+ venue = title[/^at +(.*)/,1]
322
+ d = Chronic.parse(raw_day + ' ' + start_time)
323
+ d2 = Chronic.parse(raw_day + ' ' + end_time)
324
+
325
+ puts ['1.44.3', title, raw_day].inspect.debug if @debug
326
+ { title: title, date: d, end_date: d2, venue: venue }
327
+
328
+ end
329
+
313
330
  # friday hall 2 11am
314
331
  get /^#{weekdays}\s+(.*)\s+(\d+(?::\d{2})?[ap]m)$/i do \
315
332
  |raw_day, title, time|
316
333
 
334
+ venue = title[/^at +(.*)/,1]
317
335
  d = Chronic.parse(raw_day + ' ' + time)
318
336
 
319
- puts [1.44, title, raw_day].inspect if @debug
320
- { title: title, date: d }
337
+ puts [1.44, title, raw_day].inspect.debug if @debug
338
+ { title: title, date: d, venue: venue }
321
339
 
322
340
  end
323
341
 
@@ -327,7 +345,7 @@ class EventNlp
327
345
 
328
346
  d = Chronic.parse([day, month, time].join(' '))
329
347
 
330
- puts ['1.44.5', day, month, title].inspect if @debug
348
+ puts ['1.44.5', day, month, title].inspect.debug if @debug
331
349
  { title: title, date: d }
332
350
 
333
351
  end
@@ -354,7 +372,7 @@ class EventNlp
354
372
  end
355
373
 
356
374
 
357
- puts [3, title, raw_date, time].inspect if @debug
375
+ puts [3, title, raw_date, time].inspect.debug if @debug
358
376
  { title: title, date: d, recurring: recurring }
359
377
  end
360
378
 
@@ -370,9 +388,21 @@ class EventNlp
370
388
  d1 = Chronic.parse([month, day, t1].join(' '))
371
389
  d2 = Chronic.parse([month, day, t2].join(' '))
372
390
 
373
- puts [4.5, title, d1, d2].inspect if @debug
391
+ puts [4.5, title, d1, d2].inspect.debug if @debug
374
392
 
375
393
  { title: title, date: d1, end_date: d2 }
394
+ end
395
+
396
+ # e.g. Wednesday 30th Nov at 9:15 10 Woodhouse Lane
397
+
398
+ get /^(?:#{weekdays2}) #{days} #{months}(?: at)? #{times}(.*)/i do \
399
+ |day, month, t1, title|
400
+
401
+ d1 = Chronic.parse([month, day, t1].join(' '))
402
+
403
+ puts [4.6, title, d1].inspect.debug if @debug
404
+
405
+ { title: title, date: d1 }
376
406
  end
377
407
 
378
408
  # Some event (10 Woodhouse Lane) 30th Nov at 9:15-
@@ -383,7 +413,7 @@ class EventNlp
383
413
 
384
414
  d1 = Chronic.parse([month, day, t1].join(' '))
385
415
 
386
- puts [4.7, title, d1].inspect if @debug
416
+ puts [4.7, title, d1].inspect.debug if @debug
387
417
 
388
418
  { title: title, date: d1 }
389
419
  end
@@ -394,7 +424,7 @@ class EventNlp
394
424
 
395
425
  d = Chronic.parse(time)
396
426
 
397
- puts [1.45, title].inspect if @debug
427
+ puts [1.45, title].inspect.debug if @debug
398
428
  { title: title, date: d }
399
429
 
400
430
  end
@@ -407,7 +437,7 @@ class EventNlp
407
437
  td = @now.to_date
408
438
  d = Date.civil(td.year, td.month, -1).to_time
409
439
 
410
- puts [5, title].inspect if @debug
440
+ puts [5, title].inspect.debug if @debug
411
441
  { title: title, date: d }
412
442
 
413
443
  end
@@ -419,7 +449,7 @@ class EventNlp
419
449
  td = @now.to_date
420
450
  d = Date.civil(td.year, td.month, -1).to_time
421
451
 
422
- puts [5.1, title].inspect if @debug
452
+ puts [5.1, title].inspect.debug if @debug
423
453
  { title: title, date: d }
424
454
 
425
455
  end
@@ -464,7 +494,7 @@ class EventNlp
464
494
  end
465
495
  end
466
496
 
467
- puts [6, title, raw_date, time1].inspect if @debug
497
+ puts [6, title, raw_date, time1].inspect.debug if @debug
468
498
  { title: title, date: d, end_date: end_date, recurring: recurring }
469
499
  end
470
500
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: event_nlp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -30,28 +30,28 @@ cert_chain:
30
30
  hfzP67fp+s/TI6Tk+IvaEWBcfX7AV2XjfhS+q3uCBvQRjmbbRg3JO4XdjAQI3q8d
31
31
  +P4=
32
32
  -----END CERTIFICATE-----
33
- date: 2018-08-27 00:00:00.000000000 Z
33
+ date: 2019-03-09 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: chronic_cron
37
37
  requirement: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - "~>"
40
- - !ruby/object:Gem::Version
41
- version: '0.4'
42
39
  - - ">="
43
40
  - !ruby/object:Gem::Version
44
- version: 0.4.0
41
+ version: 0.5.0
42
+ - - "~>"
43
+ - !ruby/object:Gem::Version
44
+ version: '0.5'
45
45
  type: :runtime
46
46
  prerelease: false
47
47
  version_requirements: !ruby/object:Gem::Requirement
48
48
  requirements:
49
- - - "~>"
50
- - !ruby/object:Gem::Version
51
- version: '0.4'
52
49
  - - ">="
53
50
  - !ruby/object:Gem::Version
54
- version: 0.4.0
51
+ version: 0.5.0
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.5'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: app-routes
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -98,8 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  - !ruby/object:Gem::Version
99
99
  version: '0'
100
100
  requirements: []
101
- rubyforge_project:
102
- rubygems_version: 2.7.6
101
+ rubygems_version: 3.0.1
103
102
  signing_key:
104
103
  specification_version: 4
105
104
  summary: 'Parses a calendar event for date, time, and description e.g. hall 2 friday
metadata.gz.sig CHANGED
Binary file