dynarex-tags 0.5.0 → 0.6.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
  SHA256:
3
- metadata.gz: 21324eac79f55d86b9e94c1f64b0e4b95aab59e3c3a5a06f57298592eb102f6a
4
- data.tar.gz: 6326394ac809de0e106e98b955dd7213aece2d4603c9d190b2a1ced7a0371923
3
+ metadata.gz: 1ed697129ddcfd3a2cbfc650bc7e4828f6df0ade942a39640fc55fb764daae4f
4
+ data.tar.gz: 8e0671fcdfcd675e60030133618b63d3ea289c0a154c03a57e2d99120c3e2a6c
5
5
  SHA512:
6
- metadata.gz: 9eefe9f1f05e116aea1fd7b571282b84df07308a176b86a566efebd8036936b420ac2f6da6f767f78df765c727735b09e5ed523b4d4cff12addd7861746a6827
7
- data.tar.gz: fea7b18e1f5e321be0ae2f79a3e818ca8d81be517ee3f9a44b04d0819343134ea3bba15a2b23d7423437fee26a862516907b791978094c6ee2f5f752250cf388
6
+ metadata.gz: 26d3a75760b83cf8dcc3758c6061b6b354e84c43ed94b3010d11b3c62898ecb43af42056c8b144fc109da175917c708a1ead7be521e0dff23bdc08a653fbed07
7
+ data.tar.gz: 698fba777462534e8caf14bdcd523816f75701ac0a028d29d04f49bd6cc860f76cc3540fc39e35751348cc41f0743afdbe9d8eab6f05915feea79a9b3318a8e2
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/dynarex-tags.rb CHANGED
@@ -3,49 +3,49 @@
3
3
  # file: dynarex-tags.rb
4
4
 
5
5
  require 'dynarex'
6
- require 'fileutils'
6
+ require 'rxfreadwrite'
7
7
 
8
8
 
9
9
  class DynarexTags
10
- include RXFHelperModule
10
+ include RXFReadWriteModule
11
11
  using ColouredText
12
12
 
13
- def initialize(tags_parent_path, tagfile_xslt: nil, indexfile_xslt: nil,
13
+ def initialize(tags_parent_path, tagfile_xslt: nil, indexfile_xslt: nil,
14
14
  debug: false)
15
15
 
16
16
  puts ('tags_parent_path: ' + tags_parent_path).debug if debug
17
17
  @filepath = tags_parent_path
18
-
19
- @tagfile_xslt, @indexfile_xslt, @debug = tagfile_xslt,
18
+
19
+ @tagfile_xslt, @indexfile_xslt, @debug = tagfile_xslt,
20
20
  indexfile_xslt, debug
21
-
21
+
22
22
  @tags_path = File.join(tags_parent_path, 'tags')
23
23
  FileX.mkdir_p @tags_path
24
- @index_filename = File.join(tags_parent_path, 'dxtags.xml')
24
+ @index_filename = File.join(tags_parent_path, 'dxtags.xml')
25
25
 
26
26
  s = FileX.exists?(@index_filename) ? \
27
- @index_filename : 'tags/tag(keyword,count)'
27
+ @index_filename : 'tags/tag(keyword,count)'
28
28
 
29
29
  puts ('dxtags filepath: ' + s.inspect).debug if debug
30
30
  @dxtags = Dynarex.new s, json_out: false
31
- @dxtags.xslt = @indexfile_xslt if @indexfile_xslt
32
-
31
+ @dxtags.xslt = @indexfile_xslt if @indexfile_xslt
32
+
33
33
  end
34
-
34
+
35
35
  def add(title: nil, url: nil)
36
-
37
-
36
+
37
+
38
38
  puts ('title: ' + title.inspect).debug if @debug
39
39
  puts ('url: ' + url.inspect).debug if @debug
40
-
40
+
41
41
  h = @dxtags.all.inject({}) {|r,x| r.merge(x.keyword.downcase => x.count) }
42
-
42
+
43
43
  a = title.scan(/(?<=\B#)[\w_]+/).uniq
44
44
 
45
45
  a.each do |tag|
46
-
46
+
47
47
  t = tag.downcase
48
-
48
+
49
49
  h[t] = save_tag(h[t], t, title, url)
50
50
 
51
51
  if @dxtags.record_exists? tag then
@@ -54,40 +54,40 @@ class DynarexTags
54
54
  @dxtags.create({keyword: tag, count: h[t]}, id: t)
55
55
  end
56
56
 
57
- end
58
-
59
- @dxtags.save @index_filename
57
+ end
58
+
59
+ @dxtags.save @index_filename
60
60
 
61
61
  end
62
-
62
+
63
63
  def delete(title)
64
-
64
+
65
65
  # find the title in each of the tags file directory
66
66
  a = title.downcase.scan(/(?<=#)[\w_]+/)
67
-
67
+
68
68
  a.each do |tag|
69
69
 
70
70
  puts ("deleting tag: %s for title: %s" % [tag, title]).debug if @debug
71
71
  tagfile = File.join(@tags_path, tag + '.xml')
72
- dx = Dynarex.new(tagfile, json_out: false, autosave: true)
72
+ dx = Dynarex.new(tagfile, json_out: false, autosave: true)
73
73
  rx = dx.find_by_title title
74
- rx.delete
74
+ rx.delete
75
75
  dx.rm if dx.all.empty?
76
76
 
77
- # find the title in dxtags.xml and delete it
77
+ # find the title in dxtags.xml and delete it
78
78
  entry = @dxtags.find tag
79
-
79
+
80
80
  next unless entry
81
-
81
+
82
82
  if entry.count == '1' then
83
83
  entry.delete
84
84
  else
85
85
  entry.count = entry.count.to_i - 1
86
86
  end
87
-
87
+
88
88
  end
89
-
90
- @dxtags.save @index_filename
89
+
90
+ @dxtags.save @index_filename
91
91
 
92
92
  end
93
93
 
@@ -95,17 +95,17 @@ class DynarexTags
95
95
 
96
96
  rx = @dxtags.find tag.downcase
97
97
  puts ('rx: ' + rx.inspect).debug if @debug
98
-
98
+
99
99
  if rx then
100
100
 
101
101
  tagfile = File.join(@tags_path, tag.downcase + '.xml')
102
102
  dx = Dynarex.new(tagfile, json_out: false)
103
103
  r = dx.all
104
-
104
+
105
105
  def r.to_md()
106
106
  self.map {|x| "* [%s](%s)" % [x.title, x.url]}.join("\n")
107
107
  end
108
-
108
+
109
109
  return r
110
110
 
111
111
  end
@@ -113,13 +113,13 @@ class DynarexTags
113
113
  end
114
114
 
115
115
  def generate(indexfilename=File.join(@filepath, 'index.xml'), &blk)
116
-
116
+
117
117
  dx = Dynarex.new indexfilename
118
118
 
119
- h = @dxtags.all.inject({}) {|r,x| r.merge(x.keyword.downcase => x.count) }
120
-
119
+ h = @dxtags.all.inject({}) {|r,x| r.merge(x.keyword.downcase => x.count) }
120
+
121
121
  dx.all.each do |x|
122
-
122
+
123
123
  a = if block_given? then
124
124
  blk.call(x)
125
125
  else
@@ -128,38 +128,38 @@ class DynarexTags
128
128
  end
129
129
 
130
130
  a.each do |tag, title, url|
131
-
131
+
132
132
  t = tag.downcase
133
-
133
+
134
134
  h[t] = save_tag(h[t], t, title, url)
135
-
135
+
136
136
  end
137
137
  end
138
138
 
139
-
140
- h.each do |tag, count|
141
-
139
+
140
+ h.each do |tag, count|
141
+
142
142
  if @dxtags.record_exists? tag then
143
143
  @dxtags.update(tag, {count: count.to_s})
144
144
  else
145
145
  @dxtags.create({keyword: tag, count: count.to_s}, id: tag.downcase)
146
146
  end
147
-
147
+
148
148
  end
149
-
150
- @dxtags.save @index_filename
149
+
150
+ @dxtags.save @index_filename
151
151
 
152
152
  end
153
153
 
154
- def tags()
155
-
154
+ def tags()
155
+
156
156
  @dxtags.all.inject({}) do |r, x|
157
157
  tagfile = File.join(@tags_path, x.keyword.downcase + '.xml')
158
158
  dx = Dynarex.new(tagfile, json_out: false)
159
159
  r.merge({x.keyword.downcase => dx.all.map(&:to_h)})
160
160
  end
161
-
162
-
161
+
162
+
163
163
  end
164
164
 
165
165
 
@@ -167,7 +167,7 @@ class DynarexTags
167
167
 
168
168
 
169
169
  def save_tag(tag_count, tag, title, url)
170
-
170
+
171
171
  puts ('tag_count: ' + tag_count.inspect).debug if @debug
172
172
  tagfile = File.join(@tags_path, tag + '.xml')
173
173
  buffer = tag_count ? tagfile : 'items/item(title,url)'
@@ -180,5 +180,5 @@ class DynarexTags
180
180
  dx.save tagfile
181
181
  dx.all.length
182
182
  end
183
-
183
+
184
184
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynarex-tags
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,31 +11,31 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwMjA0MTMxNjM0WhcN
15
- MjEwMjAzMTMxNjM0WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDC/ff/
17
- gfPRr5xGDuIY111P28+CvsILh8JiHQNCEJM/wV+A1WaFkk0+6meTDRfPE+OWBg8j
18
- cuirMGTZD/YM6mI4egeXSEFn0pI33cyTNJtWBny6KNTQMr3+rjBZsFYN3OROl9qc
19
- u2fDBiegInbX87j0fcGTzTp+8JRilbki610hthDZaPgSIOpqhBLlZjRQahSzlYMH
20
- 7itMTMJbIwE1Y8D4ou0JKwypITz21LYtq7uG1WS3rMbrsRghaDxGFzUL/7lZkdDT
21
- 8ckxwN+op+yJJe17WFs2DdY6HAs+Jxzor10DlLzQwTz8hcFLIA46TQHqQ6cm06d+
22
- Vqqz2LO20Qn/Op/KgqtGmhDe0HxdoUFH3PFlxsKkRckJduU7Eh1d3eII5KxX6zyw
23
- e3cVQHfbRKK90bDOzF8TI2rUQYFplDo5wLLh4ZSV/L9K43MCJhjEdY5odZXSYAu2
24
- c5dQgdsciCQO2NSeVz3WhTlvCGfVqOY0Hs627/jwxtEMgpIaJw6Gcdi9vgMCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUYSRcoTqh
26
- Ra0gVdgHhPhn7ps5R4IwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwMjIzMTk0MjA3WhcN
15
+ MjMwMjIzMTk0MjA3WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDEplt/
17
+ LsdiR1h5neKpHsqzxvzSmsMHAK8Z64ZWny00yB389RNIXh2QT3kR3kdJDDUGXw8/
18
+ NzCAMHzRL5pursOVraSKAO2yev5wTXwKTtA+c9RU4CluZnFQqwTDOj7NX1iAK3l9
19
+ mgx0Cr1bNkDv4c4nLNBI7D/XpOz95EcD5r+T/gOitBPGa6P14ll2mJHb2JckCe9n
20
+ RQ4iSgfGS0UVvIn2LuQhEelvlWulPgglrMAFrN2FPLqUhNDqTfOEcSWQdL/JJ7/8
21
+ rPFgqjFabPqWSEU23fCp2UHrVDbzPn2gjkiXkhjReKmGYXxcCFkodDN8Xx3a1zOL
22
+ EW+EIzQjcMOL5zFxaNU3YntLyidlXavwxf0QAjvL86WKMMw45TN/cQ1SLEgkXYXP
23
+ KO9bfnLc/JwOjcFzcTcT0BRWbbTmXtMEmdHqxIF+EfEJEp2sO6/hB5bgIyiinlKp
24
+ qaJNWYi8zCRXONn3lcJNQA2Ly0cVO6QwRpFg0XQLo/qkF4BEoKYg4GhAMJECAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUsHWsQnZT
26
+ SEzBzLVOKmCJy5j3ikMwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAdkaYz8G8Tr6GXqppHcg3GbhyMkjqnvhi37nMF4XQ
29
- YX7MIRvOTcYKL9f/P+2aXz7lx51AfO7Wu2EuArqY3pscI/NZVom+zG2bcozuktro
30
- iyt9+pRsr5vmBInsBIJFCAv7UrYgjb8+wRgsxa/YJhLMopNAoX3QsK71W/M2RKvj
31
- QzMnzpJFAQU//T53h0B8s1a3VV21U5ZFP0GVBivsI0Hm2usZAoOb1CUXs84jcyWY
32
- SLpv/+wlquTtfrfRWnczF/C2O7B529cjoSNqtKMjdYKMlwBTugIm4gucoJonD1CU
33
- EaaPJjX9w6K3De++HusiEKu2oHd+JiR2j5qdX3XTG7JEkiX0von4uHaUrJFaAGnH
34
- rePFmZw0bxRR63IZWn+IoWWqmLcszNGVxf6iX6QJ2pGkzJX5lH/dvWss2COmS8pk
35
- TuaTftS/eOCUrKh82sVL9MVsyubh/Jgl1guxjDpnE97DcvkIbFcnaPEkPqy3l993
36
- ifLAl+7pKql1bFp0xNyxRlU9
28
+ BgkqhkiG9w0BAQsFAAOCAYEAE6VTWAXk+ij9rjtjlzRvSIcMRHtjmvLhh8Ino6Wf
29
+ NjvKY1N3GXWVaykBpM7HGQsw2nHqw995nrqeeFEVaxoB5f8DVH0byH9KySryLuat
30
+ JZkYT+ZK4m4UompdPSN5OTcOgr7gu4oF6kGgQAMLXF3lHiM25fJhVdwBwxnZjvAg
31
+ iGM2su3faAmg4477LueW05d6cbCJ+iDHROf/PYSe9QQ4hbPrju00S8KfIDg9zOOj
32
+ A64uzZRvsfKMs8Fx2vall7sDqHcU3FhMRDZuy1OuMfQC45s7OwEE6sCjPfqvF3j0
33
+ yhIEw9ItCiYHhE6DxO518tdr6x8HgvLAjNwE2/v73Mj0gHOeMGBD5CfymYltB15y
34
+ hkZHVlLGEUPCTPfxYmdrxudsEcvYjlv8eRqwIT34hb8q/SvZ4UQ5Ep3h66ny2fBt
35
+ Gn0CkDQj+j/nOYRHXZh5P4U5CbL9ZrhpNi02sMwBYOGAfy8xGTIaDErxymeFV95A
36
+ eWFHlR8BTtTjZAXezxMFrlqp
37
37
  -----END CERTIFICATE-----
38
- date: 2020-02-04 00:00:00.000000000 Z
38
+ date: 2022-02-23 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: dynarex
@@ -43,22 +43,22 @@ dependencies:
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.8'
46
+ version: '1.9'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.8.23
49
+ version: 1.9.6
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '1.8'
56
+ version: '1.9'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 1.8.23
59
+ version: 1.9.6
60
60
  description:
61
- email: james@jamesrobertson.eu
61
+ email: digital.robertson@gmail.com
62
62
  executables: []
63
63
  extensions: []
64
64
  extra_rdoc_files: []
@@ -83,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  requirements: []
86
- rubygems_version: 3.0.3
86
+ rubygems_version: 3.2.22
87
87
  signing_key:
88
88
  specification_version: 4
89
89
  summary: Uses hashtags to help reference 1 or more records from an index file.
metadata.gz.sig CHANGED
Binary file