all_todo 0.2.5 → 0.2.6

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
  SHA1:
3
- metadata.gz: 2a8a7191466d855104247bbdbb0aaa39770ba4e9
4
- data.tar.gz: 6f7d3caa80412e0d7cebf43411ca932ab6e442b3
3
+ metadata.gz: d80cbe5c128f3320c9bb8f0626627cf5cff1d501
4
+ data.tar.gz: 37ec15daf411af4ee593fc1407b6489a70dd34d0
5
5
  SHA512:
6
- metadata.gz: b5a410e929ddf079c1f84b223a55fb7c2a41325ea6808bc8622de181350fd4df0536edab8c760b46efc1564d7238a5abc04d04a38111e604cb0854b6a923a42e
7
- data.tar.gz: 3c23ef655fdd84c3a0829bebf99a4026e48a42a2aaa44c013276ef9bc0016bea40cccaa9ca0291e103574caf718e39a0ff8dfcdddd8c0b7d1df8f291ec4c7709
6
+ metadata.gz: f74d0642869b6fc178369cf45bd2820755c51aa49c54dba964cc68cb8668a162aa4ba1d9103016f581b5e5d48021a4b0cdc4f3730545537e7211468796412dc2
7
+ data.tar.gz: 571c487ea51d45c9c42ab65da719acf29bc70b75fed915d6679e22f3ce2c9f990109b7718109ed58e92a38ea93f5d088c70242a119b1fc4f6104be50b17e181f
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/all_todo.rb CHANGED
@@ -17,9 +17,9 @@ class AllTodo
17
17
  lines = s.lines
18
18
  lines.shift 3
19
19
 
20
- @fields = %w( todo heading when duration priority status note tags)
21
- declar = "<?ph schema='sections[title]/section[#{@fields.join(',')}]'" +
22
- " format_masks[0]='[!todo]'?>"
20
+ @fields = %w( title heading when duration priority status note tags)
21
+ declar = "<?ph schema='items[title]/todo[#{@fields.join(',')}]'" +
22
+ " format_masks[0]='[!title]'?>"
23
23
 
24
24
  # add a marker to identify the headings after parsing the records
25
25
 
@@ -29,19 +29,25 @@ class AllTodo
29
29
 
30
30
  @px.each_recursive do |x, parent, level|
31
31
 
32
- todo = x.todo
32
+ todo = x.title
33
33
 
34
- raw_status = todo.slice!(/\[.*\]\s+/)
35
- x.todo = todo
34
+ # is the to-do item selected for action today?
35
+ today_item = todo.slice!(/^\*\s+/)
36
36
 
37
+ x.when = 'today' if today_item
38
+
39
+ raw_status = todo.slice!(/\[.*\]\s+/)
40
+ x.title = todo
41
+
37
42
  status = raw_status =~ /\[\s*x\s*\]/ ? 'done' : ''
43
+
38
44
  x.status = status
39
45
 
40
46
  # is there a note?
41
47
 
42
48
  note = todo[/^note:\s+(.*)/i,1]
43
49
 
44
- if note and parent.is_a? PolyrexObjects::Section then
50
+ if note and parent.is_a? PolyrexObjects::Todo then
45
51
 
46
52
  parent.note = note
47
53
  x.delete
@@ -59,7 +65,7 @@ class AllTodo
59
65
  raw_tags = heading.slice!(/\s+#.*$/)
60
66
  x.tags = raw_tags[/#\s+(.*)/,1] if raw_tags
61
67
  x.heading = heading
62
- x.todo = ''
68
+ x.title = ''
63
69
 
64
70
  end
65
71
 
@@ -121,9 +127,13 @@ class AllTodo
121
127
  indent = ' ' * relative_level
122
128
 
123
129
  status = x.status == 'done' ? 'x' : ' '
124
- todo = "%s[%s] %s" % [indent, status, x.todo]
130
+
131
+ todo = []
132
+ todo << '* ' if x.when == 'today'
133
+ todo << "%s[%s] %s" % [indent, status, x.title]
134
+
125
135
  lines << '' if i == 0 and parent.heading.length > 0
126
- lines << todo
136
+ lines << todo.join
127
137
 
128
138
  lines << "%s Note: %s\n" % [indent, x.note] if x.note.length > 0
129
139
 
@@ -138,5 +148,47 @@ class AllTodo
138
148
  ([title, '=' * title.length] + lines[1..-1]).join("\n")
139
149
 
140
150
  end
151
+
152
+ # prints out the to-do list for today
153
+
154
+ def today(day='today')
155
+
156
+ px = @px
157
+
158
+ raw_rows = px.find_all_by_todo_when(day).map do |x|
159
+
160
+ headings = fetch_heading(x.parent)
161
+
162
+ # print the headings
163
+
164
+ a = headings.reverse.map.with_index do |s, i|
165
+ "%s %s" % ['#'* (i+1), s]
166
+ end
167
+
168
+ status = x.status == 'done' ? 'x' : ' '
169
+ [a, "[%s] %s" % [status, x.title]]
170
+ end
171
+
172
+ h = raw_rows.group_by(&:first)
173
+
174
+ lines = []
175
+
176
+ h.each do |heading, items|
177
+ lines << heading.join("\n") << ''
178
+ lines << items.map{|x| x[1..-1]}.join("\n") << ''
179
+ end
180
+
181
+ filename = 'todo_daily.txt'
182
+ ([filename, '=' * filename.length, ''] + lines).join("\n")
183
+
184
+ end
185
+
186
+ private
187
+
188
+ def fetch_heading(item, a=[])
189
+ a << item.heading
190
+ a.concat fetch_heading(item.parent) if item.parent?
191
+ a
192
+ end
141
193
 
142
194
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: all_todo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  4IWTpx4UfuUB+a/n3zRd7tPzfsCnbjv0WeNaOLxPEdrqrbPxdMp0ULnHMi6/cuMX
32
32
  +/4csIEIHj2yLg==
33
33
  -----END CERTIFICATE-----
34
- date: 2016-11-24 00:00:00.000000000 Z
34
+ date: 2016-11-25 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: pxrowx
metadata.gz.sig CHANGED
Binary file