reminders_txt 0.7.0 → 0.9.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
  SHA256:
3
- metadata.gz: 47aef7833540b8091c405532ea18f2c7e5f21907a4cc2bc5dd44c027858fcf2b
4
- data.tar.gz: 772c3421c3521bc8ef5de3db1fe8742c1f8dc8dfed435b7416ff33252137629b
3
+ metadata.gz: 3374da8e9e063a36520ddd0d8d916dbc4b2e600dbe8ed6c595b387599dc5dba8
4
+ data.tar.gz: 138ee3fed7fe6c4b5571ce627d16c7d4036637a255f84c11626f453cd9bbbcac
5
5
  SHA512:
6
- metadata.gz: 7f8437caf5ed5917341837189ac3c437602e629bac78404376ba2d2af5a495b823577dceac1ff4f1929d2bd8fd51839b8860535e19f33732d624cf35b3e1a4b9
7
- data.tar.gz: fe18da158fae800b99d3cc9c92bef68048cc2f3c61649cfbd9f36aedbabd135c198f125000d86271489669c1d8826ff450f6c2ab67cf596117bc6cac456e91ff
6
+ metadata.gz: 1a280af4775c6d214142a15f0907d5711688cb0e3ecee74442611dcf94330be1907d1e15bb87f600e7378741cc8c0ab303cda4bd3bf8620f16167fcf3accadc8
7
+ data.tar.gz: 85bf7b3c7082ffb3cd24ae4840de0bda4cbb93e8d4f32790657e06b89b0809b33c7856c9fa8089ec14c7a611199e2455f6f37ad2818dbf5e132a74a4d6d00983
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/reminders_txt.rb CHANGED
@@ -7,17 +7,24 @@ require 'dynarex'
7
7
  require 'event_nlp'
8
8
  require 'digest/md5'
9
9
  require 'human_speakable'
10
+ require 'rxfreadwrite'
11
+ require 'vpim'
10
12
 
11
13
 
12
- class RemindersTxtException < Exception
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
13
19
 
20
+ class RemindersTxtException < Exception
14
21
 
15
22
  end
16
23
 
17
24
 
18
25
  class RemindersTxt
19
26
  using ColouredText
20
- include RXFHelperModule
27
+ include RXFReadWriteModule
21
28
 
22
29
  attr_reader :reminders, :dx
23
30
 
@@ -41,7 +48,7 @@ class RemindersTxt
41
48
 
42
49
  else
43
50
 
44
- @filepath = File.join(Dir.pwd, 'reminders.txt')
51
+ @filepath = File.join(DirX.pwd, 'reminders.txt')
45
52
  @dxfilepath = @filepath.sub(/.txt$/,'.xml')
46
53
 
47
54
  @dx = Dynarex.new
@@ -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?
68
82
 
69
- s.strip!
70
- r = EventNlp.new(@now, params: {input: s}).parse(s)
71
- return if r.nil?
83
+ elsif obj.is_a? OpenStruct
84
+
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
@@ -261,7 +311,7 @@ class RemindersTxt
261
311
  filepath = File.dirname @dxfilepath
262
312
 
263
313
  notesfile = File.join(filepath, 'reminder_notes.xml')
264
- return unless File.exists? notesfile
314
+ return unless FileX.exists? notesfile
265
315
 
266
316
  dx = Dynarex.new notesfile
267
317
 
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.7.0
4
+ version: 0.9.1
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-02 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.2
49
+ version: 1.9.11
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,47 +56,67 @@ dependencies:
56
56
  version: '1.9'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 1.9.2
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
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 0.6.0
67
64
  - - "~>"
68
65
  - !ruby/object:Gem::Version
69
- version: '0.6'
66
+ version: '0.7'
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
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
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: 0.6.0
77
74
  - - "~>"
78
75
  - !ruby/object:Gem::Version
79
- version: '0.6'
76
+ version: '0.7'
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: 0.7.0
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: human_speakable
82
82
  requirement: !ruby/object:Gem::Requirement
83
83
  requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- version: 0.2.0
87
84
  - - "~>"
88
85
  - !ruby/object:Gem::Version
89
86
  version: '0.2'
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 0.2.0
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.2'
94
97
  - - ">="
95
98
  - !ruby/object:Gem::Version
96
99
  version: 0.2.0
100
+ - !ruby/object:Gem::Dependency
101
+ name: vpim
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
97
104
  - - "~>"
98
105
  - !ruby/object:Gem::Version
99
- version: '0.2'
106
+ version: '13.11'
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 13.11.11
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '13.11'
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: 13.11.11
100
120
  description:
101
121
  email: digital.robertson@gmail.com
102
122
  executables: []
@@ -123,8 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
143
  - !ruby/object:Gem::Version
124
144
  version: '0'
125
145
  requirements: []
126
- rubyforge_project:
127
- rubygems_version: 2.7.10
146
+ rubygems_version: 3.3.7
128
147
  signing_key:
129
148
  specification_version: 4
130
149
  summary: Reads and updates diary reminders from a plain text file
metadata.gz.sig CHANGED
Binary file