rodo 0.1.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.
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Rodo
4
+ VERSION = "0.1.0"
5
+ end
data/plan.md ADDED
@@ -0,0 +1,267 @@
1
+ # 2021-06-08
2
+
3
+ Todos until Rodo 0.1.0
4
+ - [x] Release
5
+ - [x] Test on Mac
6
+ - [x] Update README.md
7
+ - [x] Silence warnings about pattern matching
8
+
9
+ Todos for Rodo 0.2.0 and later
10
+ - [x] When postponing copy section headers and parent todos
11
+ - [ ] Short intro video
12
+ - [ ] When closing days, use a checkmark to mark the day as done
13
+ - [ ] Multiline/wrap support
14
+ - [ ] Autosave
15
+ - [ ] Add migration mode
16
+ - [ ] Montly Log Mode
17
+ - [ ] Copy and Paste from <ul>/<ol> and OneNote
18
+ - [ ] Improve command palette with support for cursor keys
19
+
20
+ # 2021-06-02
21
+
22
+ Todos until Rodo 0.1.0
23
+ - [>] Release
24
+ - [x] Improve postponing, so that it merges better with day closure.
25
+ - [x] Postponing should postpone at least 1 day, but never to a day in the past (same with close)
26
+ - [x] Add support for shadow cursor
27
+ - [>] Test on Mac
28
+
29
+ Todos for Rodo 0.2.0 and later
30
+ - [>] When postponing copy section headers and parent todos
31
+ - [>] When closing days, use a checkmark to mark the day as done
32
+ - [>] Multiline/wrap support
33
+ - [>] Autosave
34
+ - [>] Add migration mode
35
+ - [>] Montly Log Mode
36
+ - [>] Copy and Paste from <ul>/<ol> and OneNote
37
+ - [>] Improve command palette with support for cursor keys
38
+
39
+ # 2021-05-30 Sun
40
+
41
+ Todos until Rodo 0.1.0
42
+ - [x] When closing merge text, with existing days
43
+ - [x] Add some tests
44
+ - [>] Release
45
+
46
+ Todos for Rodo 0.2.0 and later
47
+ - [>] When postponing copy section headers and parent todos
48
+ - [>] When closing days, use a checkmark to mark the day as done
49
+ - [>] Multiline/wrap support
50
+ - [>] Autosave
51
+ - [>] Add migration mode
52
+ - [>] Montly Log Mode
53
+ - [>] Copy and Paste from <ul>/<ol> and OneNote
54
+ - [>] Improve command palette with support for cursor keys
55
+
56
+ # 2021-05-27 Thu
57
+
58
+ Todos until Rodo 0.1.0
59
+ - [>] When closing merge text with existing days
60
+ - [x] Only start debug window when run with ruby $DEBUG
61
+ - [x] Use Shift+~ to Toogle Debug Console
62
+ - [x] Copy and Paste with Bracketed Paste mode and some basic clean-ups (tabs)
63
+ - [x] CTRL+Cursor Keys should navigate in text line
64
+
65
+ Todos for Rodo 0.2.0 and later
66
+ - [>] When postponing copy section headers and parent todos
67
+ - [>] When closing days, use a checkmark to mark the day as done
68
+ - [>] Multiline/wrap support
69
+ - [>] Autosave
70
+ - [>] Add migration mode
71
+ - [>] Montly Log Mode
72
+ - [>] Copy and Paste from <ul>/<ol> and OneNote
73
+ - [>] Improve command palette with support for cursor keys
74
+
75
+ # 2021-05-26 Wed
76
+
77
+ Todos until Rodo 0.1.0
78
+ - [x] Add command area
79
+ - [x] Add utility functions for creating an input box
80
+ - [x] Show list of options
81
+ - [-] Size of command area should match available options
82
+ - [x] Add support for postpone several (p+number+ENTER)
83
+ - [x] When inserting and appending respect indent
84
+ - [>] When closing merge text with existing days
85
+ - [x] Switched [u] to [>] after reading the bullet journal website
86
+ - [>] Only start debug window when run with ruby -w
87
+
88
+ Todos for Rodo 0.2.0 and later
89
+ - [>] When postponing copy section headers and parent todos
90
+ - [>] When closing days, use a checkmark to mark the day as done
91
+ - [>] Multiline/wrap support
92
+ - [>] Autosave
93
+ - [>] Add migration mode
94
+ - [>] Montly Log Mode
95
+ - [>] Copy and Paste from <ul>/<ol> and OneNote
96
+
97
+ # 2021-05-25
98
+ - [>] Add command area
99
+ - [>] Add utility functions for creating an input box
100
+ - [>] Show list of options
101
+ - [>] Size of command area should match available options
102
+ - [>] Add support for postpone several (p+number+ENTER)
103
+ - [>] When inserting and appending respect indent
104
+ - [>] When closing merge text with existing days
105
+ - [x] FIX: Bundler freezes strings, so we need to .dup string literals which we want to modify later
106
+
107
+ Long term todos:
108
+ - [>] When postponing copy section headers and parent todos
109
+ - [>] When closing days, use a checkmark to mark the day as done
110
+ - [>] Multiline/wrap support
111
+
112
+ # 2021-05-22 08:12
113
+ - [u] Add command area
114
+ - [u] Add utility functions for creating an input box
115
+ - [u] Show list of options
116
+ - [u] Size of command area should match available options
117
+ - [u] Add support for postpone several (p+number+ENTER)
118
+ - [u] When inserting and appending respect indent
119
+ - [u] When closing merge text with existing days
120
+ - [x] BUG: Pressing escape shouldn't delete line, if user typed something.
121
+ - [x] Host on github
122
+
123
+ Long term todos:
124
+ - [u] When postponing copy section headers and parent todos
125
+ - [u] When closing days, use a checkmark to mark the day as done
126
+ - [u] Multiline/wrap support
127
+
128
+ # 2021-05-22
129
+ - [x] Reduce ESC delay: https://stackoverflow.com/questions/27372068/why-does-the-escape-key-have-a-delay-in-python-curses
130
+
131
+ # 2021-05-21
132
+ - [u] Add command area
133
+ - [u] Add utility functions for creating an input box
134
+ - [u] Show list of options
135
+ - [u] Size of command area should match available options
136
+ - [u] When postponing copy section headers and parent todos
137
+ - [u] When closing days, use a checkmark to mark the day as done
138
+ - [u] Add support for postpone several (p+number+ENTER)
139
+ - [u] Multiline/wrap support
140
+ - [x] In journalling mode: When pressing enter twice, remove indent/marks
141
+ - [x] When entering journalling mode, move cursor to end of line
142
+
143
+ # 2021-05-18
144
+ - [x] Test task for waiting - ⌛ since 2021-05-11
145
+
146
+ # 2021-05-17
147
+ - [u] Add command area
148
+ - [u] Add utility functions for creating an input box
149
+ - [u] Show list of options
150
+ - [u] Size of command area should match available options
151
+ - [x] Filter options while typing
152
+ - [u] When postponing copy section headers and parent todos
153
+ - [u] When closing days, use a checkmark to mark the day as done
154
+ - [u] When inserting and appending respect indent
155
+ - [u] Add support for postpone several (p+number+ENTER)
156
+ - [u] Multiline/wrap support
157
+ - [x] Add automatic prefixing of lines which start with '\s[-*]\s\[.\]'
158
+
159
+ # 2021-05-16 14:28
160
+ - [u] Add undo support
161
+ - [u] Add command area
162
+ - [u] Add support for postpone several (p+number+ENTER)
163
+ - [u] Reduce ESC delay: https://stackoverflow.com/questions/27372068/why-does-the-escape-key-have-a-delay-in-python-curses
164
+ - [u] Multiline/wrap support
165
+ - [x] CTRL+D for DEL
166
+ - [x] Add mode to 'm'ove entries back and forth
167
+
168
+ # 2021-05-16
169
+ - [u] Add undo support
170
+ - [u] Add command area
171
+ - [u] Add support for postpone several (p+number+ENTER)
172
+ - [x] Support resize
173
+ - [x] Sort entry correctly on append
174
+ - [x] Save *.bak to _bak folder (and create it if it doesn't exist)
175
+ - [x] Fix highlighting of page indicator
176
+ - [u] Reduce ESC delay: https://stackoverflow.com/questions/27372068/why-does-the-escape-key-have-a-delay-in-python-curses
177
+ - [u] Multiline/wrap support
178
+
179
+ # 2021-05-15
180
+ - [u] Add undo support
181
+ - [u] Add command area
182
+ - [u] Add support for postpone several (p+number+ENTER)
183
+ - [u] Support resize
184
+ - [x] Journaling mode (ENTER doesn't stop editing)
185
+ - [u] Sort entry correctly on append
186
+
187
+ Sub-Section:
188
+ - [u] Fix highlighting of page indicator
189
+ - [u] Reduce ESC delay: https://stackoverflow.com/questions/27372068/why-does-the-escape-key-have-a-delay-in-python-curses
190
+ - [u] Multiline/wrap support
191
+
192
+ # 2021-05-11 14:00
193
+ - [x] Support for Tab/S+Tab during edit mode
194
+ - [x] Add support for 'w'aiting and add a waiting window
195
+ - [⌛] Test task for waiting
196
+ - [x] Start on current date or most recent day in the past
197
+ - [x] Put [u] back in, because we need to close out old tasks when moving to new days
198
+ - [u] Add undo support
199
+ - [u] Add command area
200
+ - [u] Add support for postpone several (p+number+ENTER)
201
+ - [u] Support resize
202
+ - [u] Journaling mode (ENTER doesn't stop editing)
203
+
204
+ Sub-Section:
205
+ - [u] Fix highlighting of page indicator
206
+ - [u] Reduce ESC delay: https://stackoverflow.com/questions/27372068/why-does-the-escape-key-have-a-delay-in-python-curses
207
+ - [u] Multiline/wrap support
208
+
209
+ # 2021-05-11 09:02
210
+ - [x] Don't use [u] when tasks are pushed to the next day
211
+ - [ ] Start on current date or most recent day in the past
212
+ - [ ] Add undo support
213
+ - [x] Pressing escape on a line which was just inserted remove it again
214
+ - [ ] Add command area
215
+ - [ ] Add support for postpone several (p+number+ENTER)
216
+ - [x] Add support for DEL during edit mode
217
+ - [x] Add support for cursor positioning using arrow keys.
218
+ - [x] Add support for CTRL+A and CTRL+E during edit mode.
219
+ - [ ] Support resize
220
+
221
+ Sub-Section:
222
+ - [ ] Fix highlighting of page indicator
223
+ - [ ] Reduce ESC delay: https://stackoverflow.com/questions/27372068/why-does-the-escape-key-have-a-delay-in-python-curses
224
+ - [ ] Multiline/wrap support
225
+
226
+ # 2021-05-11
227
+ - [u] Start on current date or most recent day in the past
228
+ - [u] Add undo support
229
+ - [u] Add support for postpone several (p+number+ENTER)
230
+ Sub-Section:
231
+ - [u] Fix highlighting of page indicator
232
+ - [u] Reduce ESC delay: https://stackoverflow.com/questions/27372068/why-does-the-escape-key-have-a-delay-in-python-curses
233
+ - [u] Multiline/wrap support
234
+ - [x] Closing a day should copy all sections
235
+
236
+ # 2021-05-08
237
+ - [u] Start on current date or most recent day in the past
238
+ - [u] Add undo support
239
+ - [u] Add support for postpone several (p+number+ENTER)
240
+ - [u] Fix highlighting of page indicator
241
+ - [u] Reduce ESC delay: https://stackoverflow.com/questions/27372068/why-does-the-escape-key-have-a-delay-in-python-curses
242
+
243
+ - [x] Backspace Key: Crashes when 0
244
+ - [x] Add edit mode 'e'
245
+
246
+ # 2021-05-07
247
+ - [x] Create file if it does not exist (with current day)
248
+ - [x] Add support for postpone (p)
249
+ - [x] I(nsert) will actually a(append) when on the first line
250
+ - [u] Start on current date or most recent day in the past
251
+ - [u] Add undo support
252
+ - [u] Add support for postpone several (p+number+ENTER)
253
+ - [u] Fix highlighting of page indicator
254
+ - [x] Support for Umlauts äöü
255
+
256
+ # 2021-05-06
257
+ - [x] Add way to add any date
258
+ - [x] Show indicators that there are more days in the past/future.
259
+ - [u] Start on current date or most recent day in the past
260
+ - [x] Add support for kill (k)
261
+ - [x] Add support for append (a)
262
+ - [u] Add support for postpone (p)
263
+ - [x] Get colors working
264
+
265
+ # 2021-05-01
266
+ - [x] Serialization
267
+ - [u] Get colors working
data/rodo.gemspec ADDED
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/rodo/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "rodo"
7
+ spec.version = Rodo::VERSION
8
+ spec.authors = ["Christopher Oezbek"]
9
+ spec.email = ["c.oezbek@gmail.com"]
10
+ spec.licenses = ['GPL-3.0-or-later']
11
+
12
+ spec.summary = "Rodo is terminal-based todo manager"
13
+ spec.description = "Rodo is terminal-based todo manager written in Ruby with a inbox-zero mentality."
14
+ spec.homepage = "https://github.com/coezbek/rodo"
15
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
16
+
17
+ spec.metadata["allowed_push_host"] = 'https://rubygems.org'
18
+
19
+ spec.metadata["homepage_uri"] = spec.homepage
20
+ spec.metadata["source_code_uri"] = "https://github.com/coezbek/rodo"
21
+ spec.metadata["changelog_uri"] = "https://github.com/coezbek/rodo/plan.md"
22
+
23
+ # Specify which files should be added to the gem when it is released.
24
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
26
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
27
+ end
28
+ spec.bindir = "exe"
29
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
+ spec.require_paths = ["lib"]
31
+
32
+ # Runtime dependencies
33
+ spec.add_dependency "curses", "~> 1.4"
34
+ spec.add_dependency "warning", "~> 1.0"
35
+
36
+ # Development dependencies
37
+ spec.add_development_dependency "rspec", "~> 3.10"
38
+ end
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rodo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Christopher Oezbek
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-06-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: curses
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: warning
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.10'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.10'
55
+ description: Rodo is terminal-based todo manager written in Ruby with a inbox-zero
56
+ mentality.
57
+ email:
58
+ - c.oezbek@gmail.com
59
+ executables:
60
+ - rodo
61
+ extensions: []
62
+ extra_rdoc_files: []
63
+ files:
64
+ - ".gitignore"
65
+ - Gemfile
66
+ - LICENSE
67
+ - README.md
68
+ - Rakefile
69
+ - bin/console
70
+ - bin/setup
71
+ - exe/rodo
72
+ - lib/rodo.rb
73
+ - lib/rodo/commands.rb
74
+ - lib/rodo/curses_util.rb
75
+ - lib/rodo/rodolib.rb
76
+ - lib/rodo/version.rb
77
+ - plan.md
78
+ - rodo.gemspec
79
+ homepage: https://github.com/coezbek/rodo
80
+ licenses:
81
+ - GPL-3.0-or-later
82
+ metadata:
83
+ allowed_push_host: https://rubygems.org
84
+ homepage_uri: https://github.com/coezbek/rodo
85
+ source_code_uri: https://github.com/coezbek/rodo
86
+ changelog_uri: https://github.com/coezbek/rodo/plan.md
87
+ post_install_message:
88
+ rdoc_options: []
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 2.7.0
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ requirements: []
102
+ rubygems_version: 3.1.4
103
+ signing_key:
104
+ specification_version: 4
105
+ summary: Rodo is terminal-based todo manager
106
+ test_files: []