sectionx 0.2.3 → 0.3.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: 18ba024193f2b8e20e98abdbc95a62066b7225a9
4
- data.tar.gz: 3657688b3c3ad30593a5f140b53d7eee9c353ca5
3
+ metadata.gz: 2b74f9782ec66a578c1079d6e38a7778497f36ab
4
+ data.tar.gz: ef6e1fd7e0ce3f84f4a0285316fd407ed7e08cde
5
5
  SHA512:
6
- metadata.gz: 5b5cbc940c639cc7a79829d811f0cc2eb9660923e314e45c0c939332387aff154bcf71e16e8a8f780fdffac6e468224be852e16bc03191a83d8421615f95423e
7
- data.tar.gz: dcb5ea50fa71f42603c7c94759e40be38be0d22daed0cd845765b9bb3d907abcdd6e6a9266fe6549cfd49de8d51087dd6c82aa347eef361796fac05d8c10e1d3
6
+ metadata.gz: d19aae42e9a1e1052434594a2f10755444dbebf2e5222a62d56b9575d00645d56f7d935eb906270d8a04cd62b28c2b45e3676dca890e201ea8476158cdaf04d7
7
+ data.tar.gz: 01527d3916d68d4a2a7329892e11ed1e9911942e4490b8209792084d69ee44213a502e9a248ebd16cf928c52ea3f7c7da7529673f82938a28081f8079d0f650a
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/sectionx.rb CHANGED
@@ -37,47 +37,29 @@ class SectionX
37
37
  nested = indent_heading("# summary\n%s\n# begin\n%s" % [summary,\
38
38
  body.strip])
39
39
  a = LineTree.new(nested).to_a
40
-
41
- raw_summary = a.shift.flatten(1)
42
- raw_summary.shift
40
+ puts 'a' + a.inspect
41
+ raw_summary = a.shift
42
+ raw_summary.shift # removes the redundant summary label
43
43
 
44
- summary = raw_summary.inject({}) do |r,raw_x|
45
- label, value = raw_x.split(/\s*:\s*/,2)
46
- r.merge(label.downcase.gsub(/\s+/,'_').to_sym => value)
47
- end
48
44
 
49
-
50
- section1 = a.shift.flatten(1)
51
- section1.shift
45
+ section1 = a.shift # get the 1st section
46
+ section1[0] = nil # nilify the section heading 'begin'
52
47
 
53
48
  xml = RexleBuilder.new
54
49
 
55
50
  a2 = xml.send(id) do
51
+
56
52
  xml.summary do
57
- summary.each {|label, value| xml.send(label, escape(value)) }
53
+ build_rows xml, raw_summary
58
54
  xml.recordx_type 'sectionx'
59
55
  end
56
+
60
57
  xml.sections do
61
- xml.section do
62
- xml.summary do
63
- section1.each do |raw_x|
64
- label, value = raw_x.split(/\s*:\s*/,2)
65
- xml.send(label.downcase.gsub(/\s+/,'_'), escape(value))
66
- end
67
- end
68
- xml.sections
69
- end
70
- a.each do |section_name, raw_rows|
71
- xml.section({title: section_name}) do
72
- xml.summary do
73
- raw_rows.each do |raw_x|
74
- label, value = raw_x.split(/\s*:\s*/,2)
75
- xml.send(label.downcase.gsub(/\s+/,'_'), escape(value))
76
- end
77
- end
78
- xml.sections
79
- end
80
- end
58
+
59
+ build_section xml, section1
60
+
61
+ a.each {|raw_rows| build_section xml, raw_rows }
62
+
81
63
  end
82
64
  end
83
65
 
@@ -110,7 +92,39 @@ class SectionX
110
92
  end
111
93
 
112
94
  private
95
+
96
+ def build_rows(xml, raw_rows)
97
+
98
+ raw_rows.each do |raw_x|
99
+ label, value = raw_x[0].split(/\s*:\s*/,2)
100
+ xml.send(label.downcase.gsub(/\s+/,'_'), escape(value))
101
+ end
102
+ end
103
+
104
+ def build_section(xml, raw_rows)
105
+
106
+ section_name = raw_rows.shift
113
107
 
108
+ attr = section_name ? {title: section_name} : {}
109
+
110
+ xml.section(attr) do
111
+
112
+ rows, sections = raw_rows.partition {|x| x.length == 1}
113
+ build_summary xml, rows
114
+
115
+ xml.sections do
116
+ sections.each {|section| build_section xml, section }
117
+ end
118
+ end
119
+
120
+ end
121
+
122
+ def build_summary(xml, raw_rows)
123
+
124
+ xml.summary { build_rows xml, raw_rows }
125
+
126
+ end
127
+
114
128
  def escape(v)
115
129
  v.gsub('&','&amp;').gsub('<','&lt;').gsub('>','&gt;')
116
130
  end
@@ -119,15 +133,17 @@ class SectionX
119
133
 
120
134
  a = s.split(/(?=^\s*#{heading}\s*\w)/).map do |x|
121
135
 
122
- heading_title = x[/^\s*#{heading}\s*(.*)/,1]
136
+ heading_title = x[/^\s*#{heading}\s*.*/]
123
137
 
124
138
  if heading_title then
125
139
 
126
140
  lines = x.lines
127
- body = lines[1..-1].map{|y| y.prepend ' '}.join
141
+ body = lines[1..-1]\
142
+ .map{|y| y.strip.length > 0 ? y.prepend(' ') : y }.join
128
143
  r = indent_heading(body, heading + '#')
129
144
 
130
- heading_title + "\n" + r
145
+ heading_title.sub(/#+\s*/,'') + "\n" + r
146
+
131
147
  else
132
148
  x
133
149
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sectionx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  fF3d7swBn//lagO6DAUK+663TP5+b44Iqo8hPzD1c9+c5WJjVDaCskt69Ue5+dlb
32
32
  VamQ/GtAeu1Iyg==
33
33
  -----END CERTIFICATE-----
34
- date: 2015-02-25 00:00:00.000000000 Z
34
+ date: 2015-02-26 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: line-tree
@@ -42,7 +42,7 @@ dependencies:
42
42
  version: '0.5'
43
43
  - - ">="
44
44
  - !ruby/object:Gem::Version
45
- version: 0.5.1
45
+ version: 0.5.2
46
46
  type: :runtime
47
47
  prerelease: false
48
48
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,7 +52,7 @@ dependencies:
52
52
  version: '0.5'
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: 0.5.1
55
+ version: 0.5.2
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: rexle-builder
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -102,7 +102,7 @@ dependencies:
102
102
  version: '0.1'
103
103
  - - ">="
104
104
  - !ruby/object:Gem::Version
105
- version: 0.1.15
105
+ version: 0.1.16
106
106
  type: :runtime
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
@@ -112,7 +112,7 @@ dependencies:
112
112
  version: '0.1'
113
113
  - - ">="
114
114
  - !ruby/object:Gem::Version
115
- version: 0.1.15
115
+ version: 0.1.16
116
116
  description:
117
117
  email: james@r0bertson.co.uk
118
118
  executables: []
metadata.gz.sig CHANGED
Binary file