mindwords 0.5.7 → 0.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4766e91a6c371e9d2e8849bafdd77cea548cf43d76630a9400f0ec3b2b778953
4
- data.tar.gz: 3f17f99a76ea226ca636f7c8c3ecf24e0e1b8c79571fd299d5dfa00bc10f9d63
3
+ metadata.gz: aa290828ca8b921917460e6f8958c8b21d461c269a060e63c6079f57090d7d3e
4
+ data.tar.gz: e719d8986ece5f93bc994682a02b8f9826f1b5554349b40402d2a699920ba40b
5
5
  SHA512:
6
- metadata.gz: 55c7625e72007789f37b6968271655a772d3d1696991b05f112a39f2ca4b437da71ce5795375887b0b908074bdbd3d2104f0a602aa37f46b518263e2eb2d07e7
7
- data.tar.gz: 4d5174c595015db117857d1e9db0b8d211d541136f83cf27e08d84bd86768f0b34e53692579f6d12a5a0931fcf3cc9939ff4deac689276cbedc8c095c8a3bf55
6
+ metadata.gz: 407b282223460ffb5585e15c5acaa1b377cefb17350b7626680cafd6d4f742a2ab1a0b19223385f74ca332f2830f5cc618e22fff93d6a704a0a3921b18dfb65c
7
+ data.tar.gz: 1f4c83f14c4e5c2ad51925445edb600a9e60a14482f7b4e057703b8ea980d8e631d5c901ebe49b034db3ce73e7ce0515ef936214e18ba138a93b0aee472f1b93
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/mindwords.rb CHANGED
@@ -29,8 +29,30 @@ class MindWords
29
29
  s, type = RXFHelper.read raws
30
30
 
31
31
  @filepath = raws if type == :file or type == :dfs
32
- @lines = s.strip.gsub(/^\n/,'').lines
33
- @lines.shift if @lines.first =~ /<\?mindwords\?>/
32
+ lines = s.strip.gsub(/^\n/,'').lines
33
+ lines.shift if lines.first =~ /<\?mindwords\?>/
34
+
35
+ @lines = lines.inject([]) do |r,line|
36
+
37
+ # the following does 2 things:
38
+ # 1. splits words separated by a bar (|) onto their own line
39
+ # 2. prefixes a word with an underscore if the word is the
40
+ # same as the hashtag. That way it's not removed by the
41
+ # redundancy checker
42
+
43
+ raw_words, raw_hashtags = line.split(/(?= #)/,2)
44
+ words = raw_words.split(/ *\| */)
45
+ hashtags = raw_hashtags.scan(/(?<=#)\w+/)
46
+
47
+ words.each do |word|
48
+
49
+ linex = (word + ' ' + raw_hashtags)
50
+ r << (hashtags.include?(word) ? linex.sub!(/\b#{word}\b/, '_\0') \
51
+ : linex)
52
+ end
53
+
54
+ r
55
+ end
34
56
 
35
57
  end
36
58
 
@@ -41,6 +63,10 @@ class MindWords
41
63
  def breadcrumb()
42
64
  @parent.attributes[:breadcrumb].split(/ +\/ +/) if @parent
43
65
  end
66
+
67
+ def headings()
68
+ breadcrumb[0..-2]
69
+ end
44
70
 
45
71
 
46
72
  def element(id)
@@ -99,7 +125,7 @@ class MindWords
99
125
 
100
126
  end
101
127
 
102
- def search(keyword)
128
+ def search(keyword, succinct: true)
103
129
 
104
130
  a = @lines.grep(/#{keyword}/i).map do |line|
105
131
 
@@ -120,7 +146,7 @@ class MindWords
120
146
  puts 'a2: ' + a2.inspect if @debug
121
147
  e = element(keyword.downcase.gsub(/ +/,'-'))
122
148
 
123
- return nil if e.nil?
149
+ return MindWords.new(a2.uniq.join, debug: @debug) if e.nil?
124
150
 
125
151
  # find and add any linkage support lines
126
152
  #
@@ -141,8 +167,11 @@ class MindWords
141
167
  puts 'a2: ' + a2.inspect if @debug
142
168
  a2.concat a3
143
169
 
144
- MindWords.new(a2.uniq.join, parent: e, debug: @debug)
145
- #MindWords.new(a2.uniq.join, debug: @debug)
170
+ if succinct then
171
+ MindWords.new(a2.uniq.join, parent: e, debug: @debug)
172
+ else
173
+ MindWords.new(a2.uniq.join, debug: @debug)
174
+ end
146
175
 
147
176
  end
148
177
 
@@ -310,6 +339,22 @@ class MindWords
310
339
  doc.root
311
340
  end
312
341
 
342
+ # the following removes any undescore prefix from words which were the
343
+ # same as the hashtag
344
+
345
+ node.root.each_recursive do |e|
346
+
347
+ next unless e
348
+ puts 'e: ' + e.inspect if @debug
349
+
350
+ e.attributes[:id] = e.attributes[:id].sub(/^_/,'') if e.attributes[:id]
351
+ e.attributes[:title] = e.attributes[:title].sub(/^_/,'') if e.attributes[:title]
352
+ e.value = e.value.sub(/^_/,'')
353
+
354
+ end
355
+
356
+ # ----
357
+
313
358
  @outline = treeize node
314
359
 
315
360
  node.root.each_recursive do |e|
@@ -372,7 +417,7 @@ class MindWords
372
417
 
373
418
  duplicates.each do |path|
374
419
 
375
- puts 'path: ' + path.inspect if @debug
420
+ puts 'pathx: ' + path.inspect if @debug
376
421
  e = doc.element(path)
377
422
  e.delete if e
378
423
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mindwords
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.7
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  aWH7D2AmhOpqNwWnPHzWR/yzpigAVTrvpHfRxZleQj6Z/090nIH2KR0RdioMmPFq
36
36
  3+574KQzs/gR9Y5a+iMcvHRN
37
37
  -----END CERTIFICATE-----
38
- date: 2021-04-07 00:00:00.000000000 Z
38
+ date: 2021-04-09 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: line-tree
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '0.9'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.9.1
49
+ version: 0.9.2
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,7 +56,7 @@ dependencies:
56
56
  version: '0.9'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 0.9.1
59
+ version: 0.9.2
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: rxfhelper
62
62
  requirement: !ruby/object:Gem::Requirement
metadata.gz.sig CHANGED
Binary file