all_todo 0.1.1 → 0.2.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
  SHA1:
3
- metadata.gz: 175e73b57c1d10ac2ba181f29b75ebc157fc338a
4
- data.tar.gz: 158f117f95b91c334427b28d9f5d0d4ae782512b
3
+ metadata.gz: 5bd07113f2ecdb974722a6043b3b988964bed8e3
4
+ data.tar.gz: f73797ac6601c5e7210a972e676c003a1978bbec
5
5
  SHA512:
6
- metadata.gz: b3eb23b4a778223680e700cb4d419f04087b0f5c57b071731d4c4dd695aadb742d280b3ac3b058b93b3759792aed3c39db19f06cd77c3d94238f7685fde3edd2
7
- data.tar.gz: 01fbf7b6d8dc3c8fdff87e7937fa1a80e2a7e32f6e25b2ede502c5227c2e5c78e70ebfd87ec421d9a59674aaf4a8b4a7fbf329be52f28182356e725bd947ea25
6
+ metadata.gz: c30b739e1e3222bc9a94bf4df92347a0b8217efd33c56b919216f90a4b7214122ccf1758a8766c862ec470f85cfea0859d612479728d73fa1d5653c4f94e1243
7
+ data.tar.gz: 832ba84449f600344216438bab60da8090c41b8238180a86507c7475c018567617eeefd2ea87777dba144ec3d707b60b027ffa0ede4c3460aaee67f5594b8ff1
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/all_todo.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  # file: all_todo.rb
4
4
 
5
5
 
6
+ require 'pxrowx'
6
7
  require 'polyrex-headings'
7
8
 
8
9
 
@@ -14,12 +15,80 @@ class AllTodo
14
15
  lines = s.lines
15
16
  lines.shift 3
16
17
 
17
- declaration = '<?ph schema="sections[title]/section[x]"?>'
18
- @px = PolyrexHeadings.new(declaration + "\n" + lines.join).to_polyrex
18
+ @fields = %w(todo when duration priority)
19
+ declar = "<?ph schema='sections[title]/section[#{@fields.join(',')}]'" +
20
+ " format_masks[0]='[!todo]'?>"
21
+
22
+ @px = PolyrexHeadings.new(declar + "\n" + lines.join).to_polyrex
23
+
24
+
25
+ end
26
+
27
+ def detail()
28
+
29
+ doc = Rexle.new(@px.to_xml)
30
+ a = scan doc.root.element('records')
31
+ lines = scan_print a
32
+
33
+ filename = 'all_todo_detail.txt'
34
+ heading = [filename, '=' * filename.length, '', ''].join("\n")
35
+
36
+ heading + lines.join("\n")
37
+
38
+ end
39
+
40
+ alias breakdown detail
41
+
42
+ def parse_detail(s)
43
+
44
+ lines = s.lines
45
+ lines.shift 3
46
+ pr = PxRowX.new(lines.join)
47
+ pr.to_xml pretty: true
19
48
 
20
49
  end
21
50
 
22
51
  def to_px
23
52
  @px
24
53
  end
54
+
55
+ private
56
+
57
+
58
+ def scan(node)
59
+
60
+ node.elements.map do |section|
61
+
62
+ summary = section.xpath('summary').map do |x|
63
+ @fields.map {|y| x.text(y)}
64
+ end
65
+
66
+ summary + scan(section.element('records'))
67
+ end
68
+ end
69
+
70
+ def scan_print(a, indent=0)
71
+
72
+ lines = []
73
+
74
+ a.each do |row_children|
75
+
76
+ row = row_children.shift
77
+
78
+ @fields.zip(row).each do |col|
79
+
80
+ label, value = col
81
+ lines << ' ' * indent + [label, value].join(': ')
82
+
83
+ end
84
+
85
+ lines << "\n"
86
+
87
+ lines.concat scan_print(row_children, indent+1) if row_children.any?
88
+
89
+ end
90
+
91
+ lines
92
+ end
93
+
25
94
  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.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,8 +31,28 @@ cert_chain:
31
31
  4IWTpx4UfuUB+a/n3zRd7tPzfsCnbjv0WeNaOLxPEdrqrbPxdMp0ULnHMi6/cuMX
32
32
  +/4csIEIHj2yLg==
33
33
  -----END CERTIFICATE-----
34
- date: 2016-11-20 00:00:00.000000000 Z
34
+ date: 2016-11-21 00:00:00.000000000 Z
35
35
  dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: pxrowx
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '0.1'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 0.1.0
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '0.1'
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 0.1.0
36
56
  - !ruby/object:Gem::Dependency
37
57
  name: polyrex-headings
38
58
  requirement: !ruby/object:Gem::Requirement
metadata.gz.sig CHANGED
Binary file