pxindex 0.2.0 → 0.2.1

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
- SHA1:
3
- metadata.gz: 7180ae0be92aec1948a8592f67fd96c6138ac5a3
4
- data.tar.gz: 040f39f96f57dd9554bd16292f21ea22a1a551db
2
+ SHA256:
3
+ metadata.gz: 9e8b4df7ff1521ad0cc9feae7ccd38f243ea8d964e82118a8d69ef1e5d747882
4
+ data.tar.gz: 995a8f24c9ff2f2461eff8ac12a313ad91b29234fcec8f052a8f2acd98fdef67
5
5
  SHA512:
6
- metadata.gz: 91b355f5c224817cada42a6ae93d57c7287cbddb1a1d04d5f5e1e16c9741a13f82c84626f499030bc6fb1864c5481ade05e78aa34b76aa1888d0d7507b8daa54
7
- data.tar.gz: 682442727286c7e103d833345ad3916f7b29ec07aeacac41c665a2e6fdd19666ef791c2d97541cc6a7b754c6abbc6c685b3647bfae39e6fc4feabf1dc6fe16e1
6
+ metadata.gz: d320fe09c8a07b229f96a2df82feb24a78e19c89f24b94d1de88f7b0dba327318f916526673b3d0b811af4e8501ddc0f2540f77678e5361f160c2854ddacb39c
7
+ data.tar.gz: 5d118fe4a3afbfdebeeec100b657350ac6da61ca9a9f12a1be2a4839d21fd47e1d2e8f4ccb24268ce0fae855e7bb7ba8ba30c5640ce7b90aa2ff0bc62df56762
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/pxindex.rb CHANGED
@@ -67,6 +67,40 @@ class PxIndex
67
67
 
68
68
  alias query q?
69
69
 
70
+ def build_html()
71
+
72
+
73
+ @px.each_recursive do |x, parent|
74
+
75
+ if x.is_a? Entry then
76
+
77
+ trail = parent.attributes[:trail]
78
+ s = x.title.gsub(/ +/,'-')
79
+ x.attributes[:trail] = trail.nil? ? s : trail + '/' + s
80
+
81
+ end
82
+
83
+ end
84
+
85
+ doc = Nokogiri::XML(@px.to_xml)
86
+ xsl = Nokogiri::XSLT(xslt())
87
+
88
+ html_doc = Rexle.new(xsl.transform(doc).to_s)
89
+
90
+ html_doc.root.css('.atopic').each do |e|
91
+
92
+ puts 'e: ' + e.parent.parent.xml.inspect if @debug
93
+
94
+ href = e.attributes[:href]
95
+ if href.empty? or href[0] == '!' then
96
+ yield(e)
97
+ end
98
+ end
99
+
100
+ html_doc.xml(pretty: true, declaration: false)
101
+
102
+ end
103
+
70
104
  def to_px()
71
105
  @px
72
106
  end
@@ -131,11 +165,7 @@ class PxIndex
131
165
  if a.any? then
132
166
  puts 'a.map ' + a.map(&:title).inspect
133
167
  end
134
- end
135
-
136
- if s.length == 1 and a.any? and keywords.length < 2 then
137
- #a = a.first.records
138
- end
168
+ end
139
169
 
140
170
  if a.any? then
141
171
 
@@ -145,7 +175,7 @@ class PxIndex
145
175
 
146
176
  return nil unless keywords.length > 1
147
177
 
148
- r = rs #.flat_map(&:records)
178
+ r = rs
149
179
 
150
180
  if r.any? then
151
181
 
@@ -163,6 +193,7 @@ class PxIndex
163
193
  end
164
194
 
165
195
  def sort(a)
196
+
166
197
  puts 'sorting ... a: ' + a.inspect if @debug
167
198
  return sort_children(a) if a.first.is_a? String
168
199
 
@@ -170,8 +201,11 @@ class PxIndex
170
201
  next unless x[0].is_a? String
171
202
  x[0]
172
203
  end
204
+
173
205
  puts 'after sort: ' + r.inspect if @debug
206
+
174
207
  r
208
+
175
209
  end
176
210
 
177
211
  def sort_children(a)
@@ -191,6 +225,56 @@ class PxIndex
191
225
  ' ' * indent + obj
192
226
 
193
227
  end
228
+ end
229
+
230
+
231
+ def xslt()
232
+ <<EOF
233
+ <?xml version="1.0" encoding="UTF-8"?>
234
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
235
+ <xsl:output method="xml" indent="yes" />
236
+
237
+ <xsl:template match='entries'>
238
+ <ul>
239
+ <xsl:apply-templates select='summary'/>
240
+ <xsl:apply-templates select='records'/>
241
+ </ul>
242
+ </xsl:template>
243
+
244
+ <xsl:template match='entries/summary'>
245
+ </xsl:template>
246
+
247
+ <xsl:template match='records/section'>
248
+ <li><h1><xsl:value-of select="summary/heading"/></h1><xsl:text>
249
+ </xsl:text>
250
+
251
+ <xsl:apply-templates select='records'/>
252
+
253
+ <xsl:text>
254
+ </xsl:text>
255
+ </li>
256
+ </xsl:template>
257
+
258
+
259
+ <xsl:template match='records/entry'>
260
+ <ul id="{summary/title}">
261
+ <li><xsl:text>
262
+ </xsl:text>
263
+ <a href="{summary/url}" class='atopic' id='{@id}' trail='{@trail}'>
264
+ <xsl:value-of select="summary/title"/></a><xsl:text>
265
+ </xsl:text>
266
+
267
+ <xsl:apply-templates select='records'/>
268
+
269
+ <xsl:text>
270
+ </xsl:text>
271
+ </li>
272
+ </ul>
273
+ </xsl:template>
274
+
275
+
276
+ </xsl:stylesheet>
277
+ EOF
194
278
  end
195
279
 
196
280
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pxindex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -30,7 +30,7 @@ cert_chain:
30
30
  IIkRAfg3vUhmtNQu26Gsi9aZcJAGPKIjdRuYc9oyiGpJv0cQ02HBGRUXnoKS7XYT
31
31
  QDc=
32
32
  -----END CERTIFICATE-----
33
- date: 2018-04-14 00:00:00.000000000 Z
33
+ date: 2019-01-16 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: pxindex-builder
@@ -99,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  version: '0'
100
100
  requirements: []
101
101
  rubyforge_project:
102
- rubygems_version: 2.6.13
102
+ rubygems_version: 2.7.6
103
103
  signing_key:
104
104
  specification_version: 4
105
105
  summary: Experimental gem to facilitate a keyword search, by querying a Polyrex document
metadata.gz.sig CHANGED
Binary file