event_nlp 0.3.1 → 0.4.0

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: 54ba784176824a213dcdbd4ca421b388687fba9f
4
- data.tar.gz: ed2a521afa3726671c01ecb62977c0b9b48ce203
3
+ metadata.gz: 73cd65c68a6459b464bc21d5d91f925fdfb776c7
4
+ data.tar.gz: 524ccb60d5660fd2c99520e3915ab672519ea4e0
5
5
  SHA512:
6
- metadata.gz: d6b8bbe02b6a14f5a5b8f918995bae07aac3a867721570706a08572989a1bd6bb5014a965c8efd5b386046ac06292f24610c1d08c5a76409ed9e996e8351f083
7
- data.tar.gz: b735297f5f76c702e6c9c177fc5a486926457dc2c33c288c452de2672a167517afa1d5769b6b31058d71bc4dabd836264c334dff7bd365ad574b42c25b3dc834
6
+ metadata.gz: 5810a9e49803482d1b2ee43f9f03e45848b06fb20b4ded4e75303dfa2c7a955683b527bea1699d0d1f7bf054821ec9b5611a1f2fabfe7652ab03f73c1796143c
7
+ data.tar.gz: 6df966634ca2c75075a93df62f509e123db9b7c79234cebe5379d98ce73965775bfc04d6715fd46519aa38a69c4bc6ec11e3286232207096e79dac42198be714
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -52,12 +52,13 @@ class EventNlp
52
52
  def expressions(params)
53
53
 
54
54
  starting = /(?:\(?\s*starting (\d+\w{2} \w+\s*\w*)(?: until (.*))?\s*\))?/
55
- weekdays = Date::DAYNAMES.join('|').downcase
56
- months = (Date::MONTHNAMES[1..-1] + Date::ABBR_MONTHNAMES[1..-1])\
57
- .join('|').downcase
55
+ weekdays2 = Date::DAYNAMES.join('|').downcase
56
+ weekdays = "(%s)" % weekdays2
57
+ months = "(%s)" % (Date::MONTHNAMES[1..-1] + Date::ABBR_MONTHNAMES[1..-1])\
58
+ .join('|').downcase
58
59
  times = /(?: *(?:at |@ |from )?(\d+(?::\d+)?(?:[ap]m|\b)) *)/
59
60
  times2 = /\d+(?::\d+)?[ap]m-\d+(?::\d+)?[ap]m|\d+(?::\d+)?-\d+(?::\d+)?/
60
- days = /\d+(?:st|nd|rd|th)/
61
+ days = /(\d+(?:st|nd|rd|th))/
61
62
  periods = /day|week|month/
62
63
 
63
64
  #weekdays = Date::DAYNAMES.join('|').downcase
@@ -187,7 +188,8 @@ class EventNlp
187
188
  end
188
189
 
189
190
  puts [0.5, title, recurring, d].inspect if @debug
190
- {input: input, title: title.rstrip, recurring: recurring, date: d, end_date: end_date }
191
+ {input: input, title: title.rstrip, recurring: recurring,
192
+ date: d, end_date: end_date }
191
193
 
192
194
  end
193
195
 
@@ -203,7 +205,8 @@ class EventNlp
203
205
 
204
206
 
205
207
  # 7th Oct Euston Station (meet at Timothy's house at 7pm)
206
- get /^(\d(?:st|nd|rd|th) \w+) *(.*)\s+at\s+(\w+)/i do |raw_day, title, time|
208
+ get /^(\d(?:st|nd|rd|th) \w+) *(.*)\s+at\s+(\w+)/i do \
209
+ |raw_day, title, time|
207
210
 
208
211
  d = Chronic.parse(raw_day + ' ' + time)
209
212
 
@@ -216,7 +219,7 @@ class EventNlp
216
219
  # some event Wednesday 11am
217
220
 
218
221
  relative_day = '|today|tomorrow|tonight'
219
- get /^(.*)\s+(#{weekdays+relative_day})(?: \(([^\)]+)\)) (at \d{1,2}(?::\d{2})?(?:[ap]m)?)/i \
222
+ get /^(.*)\s+(#{weekdays2+relative_day})(?: \(([^\)]+)\)) (at \d{1,2}(?::\d{2})?(?:[ap]m)?)/i \
220
223
  do |title, raw_date, date2, time2|
221
224
  puts 'time2: ' + time2.inspect if @debug
222
225
  puts 'date2: ' + date2 if @debug
@@ -234,7 +237,8 @@ class EventNlp
234
237
  end
235
238
 
236
239
  # Group meeting Red Hall 2pm-4pm on Monday (4th Dec 2017)
237
- get /^(.*)\s+(#{times2})(?: on) +(#{weekdays})(?: \(([^\)]+)\))?/i do |title, xtimes, raw_day, actual_date|
240
+ get /^(.*)\s+(#{times2})(?: on) +#{weekdays}(?: \(([^\)]+)\))?/i \
241
+ do |title, xtimes, raw_day, actual_date|
238
242
 
239
243
  puts 'actual_date: ' + actual_date.inspect if @debug
240
244
  puts 'raw_day: ' + raw_day.inspect if @debug
@@ -246,7 +250,8 @@ class EventNlp
246
250
  d = Chronic.parse actual_date
247
251
  else
248
252
  d = Chronic.parse(raw_day)
249
- input.sub!(/#{weekdays}/i,%Q(#{raw_day} (#{d.strftime("#{d.day.ordinal} %b %Y")})))
253
+ input.sub!(/#{weekdays}/i,
254
+ %Q(#{raw_day} (#{d.strftime("#{d.day.ordinal} %b %Y")})))
250
255
  end
251
256
 
252
257
  t1, t2 = xtimes.split(/-/,2)
@@ -263,7 +268,8 @@ class EventNlp
263
268
 
264
269
  # hall 2 friday at 11am
265
270
 
266
- get /^(.*)\s+(#{weekdays})(?: \(([^\)]+)\))?(#{times})?/i do |title, raw_day, actual_date, time|
271
+ get /^(.*)\s+#{weekdays}(?: \(([^\)]+)\))?(#{times})?/i \
272
+ do |title, raw_day, actual_date, time|
267
273
 
268
274
  puts 'actual_date: ' + actual_date.inspect if @debug
269
275
  puts 'raw_day: ' + raw_day.inspect if @debug
@@ -275,7 +281,8 @@ class EventNlp
275
281
  d = Chronic.parse(raw_day + ' ' + time.to_s)
276
282
  else
277
283
  d = Chronic.parse(raw_day + ' ' + time.to_s)
278
- input.sub!(/#{weekdays}/i,%Q(#{raw_day} (#{d.strftime("#{d.day.ordinal} %b %Y")})))
284
+ input.sub!(/#{weekdays}/i,
285
+ %Q(#{raw_day} (#{d.strftime("#{d.day.ordinal} %b %Y")})))
279
286
  end
280
287
 
281
288
  puts 'd: ' + d.inspect if @debug
@@ -301,7 +308,8 @@ class EventNlp
301
308
  end
302
309
 
303
310
  # friday hall 2 11am
304
- get /^(#{weekdays})\s+(.*)\s+(\d+(?::\d{2})?[ap]m)$/i do |raw_day, title, time|
311
+ get /^#{weekdays}\s+(.*)\s+(\d+(?::\d{2})?[ap]m)$/i do \
312
+ |raw_day, title, time|
305
313
 
306
314
  d = Chronic.parse(raw_day + ' ' + time)
307
315
 
@@ -309,7 +317,17 @@ class EventNlp
309
317
  { title: title, date: d }
310
318
 
311
319
  end
312
-
320
+
321
+ # Tuesday 10th July hall 2 at 11am
322
+ get /#{weekdays}\s+#{days}\s+#{months}\s+(?:at )?(.*)\s+at\s+(#{times})/i \
323
+ do |wday, day, month, title, time|
324
+
325
+ d = Chronic.parse([day, month, time].join(' '))
326
+
327
+ puts ['1.44.5', day, month, title].inspect if @debug
328
+ { title: title, date: d }
329
+
330
+ end
313
331
 
314
332
  # hall 2 at 11am
315
333
  get /(.*)\s+at\s+(#{times})/i do |title, time|
@@ -325,8 +343,8 @@ class EventNlp
325
343
  # 27-Mar@1436 some important day
326
344
  # 25/07/2017 11pm some important day
327
345
  #
328
- get /^(\d+\/\d+\/\d+)\s*(\d+(?:\:\d+)?[ap]m)?\s+([^\*]+)(\*)?/ do |raw_date,
329
- time, title, annualar|
346
+ get /^(\d+\/\d+\/\d+)\s*(\d+(?:\:\d+)?[ap]m)?\s+([^\*]+)(\*)?/ \
347
+ do |raw_date, time, title, annualar|
330
348
 
331
349
  d = Chronic.parse(raw_date + ' ' + time.to_s,
332
350
  :endian_precedence => :little)
@@ -349,7 +367,8 @@ class EventNlp
349
367
 
350
368
  # Some event (10 Woodhouse Lane) 30th Nov from 9:15-17:00
351
369
 
352
- get /^(.*) (#{days}) (#{months})(?: from)? (#{times2})/i do |title, day, month, xtimes|
370
+ get /^(.*) #{days} #{months}(?: from)? (#{times2})/i do \
371
+ |title, day, month, xtimes|
353
372
 
354
373
  t1, t2 = xtimes.split(/-/,2)
355
374
 
@@ -407,4 +426,4 @@ class EventNlp
407
426
 
408
427
  end
409
428
 
410
- end
429
+ end
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.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,28 +10,27 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE3MDUwNzE0NTg0OVoXDTE4MDUwNzE0NTg0OVowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAMw2O2U81njedJwOBUx2jysPRiQCPeRo3z866CWS38+gUjuoyWhxqpU7oFmf
19
- ZU8qBW3IAt9dDF6YYej0D1pjUGQB3Q9tGG+9JAgrVk9A9v6EDe2OlJw+kBq3df8c
20
- rlBxpaoW5Cs4l0NPvS0YxkiNcVNF+5+5w5P/oG/rQtwYe5qjgL8dnR3wCzbpLEJx
21
- ffB9IO8GywixKbsVo+azM95eEXqftzTEZTvNl9/fXdmDxxBjQ840cga0cbo8/l3r
22
- QDCdLV4tr4QxoJUWr2WuF9eA4Z2LNeNiKV2QpnPJSJ8oGmLSOhBx/QsIHt/JGnAZ
23
- iWrign+OUU/ZhLpZxWdMtho2lwUCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUxmLhcuks1axpInwjUKF+v8jP89gwJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAya7GTAGy
27
- KQx5tB2Dugmt+7zMYMR2DXiLbtRnfA5sbtgERjf/wxIp+eXKPNUuUy19R6srwaVB
28
- KMvT4fo30u4r+JS0jU50xr6YH9BgJmcjf9PVboo2Rmy6ndylXjta24tzCOEz9+Tt
29
- JwZIT4fJigwslfEQFtTyPizu+kUMugdOwmk8WUeJdla0LpnMmIaDuh9BdIbydmMv
30
- /N+gM0MWTN2a4JSEPzFK6C7H8aI/pzcffTuhqspk6a1XtgFcqVdF1expUm8Hse1Z
31
- /WtgKLMzCAKTHZ2OpN3OTs6j+vsUBIwCb/Ki17Z4YULtRaGg7I8nTjTrHIIJ0yNm
32
- kbRihMTezaC+4A==
13
+ MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQUFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwNzA1MTAxNjMyWhcN
15
+ MTkwNzA1MTAxNjMyWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVsMUO
17
+ uqAIaefnFUYjL01BM0IKcynSiGaen10C1l+mdb5L2u/qqmDlei+dhkROzdalv3I9
18
+ mzfM+gmypIghj96WuiJWFN0W3ktFvxo/GBt9H5va9e8osXAzIuMmU6XcPNHRJJ8a
19
+ l+++HBSeBylV0JGH3h+4Ia5fF8rsnUnhXnethMO4bEjERFVH8PO6qDnL28ua3r05
20
+ W964deP/xkSD2JCc9UEzmfa6+vXpT8EM00TEFsC0KWLC1tbNqQHknxW/JGFsvSrm
21
+ rtjUzYRg4D2JzBAvkofjPWhDcDwUg9HjEslqg0k4jzk8d7bCihmRDaeNLpmjFVeu
22
+ miMJkFxdCkRbFxkrAgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
+ HQYDVR0OBBYEFD6Oql0vDFt0//hJu95Y7ai3GlpdMCYGA1UdEQQfMB2BG2dlbW1h
24
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTAmBgNVHRIEHzAdgRtnZW1tYXN0ZXJAamFt
25
+ ZXNyb2JlcnRzb24uZXUwDQYJKoZIhvcNAQEFBQADggEBAEVbqAk47S/3aPeR4B7G
26
+ l875ptDSNkXUq0Y6/c7HLtCqO8J9WPGbNUoGT3EeYQblEcay816mbd3TLOgTdmo/
27
+ vJphzqk0LEHBYD2oC1G7Yzzq7BHkkoJN54e6b5ZzUHNctIGluMrjnNvIagHKfJlR
28
+ UAX6I2o4wL8qFLDxkEcv8FRc67xJBMdQljoYHO+mM8uz8Lsk5Go0xI6UvIZvAnXh
29
+ fJkRwzhE/iZ3kywtmmOnZthaWgHjUoY7bl8lyroUeFf1f3f1tNUKk7kfClyRVrka
30
+ hfzP67fp+s/TI6Tk+IvaEWBcfX7AV2XjfhS+q3uCBvQRjmbbRg3JO4XdjAQI3q8d
31
+ +P4=
33
32
  -----END CERTIFICATE-----
34
- date: 2017-12-04 00:00:00.000000000 Z
33
+ date: 2018-07-05 00:00:00.000000000 Z
35
34
  dependencies:
36
35
  - !ruby/object:Gem::Dependency
37
36
  name: chronic_cron
@@ -39,20 +38,20 @@ dependencies:
39
38
  requirements:
40
39
  - - "~>"
41
40
  - !ruby/object:Gem::Version
42
- version: '0.3'
41
+ version: '0.4'
43
42
  - - ">="
44
43
  - !ruby/object:Gem::Version
45
- version: 0.3.7
44
+ version: 0.4.0
46
45
  type: :runtime
47
46
  prerelease: false
48
47
  version_requirements: !ruby/object:Gem::Requirement
49
48
  requirements:
50
49
  - - "~>"
51
50
  - !ruby/object:Gem::Version
52
- version: '0.3'
51
+ version: '0.4'
53
52
  - - ">="
54
53
  - !ruby/object:Gem::Version
55
- version: 0.3.7
54
+ version: 0.4.0
56
55
  - !ruby/object:Gem::Dependency
57
56
  name: app-routes
58
57
  requirement: !ruby/object:Gem::Requirement
metadata.gz.sig CHANGED
Binary file