reminders_txt 0.4.3 → 0.4.4

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
- SHA1:
3
- metadata.gz: 7bd7ff0bd4b00009d86b9ddb970e9cf9467fa52c
4
- data.tar.gz: e769f641f63a1f5dc0bd1188bea511270c08a221
2
+ SHA256:
3
+ metadata.gz: 9513ff78ef31666123db5eafd6fd822eb4e6ca78968af6221a553732722769c5
4
+ data.tar.gz: 256e3164ddeb056dda7d0bc311e671e1452e651e777a0b857bbc26ad2b78f094
5
5
  SHA512:
6
- metadata.gz: 75eb9508395b3993f1ec2ce32d36b697ef93d1cf37a23a006d637b6745f1e101ab0ecc7d51f72cfb732745b3dd1be708d8795c25716e19d7cea928a8c32c1ef8
7
- data.tar.gz: 75889dda67ffca477fa51be70c45de40830c6cd8b70df9c4c0b397f1794fb5bc111e46d9d4751fe3f06a8cb47d0307c5d0dc00627ce47fa6c154477f9bb92a05
6
+ metadata.gz: e2c045a6a21042f716e794e6737a96725ce5f2a1b82007c10bd53d6dac00603a59b6fb2253ef0ed49fb4caf0e110a0d05932539f980ca2c54805ce8c1ec51be2
7
+ data.tar.gz: d557e5713f2060525148ee76de09a3599f84a42d5f4e1e6972c3d88e460d52068800bea24d6c294bca54bea9d87345ee59d800950ed982ae2a6be026f110f8da
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/reminders_txt.rb CHANGED
@@ -8,16 +8,23 @@ require 'event_nlp'
8
8
  require 'digest/md5'
9
9
 
10
10
 
11
+ class RemindersTxtException < Exception
12
+
13
+
14
+ end
15
+
11
16
  class RemindersTxt
12
17
 
13
18
 
14
19
  attr_reader :reminders, :dx
15
20
 
16
- def initialize(raw_s='reminders.txt', now: Time.now)
21
+ def initialize(raw_s='reminders.txt', now: Time.now, debug: false)
17
22
 
18
23
  super()
19
24
 
20
- @now = now
25
+ @now, @debug = now, debug
26
+
27
+ puts '@now: ' + @now.inspect if @debug
21
28
 
22
29
 
23
30
  @filepath = raw_s
@@ -64,15 +71,51 @@ class RemindersTxt
64
71
  refresh()
65
72
 
66
73
  end
74
+
75
+ def before(d)
76
+
77
+ future_date = d.is_a?(String) ? Chronic.parse(d).to_datetime : d
78
+ @dx.filter {|x| DateTime.parse(x.date) < future_date}
79
+
80
+ end
81
+
82
+ def find(s)
83
+ @dx.filter {|x| x.title =~ /#{s}/i}
84
+ end
67
85
 
68
- def upcoming(ndays=5, days: ndays)
69
- @dx.filter {|x| DateTime.parse(x.date) <= @now.to_datetime + days.to_i}
86
+ def upcoming(ndays=5, days: ndays, months: nil)
87
+
88
+ next_date = if months then
89
+ @now.to_datetime >> months.to_i
90
+ else
91
+ @now.to_datetime + days.to_i
92
+ end
93
+
94
+ @dx.filter {|x| DateTime.parse(x.date) <= next_date}
70
95
  end
71
96
 
72
97
  def updated?()
73
98
  @updated
74
99
  end
75
100
 
101
+ def today()
102
+ upcoming 0
103
+ end
104
+
105
+ def tomorrow()
106
+ upcoming days: 1
107
+ end
108
+
109
+ def this_week()
110
+ upcoming days: 6
111
+ end
112
+
113
+ alias weekahead this_week
114
+
115
+ def this_year()
116
+ upcoming months: 12
117
+ end
118
+
76
119
  def to_s()
77
120
 
78
121
  filename = File.basename(@filepath).sub(/\.xml$/, '.txt')
@@ -103,7 +146,7 @@ class RemindersTxt
103
146
 
104
147
  r
105
148
  end
106
- puts '@reminders: ' + @reminders.inspect
149
+
107
150
  @updated = false
108
151
 
109
152
  refresh()
@@ -130,8 +173,14 @@ class RemindersTxt
130
173
 
131
174
  if (r and r.recurring.empty? and not s[/\*$/]) then
132
175
  DateTime.parse(r.date)
133
- else
134
- reminder.date.to_datetime
176
+ else
177
+
178
+ if reminder.date then
179
+ reminder.date.to_datetime
180
+ else
181
+ raise RemindersTxtException, 'nil date for reminder : ' \
182
+ + reminder.inspect
183
+ end
135
184
  end
136
185
 
137
186
  end
@@ -143,7 +192,17 @@ class RemindersTxt
143
192
  end
144
193
 
145
194
  # delete expired non-recurring reminders
146
- @reminders.reject! {|x| x.date.to_time < @now if not x.recurring }
195
+ @reminders.reject! do |x|
196
+
197
+ if @debug then
198
+ puts 'rejects filter: '
199
+ puts ' x.input: ' + x.input.inspect
200
+ puts ' x.date.to_time: ' + x.date.to_time.inspect
201
+ end
202
+
203
+ x.date.to_time < @now if not x.recurring
204
+
205
+ end
147
206
 
148
207
  @reminders.sort_by!(&:date)
149
208
 
@@ -155,10 +214,12 @@ class RemindersTxt
155
214
  b = h1 != h2
156
215
 
157
216
  if b or @reminders != reminders then
158
-
217
+
159
218
  save_dx()
160
219
  File.write File.join(File.dirname(@filepath), 'reminders.txt'), self.to_s
161
220
  @updated = true
221
+ else
222
+ puts 'no update'
162
223
  end
163
224
 
164
225
  [:refresh, b]
@@ -207,5 +268,6 @@ class RemindersTxt
207
268
  save_detail()
208
269
 
209
270
  end
210
-
211
- end
271
+
272
+
273
+ end
data.tar.gz.sig CHANGED
Binary file
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.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,28 +10,32 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE2MTExMDIwMjE0NVoXDTE3MTExMDIwMjE0NVowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAMjS2N7kUPBkBd/Xj/NvjMQzkY0KBKxXeAPcmzDpSNCjr8Yz4If7sDXSp68g
19
- dJm0ywJHCZvZ/fDGPOZgCqh0VUoXDi5j51+0psxBjdPXfdBhA3PzY01s9ju1uDOH
20
- 1m+GZ5+DEmCetqrw0Ul4KJ5S2WbyYhgOl6s8uJIA4ZwJAfFIsX/BIEF4K+OrGANB
21
- dmYLVQJgYvyxFZDFypHL57q1BEQl3Vn/sTUeMBjSV0bn6XLXjHw6rO0iN6VLet1k
22
- p7lcuDy6A8OVmIWE1EF9Uri6PfVJoW5MmpRUbc/QIbkmZQK6PxaZNvRARakYcHO4
23
- /pRI4LrIm/BEHdzs5DnbQItcN7cCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUom2NNLWXSNhcYiiudZ6VzKxMEz0wJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAEWq63XTH
27
- KjCQkfiRrHLonW8WIYzCIGVjDTwMn6m/kK0ZUEUVffe0Picc75e+XAUmrssx2UXe
28
- fIm54sxpjy8d1iErCyckn+JX+VH4UbZpQMqWEyPosAp5YmK2BffBxPAKkdJ9tdhE
29
- DA/kzIkB0UKr2j2gxXJlCU3zeF3fi2c/eg+PziIERT099XlfAzR9k3GOKNr+H0JZ
30
- 3bFPvyTwPPDowls7GzcFbUtnVuYuAI+L3EORTEvK3pEdNTxNNfjHksfKdMgMMKPy
31
- n+SSd9dm8JjhZ2pqHtX+bgMZ18hrN06xfR+UPtk5BKC8v1PC0FWxaVR4lom39rFU
32
- seDxJNsJgamAKg==
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwODI3MTQyNzQ1WhcN
15
+ MTkwODI3MTQyNzQ1WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDXSeGl
17
+ jA7t0dTfrt5uPzHbjshY0b5E/xow3ABWmT8DUEP18xBtnEUrilHRh9GEGvMN0Fsq
18
+ O/kpqQAqTAqQQOVxyGhbbOQXOY86+SnZtBurNgcJ0QsiDnum4zqjbJT0lscpPdPK
19
+ t+mXcVcAOdhQndEYIBILiISRfcwxHgjxThAl4dzuS1ifFGCuIpFGJJ49DkigCFdL
20
+ oTKnImrLw5mSW1/BTY0JEhY4OhpGlaF6B6UOktj6M9tpSgezMcmovR2LGsmcUjjl
21
+ rgspsBjQ23/h3dwimCDbXDrJEHBKaWgBwoxt6Hya+ybB9IjMPTmnFeAT06bNGyIf
22
+ bSPcT2UrdvxbU73eEZdcnSQgRnDYQ3TFzQjQGiukgJVkm82v+WCHIpcjBgw0bS6s
23
+ rR+Hhtf7cZsCxJMRPJxqYonG+yin/mPJfKB2ou9MJggkuny2QZfWtfw+Gun/svVl
24
+ Ly9Hsq6gTvHWdcmQlPhn7Gx+OZ8CR0M2SOqV5Mvlrhv6/O2tfoC3us3Q45kCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUpxsXwGY1
26
+ MQV4+OxT3LFEi4/T6OYwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAR12sqgiO9IWN25TPvwTnZX4DIFBa4TQ2pOODG7wI
29
+ uTWKnkWiAeiY/3dJ+sRp5+zf5VyOKt3gXmLhxdA4cfPvAmNNwZV2RbjELQvgfgHh
30
+ gP+jIlDpx5Xy2WBpx1a9sQ1Yb8kWDG2988n44HVSJD6e5ngZn4PFLmoY3mIk1m5l
31
+ dI4Z0AGFjiN2WeQp2aMtWsseoS7LvTm17xOtKNwLfWze9h9DRTNeICu7Dg69eswQ
32
+ Dd7K/ZLzHn/7xBCbybx3oUlx/w5m102wxNiUSjvlvlDbbheyFjyVGQcudIlWJkKm
33
+ rNRRoNfNjxaFhKsMdiyrfGmWhOBIsfPlGyhR7WMQYiz5ACjrlmnVnc8Aab1ipiUG
34
+ almSkip+iLRS55rdH4mSncK3iQurf6Jny9x2JD+U6cRXz/UPpNqFb/bU1mxXiU1a
35
+ U6f6HfP/6K9f602IeJGEDybVHYFQ7Ssl+AeclLBiMqy5HYuL7kRoD9C2D166GI42
36
+ M4blonk3dgx08AvXnjoMsgqh
33
37
  -----END CERTIFICATE-----
34
- date: 2017-06-27 00:00:00.000000000 Z
38
+ date: 2018-08-27 00:00:00.000000000 Z
35
39
  dependencies:
36
40
  - !ruby/object:Gem::Dependency
37
41
  name: dynarex
@@ -39,60 +43,60 @@ dependencies:
39
43
  requirements:
40
44
  - - "~>"
41
45
  - !ruby/object:Gem::Version
42
- version: '1.7'
46
+ version: '1.8'
43
47
  - - ">="
44
48
  - !ruby/object:Gem::Version
45
- version: 1.7.22
49
+ version: 1.8.2
46
50
  type: :runtime
47
51
  prerelease: false
48
52
  version_requirements: !ruby/object:Gem::Requirement
49
53
  requirements:
50
54
  - - "~>"
51
55
  - !ruby/object:Gem::Version
52
- version: '1.7'
56
+ version: '1.8'
53
57
  - - ">="
54
58
  - !ruby/object:Gem::Version
55
- version: 1.7.22
59
+ version: 1.8.2
56
60
  - !ruby/object:Gem::Dependency
57
61
  name: event_nlp
58
62
  requirement: !ruby/object:Gem::Requirement
59
63
  requirements:
60
64
  - - "~>"
61
65
  - !ruby/object:Gem::Version
62
- version: '0.2'
66
+ version: '0.5'
63
67
  - - ">="
64
68
  - !ruby/object:Gem::Version
65
- version: 0.2.4
69
+ version: 0.5.0
66
70
  type: :runtime
67
71
  prerelease: false
68
72
  version_requirements: !ruby/object:Gem::Requirement
69
73
  requirements:
70
74
  - - "~>"
71
75
  - !ruby/object:Gem::Version
72
- version: '0.2'
76
+ version: '0.5'
73
77
  - - ">="
74
78
  - !ruby/object:Gem::Version
75
- version: 0.2.4
79
+ version: 0.5.0
76
80
  - !ruby/object:Gem::Dependency
77
81
  name: chronic_cron
78
82
  requirement: !ruby/object:Gem::Requirement
79
83
  requirements:
80
84
  - - "~>"
81
85
  - !ruby/object:Gem::Version
82
- version: '0.3'
86
+ version: '0.4'
83
87
  - - ">="
84
88
  - !ruby/object:Gem::Version
85
- version: 0.3.6
89
+ version: 0.4.0
86
90
  type: :runtime
87
91
  prerelease: false
88
92
  version_requirements: !ruby/object:Gem::Requirement
89
93
  requirements:
90
94
  - - "~>"
91
95
  - !ruby/object:Gem::Version
92
- version: '0.3'
96
+ version: '0.4'
93
97
  - - ">="
94
98
  - !ruby/object:Gem::Version
95
- version: 0.3.6
99
+ version: 0.4.0
96
100
  description:
97
101
  email: james@jamesrobertson.eu
98
102
  executables: []
@@ -120,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
124
  version: '0'
121
125
  requirements: []
122
126
  rubyforge_project:
123
- rubygems_version: 2.6.8
127
+ rubygems_version: 2.7.6
124
128
  signing_key:
125
129
  specification_version: 4
126
130
  summary: Reads and updates diary reminders from a plain text file
metadata.gz.sig CHANGED
Binary file