reminders_txt 0.8.0 → 0.9.0

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
  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