reminders_txt 0.8.0 → 0.9.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
  SHA256:
3
- metadata.gz: 1fc2b2e1b2a96bb81a9cd1318c26d2ac7f19067d45c95b303921fab3127b1609
4
- data.tar.gz: f26830637edcdf8485063c9f58bd7eb0edf179b11fef5d42edb4212163b6efd1
3
+ metadata.gz: c91a43ef370d6bca04d588dfabfeef24535af3e2dc90a6517495cbcc445421ae
4
+ data.tar.gz: 51b59fc426f175a223868ae1eb63e61361f096051c4051b84899ea66b9ad6c30
5
5
  SHA512:
6
- metadata.gz: 4ddbd6e691d5595755ad3306763b4fa299038b3e530cfc34651ca10e2602c0da294b219f2f0a6e694b5a3f504d7640b788ea14f94cbdfe6a21b06e4e5046821a
7
- data.tar.gz: 9cc2180d39caf63e23fe672a070d2d74b4bd543352a97dac21efe272cb4dde3f0a1ab540ec0e733542e6c82c1cd38837498a82e16e0d9dc022c5f83f539146cb
6
+ metadata.gz: 940a77c0025c3ffa8c712d234cd6f3caf834e84f3ff083348ead891a650c057135282675f5fc214450e72d16e4ef028547810ee34be3080fa9ff0bf322be514c
7
+ data.tar.gz: f9861f8c5ee884d7f7bac5e86393389d1ca1e898847c731443e95e519591607fcfcb92108ba9c4cd6b239ec564d0c8e0fb3667c9543575a71a18e406ff045bb0
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/reminders_txt.rb CHANGED
@@ -8,8 +8,15 @@ require 'event_nlp'
8
8
  require 'digest/md5'
9
9
  require 'human_speakable'
10
10
  require 'rxfreadwrite'
11
+ require 'vpim'
11
12
 
12
13
 
14
+ class Fixnum
15
+ def ordinal
16
+ self.to_s + ( (10...20).include?(self) ? 'th' : %w{ th st nd rd th th th th th th }[self % 10] )
17
+ end
18
+ end
19
+
13
20
  class RemindersTxtException < Exception
14
21
 
15
22
  end
@@ -64,11 +71,20 @@ class RemindersTxt
64
71
  end
65
72
  end
66
73
 
67
- def add(s)
74
+ def add(obj)
75
+
76
+ if obj.is_a? String then
77
+
78
+ s = obj
79
+ s.strip!
80
+ r = EventNlp.new(@now, params: {input: s}).parse(s)
81
+ return if r.nil?
82
+
83
+ elsif obj.is_a? OpenStruct
68
84
 
69
- s.strip!
70
- r = EventNlp.new(@now, params: {input: s}).parse(s)
71
- return if r.nil?
85
+ r = obj
86
+
87
+ end
72
88
 
73
89
  @reminders << r
74
90
  refresh()
@@ -93,6 +109,40 @@ class RemindersTxt
93
109
  @dx.filter {|x| x.title =~ /#{s}/i}
94
110
  end
95
111
 
112
+ def import_vcs(filename)
113
+
114
+ puts 'filename: ' + filename.inspect if @debug
115
+ icsfile = FileX.read filename
116
+ cal = Vpim::Icalendar.decode(icsfile).first
117
+ puts '*********************' if @debug
118
+ r = cal.components[0]
119
+ datestart = "%s %s" % [r.dtstart.day.ordinal, r.dtstart.strftime("%B %Y at %H:%M%P")]
120
+ event = "%s: %s at %s %s" % [r.categories.join(', '), r.summary, r.location, datestart]
121
+
122
+ if r.dtend then
123
+
124
+ if r.dtstart.to_date == r.dtend.to_date then
125
+ event += '-' + r.dtend.strftime("%H:%M%P")
126
+ else
127
+ dateend = "%s %s" % [r.dtend.day.ordinal, r.dtend.strftime("%B %Y at %H:%M%P")]
128
+ event += ' to ' + dateend
129
+ end
130
+
131
+ end
132
+
133
+ h = {
134
+ input: event,
135
+ title: "%s: %s" % [r.categories.join(', '), r.summary],
136
+ date: r.dtstart
137
+ }
138
+
139
+ h[:venue] = r.location if r.location
140
+ h[:end_date] = r.dtend if r.dtend
141
+
142
+ add OpenStruct.new(h)
143
+
144
+ end
145
+
96
146
  def upcoming(ndays=5, days: ndays, months: nil)
97
147
 
98
148
  next_date = if months then
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.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  tYyvieamfpSjWJEZi7K760qv2dWJ9kwfaJ7Q3TVP4Jjt0Iwep7Gutk7GV3uY35DA
36
36
  iHcajrfKduh5CsLsvkXRjR4E
37
37
  -----END CERTIFICATE-----
38
- date: 2022-02-23 00:00:00.000000000 Z
38
+ date: 2022-08-10 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: dynarex
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '1.9'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.9.6
49
+ version: 1.9.11
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,27 +56,27 @@ dependencies:
56
56
  version: '1.9'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 1.9.6
59
+ version: 1.9.11
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: event_nlp
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '0.6'
66
+ version: '0.7'
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 0.6.0
69
+ version: 0.7.0
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '0.6'
76
+ version: '0.7'
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: 0.6.0
79
+ version: 0.7.0
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: human_speakable
82
82
  requirement: !ruby/object:Gem::Requirement
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  requirements: []
126
- rubygems_version: 3.2.22
126
+ rubygems_version: 3.3.7
127
127
  signing_key:
128
128
  specification_version: 4
129
129
  summary: Reads and updates diary reminders from a plain text file
metadata.gz.sig CHANGED
Binary file