event_nlp 0.2.0 → 0.2.1

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
  SHA1:
3
- metadata.gz: d4b00491e5b6a95498e2903246480cb7ad704637
4
- data.tar.gz: a9967a18b98136821653d8b37083f3863ce3516c
3
+ metadata.gz: '09eb07c8e3c86c47ee94c8f312aec6c40f5e210e'
4
+ data.tar.gz: 0ac1428ab93322c9d6780a9511c710d28daac91e
5
5
  SHA512:
6
- metadata.gz: cc88647d4e65b87a1633f7f2d95d8cf01809ba98f091c2f85b81aee5167b1c2f76ae541c23cb0c1222c848ec0a388c121313a055d84e10c20adf291b94ce51fc
7
- data.tar.gz: d16d34117a77cedd448307027b52efbc5d57c0abef1c83ddea86b314dd3f20a773ba27fdb35bd7f5d393ba7b3a9402fb41f939225ca873a5d2497f50b23fefa1
6
+ metadata.gz: aed1b7df145bc991641835ca102b71c4ab528a0697a3bf806c0637cd19426345ba4b2ccda9837cdbf7ebf455c4482c24ac53fe9447f86e13f06a76dfbd02a2ae
7
+ data.tar.gz: 1384916d35e6915e86f692ba2b1c714c7a2acaeaf734e7d91dd621a37e39f29ba4396dc9a20b78af74db1f29351fd5e2060d7713182a996146ffcd93d4abcf8d
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/event_nlp.rb CHANGED
@@ -25,13 +25,14 @@ class EventNlp
25
25
 
26
26
  attr_accessor :params
27
27
 
28
- def initialize(now=Time.now, params: {})
28
+ def initialize(now=Time.now, params: {}, debug: false)
29
29
 
30
30
  super()
31
31
 
32
32
  @now = now
33
33
  @params = params
34
- expressions(@params)
34
+ expressions(@params)
35
+ @debug = debug
35
36
 
36
37
  end
37
38
 
@@ -82,12 +83,41 @@ class EventNlp
82
83
  end
83
84
  end
84
85
 
85
- #puts [0, title, recurring, time, raw_date, end_date].inspect
86
+ puts [0, title, recurring, time, raw_date, end_date].inspect if @debug
86
87
  {input: input, title: title, recurring: recurring, date: d,
87
88
  end_date: end_date}
88
89
 
89
90
  end
90
91
 
92
+ # e.g. some event 1st Monday of every month (starting 3rd Jul 2017)
93
+
94
+ get /^(.*)\s+(\d(?:st|nd|rd|th) \w+ of every \w+(?: at (\d+[ap]m) )?)\s*#{starting}/ do \
95
+ |title, recurring, time, raw_date, end_date|
96
+
97
+ input = params[:input]
98
+
99
+ d = Chronic.parse(raw_date)
100
+
101
+ if recurring =~ /day|week|month/ then
102
+
103
+ if d < @now then
104
+
105
+ new_date = CronFormat.new(ChronicCron.new(recurring)\
106
+ .to_expression, d).to_time
107
+ input.gsub!(raw_date, new_date\
108
+ .strftime("#{new_date.day.ordinal} %b %Y"))
109
+ d = new_date
110
+ else
111
+ d = ChronicCron.new(recurring, d.to_date.to_time).to_time
112
+ end
113
+ end
114
+
115
+ puts [0.3, title, recurring, time, raw_date, end_date].inspect if @debug
116
+ {input: input, title: title, recurring: recurring, date: d,
117
+ end_date: end_date}
118
+
119
+ end
120
+
91
121
  get /^(.*)(every .*)/ do |title, recurring|
92
122
 
93
123
  input = params[:input]
@@ -95,7 +125,7 @@ class EventNlp
95
125
 
96
126
  d = CronFormat.new(exp).to_time
97
127
 
98
- #puts [0.5, title, recurring, time, raw_date, end_date].inspect
128
+ puts [0.5, title, recurring, d].inspect if @debug
99
129
  {input: input, title: title, recurring: recurring, date: d }
100
130
 
101
131
  end
@@ -105,7 +135,7 @@ class EventNlp
105
135
  get /(.*)\s+(\w+ \w+day of (?:the|every) month at .*)/ do
106
136
  |title, recurring|
107
137
 
108
- #puts [1, title, recurring].inspect
138
+ puts [1, title, recurring].inspect if @debug
109
139
  { title: title, recurring: recurring }
110
140
 
111
141
  end
@@ -115,7 +145,7 @@ class EventNlp
115
145
 
116
146
  d = Chronic.parse(raw_day + ' ' + time)
117
147
 
118
- #puts [1.5, title, raw_day].inspect
148
+ puts [1.5, title, raw_day].inspect if @debug
119
149
  { title: title, date: d }
120
150
 
121
151
  end
@@ -128,7 +158,7 @@ class EventNlp
128
158
  raw_time, :endian_precedence => :little)
129
159
  recurring = nil
130
160
 
131
- #puts [3, title, raw_date].inspect
161
+ puts [3, title, raw_date].inspect if @debug
132
162
  { title: title, date: d }
133
163
  end
134
164
 
@@ -137,7 +167,7 @@ class EventNlp
137
167
 
138
168
  d = Chronic.parse(raw_day + ' ' + time)
139
169
 
140
- #puts [1.44, title, raw_day].inspect
170
+ puts [1.44, title, raw_day].inspect if @debug
141
171
  { title: title, date: d }
142
172
 
143
173
  end
@@ -148,7 +178,7 @@ class EventNlp
148
178
 
149
179
  d = Chronic.parse(time)
150
180
 
151
- #puts [1.45, title].inspect
181
+ puts [1.45, title].inspect if @debug
152
182
  { title: title, date: d }
153
183
 
154
184
  end
@@ -173,7 +203,7 @@ class EventNlp
173
203
  end
174
204
  end
175
205
 
176
- #puts [2, title, raw_date].inspect
206
+ puts [2, title, raw_date].inspect if @debug
177
207
  { title: title, date: d, recurring: recurring }
178
208
  end
179
209
 
@@ -192,13 +222,13 @@ class EventNlp
192
222
  end
193
223
 
194
224
 
195
- #puts [3, title, raw_date].inspect
225
+ puts [3, title, raw_date].inspect if @debug
196
226
  { title: title, date: d, recurring: recurring }
197
227
  end
198
228
 
199
229
  # e.g. 04-Aug@12:34
200
230
  get '*' do |s|
201
- puts 's: ' + s.inspect
231
+ puts 's: ' + s.inspect if @debug
202
232
  'pattern unrecognised'
203
233
  end
204
234
 
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.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  /WtgKLMzCAKTHZ2OpN3OTs6j+vsUBIwCb/Ki17Z4YULtRaGg7I8nTjTrHIIJ0yNm
32
32
  kbRihMTezaC+4A==
33
33
  -----END CERTIFICATE-----
34
- date: 2017-06-07 00:00:00.000000000 Z
34
+ date: 2017-06-08 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: chronic_cron
metadata.gz.sig CHANGED
Binary file