reminders_txt 0.3.0 → 0.3.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
  SHA1:
3
- metadata.gz: f5f2a37608ad9d46e3adcc3a01d5008cf8e77231
4
- data.tar.gz: 75a75d8bcedea94551146b8ea767c27c1abe1237
3
+ metadata.gz: 4f20103f70752f7787daa661d392a2ae68ba5cb0
4
+ data.tar.gz: 2e3572e91d46a26858a81f62a88440d13d0d2767
5
5
  SHA512:
6
- metadata.gz: 46744e545870d608e9867f8eafd29e3525e8e987773a1db0f7a3beffd3e959fc5e6560ac78f98269727704935fe6537f2b9f949d8096aa2fe0d2f2946bf69c04
7
- data.tar.gz: 291ce8551dd33f96a87de068e9024ca6f12675db65645fecada3cc0bc10f7de95d486371a69d2a49af788779629207e1f7508d1bb3ae53584dad343cd0106a4d
6
+ metadata.gz: f40d167ca858715279d9a216b3e45c079bd50a06c844e018e7dcba7d04b1ede53375921721b5c5425ba12d54b7c6b8cdfd091527e4ac3c06accc1d6ebe644352
7
+ data.tar.gz: ef0292802c578f9ccb68854e89f853c5def2e23bf9e443c6ead347a50ea608514a022e28510a210d7a748fef9a707efd56d8a3def283221722b2edd0085d4763
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/reminders_txt.rb CHANGED
@@ -65,10 +65,10 @@ class RemindersTxt
65
65
 
66
66
  def refresh()
67
67
 
68
- @reminders.map! do |x|
69
- x.date = x.date.is_a?(Time) ? x.date : Chronic.parse(x.date)
70
- x
71
- end
68
+ #@reminders.map! do |x|
69
+ # x.date = x.date.is_a?(Time) ? x.date : Chronic.parse(x.date)
70
+ # x
71
+ #end
72
72
 
73
73
  # synchronise with the XML file
74
74
  # if XML file doesn't exist, create it
@@ -78,9 +78,11 @@ class RemindersTxt
78
78
  dx = Dynarex.new @dxfilepath
79
79
 
80
80
  @reminders.map do |reminder|
81
+ s = reminder.input
82
+ r = dx.find_by_input s
81
83
 
82
- r = dx.find_by_input reminder.input
83
- reminder.date = r ? Date.parse(r.date) : reminder.date.to_date
84
+ # it is on file and it's not an annual event?
85
+ reminder.date = (r and not s[/\*$/]) ? Date.parse(r.date) : reminder.date.to_date
84
86
 
85
87
  reminder
86
88
  end
@@ -132,25 +134,26 @@ class RemindersTxt
132
134
  starting = /(?:\(?\s*starting (\d+\w{2} \w+\s*\w*)(?: until (.*))?\s*\))?/
133
135
 
134
136
  get /^(.*)(every \w+ \w+(?: at (\d+am) )?)\s*#{starting}/ do \
135
- |title, recurring, time, date, end_date|
137
+ |title, recurring, time, raw_date, end_date|
136
138
 
137
139
  input = params[:input]
138
140
 
141
+ d = Chronic.parse(raw_date)
142
+
139
143
  if recurring =~ /day|week/ then
144
+
140
145
 
141
- start_date = Chronic.parse(date)
142
-
143
- if start_date <= @now then
146
+ if d < @now then
144
147
 
145
- new_date = CronFormat.new(ChronicCron.new(recurring).to_expression, start_date).to_time
148
+ new_date = CronFormat.new(ChronicCron.new(recurring).to_expression, d).to_time
146
149
  input.gsub!(date, new_date.strftime("#{new_date.day.ordinal} %b %Y"))
147
- date = new_date
150
+ d = new_date
148
151
 
149
152
  end
150
153
  end
151
154
 
152
155
 
153
- OpenStruct.new input: input, title: title, recurring: recurring, date: date, end_date: end_date
156
+ OpenStruct.new input: input, title: title, recurring: recurring, date: d, end_date: end_date
154
157
  #[0, title, recurring, time, date, end_date].inspect
155
158
  end
156
159
 
@@ -163,16 +166,29 @@ class RemindersTxt
163
166
  end
164
167
 
165
168
  # some important day 24th Mar
166
- get /(.*)\s+(\d+.*)/ do |title, date|
169
+ get /(.*)\s+(\d+[^\*]+)(\*)?/ do |title, raw_date, annualar|
170
+
171
+ d = Chronic.parse(raw_date)
167
172
 
168
- OpenStruct.new input: params[:input], title: title, date: date
173
+ if annualar and d < @now then
174
+ d = Chronic.parse(raw_date, now: Time.local(@now.year + 1, 1, 1))
175
+ end
176
+
177
+ OpenStruct.new input: params[:input], title: title, date: d
169
178
  #[2, title, date].inspect
170
179
  end
171
180
 
172
181
  # 27-Mar@1436 some important day
173
- get /(\d[^\s]+)\s+(.*)/ do |date, title|
182
+ get /(\d[^\s]+)\s+([^\*]+)(\*)?/ do |raw_date, title, annualar|
174
183
 
175
- OpenStruct.new input: params[:input], title: title, date: date
184
+ d = Chronic.parse(raw_date)
185
+
186
+ if annualar and d < @now then
187
+ d = Chronic.parse(raw_date, now: Time.local(@now.year + 1, 1, 1))
188
+ end
189
+
190
+
191
+ OpenStruct.new input: params[:input], title: title, date: d
176
192
  #[3, title, date].inspect
177
193
  end
178
194
 
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.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
metadata.gz.sig CHANGED
Binary file