event_nlp 0.6.0 → 0.6.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: 23d131080f1c648f569969cdd3af18a8ee585978b832c0822d47604a14968236
4
- data.tar.gz: 173cff064a42e901bfb055f29f08d4d1273c5b0d7509ce1af54bb708593b3b23
3
+ metadata.gz: c4ec4582a9a97efbf6e4b24803edb1675c8cc8bbcdff692b90472502bfd71c1e
4
+ data.tar.gz: 63226f49c9ad8b5f2219cc8506152c5ddaed21e97e0e7c6e55c017bc83d3e644
5
5
  SHA512:
6
- metadata.gz: f0c92ec588966b972c2fc2d0816ca066d4c06ea98230d8d1fb811a06a7811d283d3626fd36f5229af2b11ebd5ecf4dcf69ee092af538e872ce3aa9ab8f519b88
7
- data.tar.gz: bbb4f4a06419da51042a791dbc9fdbabd77c874c911f4c46ba1463e67162474804ad4fa1fc25b7297d448d7cd2bc7a70bae3a7e604657285231cd213a9c4032e
6
+ metadata.gz: eab396db7a03c0416d71eb911d4bd35d573f33a265c8aa773dcbbf45368a8702df0f695701ee3f2472c084106de6c60d3aee5826e68ec8c032770be191db7a76
7
+ data.tar.gz: b70f2239f852026b7b3559c0814c331be502a47410ecdf8808646faec727c5adc17e282d8d9159c2bf4658d2ce03ddf161d0b84433b95cbe529658cf965b0b29
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/event_nlp.rb CHANGED
@@ -12,7 +12,7 @@ module Ordinals
12
12
 
13
13
  refine Integer do
14
14
  def ordinal
15
- self.to_s + ( (10...20).include?(self) ? 'th' :
15
+ self.to_s + ( self.between?(10,20) ? 'th' :
16
16
  %w{ th st nd rd th th th th th th }[self % 10] )
17
17
  end
18
18
  end
@@ -37,7 +37,25 @@ class EventNlp
37
37
 
38
38
  end
39
39
 
40
- def parse(s)
40
+ def parse(raws)
41
+
42
+ # catch irregular expressions and interpret them in advance
43
+ #
44
+ # e.g. Cafe meeting Thursday every 2 weeks =>
45
+ # Cafe meeting every 2nd Thursday
46
+ #
47
+ weekdays2 = (Date::DAYNAMES + Date::ABBR_DAYNAMES).join('|').downcase
48
+ pattern = /(?<day>#{weekdays2}) every (?<n>\d) weeks/i
49
+ found = raws.match(pattern)
50
+
51
+ s = if found then
52
+ s2 = "every %s %s" % [found[:n].to_i.ordinal, found[:day]]
53
+ raws.sub(pattern, s2)
54
+ else
55
+ raws
56
+ end
57
+
58
+ #-----------------------------------------------------------
41
59
 
42
60
  @params[:input] = s
43
61
  r = run_route(s)
data.tar.gz.sig CHANGED
Binary file
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.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  w8lJ+I6Lqqr5GpsweOnEHW4w200sMRD40u8qmGHrqirihL2KrwTD6A9UObvA5AxZ
36
36
  4Z4EPvKg+3jsK9Gv3GGSLdrD
37
37
  -----END CERTIFICATE-----
38
- date: 2022-02-02 00:00:00.000000000 Z
38
+ date: 2022-04-01 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: chronic_cron
@@ -103,8 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  requirements: []
106
- rubyforge_project:
107
- rubygems_version: 2.7.10
106
+ rubygems_version: 3.2.22
108
107
  signing_key:
109
108
  specification_version: 4
110
109
  summary: 'Parses a calendar event for date, time, and description e.g. hall 2 friday
metadata.gz.sig CHANGED
Binary file