dynarex-tags 0.3.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/dynarex-tags.rb +82 -14
- metadata +5 -5
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35c3f170ed1082dbbd4151235bfbc30fc54b175c9b0d711768406d0293e06ee4
|
4
|
+
data.tar.gz: 37784fc281759926b994b669896d5c332a830e99c90f9147f8f4b7d1f646446a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea1e944d2a168ac6a5a4b3ca36f9956e6473a1a832ee5cf822c3d9084875b322f48e5385d8f8432972fa72851a044c62143aff7182c7194dd90f8c2d2bd93719
|
7
|
+
data.tar.gz: bf7a6130f746afcb5536f470e99e0d0870ed965a8903421bff3b4b044e5bc3ea11f999f04fb03de46cbc47a9744426a98bc364dc04994628b426c41a2a8f157d
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/dynarex-tags.rb
CHANGED
@@ -27,14 +27,73 @@ class DynarexTags
|
|
27
27
|
@index_filename : 'tags/tag(keyword,count)'
|
28
28
|
|
29
29
|
puts ('dxtags filepath: ' + s.inspect).debug if debug
|
30
|
-
@
|
31
|
-
@
|
30
|
+
@dxtags = Dynarex.new s, json_out: false
|
31
|
+
@dxtags.xslt = @indexfile_xslt if @indexfile_xslt
|
32
32
|
|
33
33
|
end
|
34
|
+
|
35
|
+
def add(title: nil, url: nil)
|
36
|
+
|
37
|
+
|
38
|
+
puts ('title: ' + title.inspect).debug if @debug
|
39
|
+
puts ('url: ' + url.inspect).debug if @debug
|
40
|
+
|
41
|
+
h = @dxtags.all.inject({}) {|r,x| r.merge(x.keyword.downcase => x.count) }
|
42
|
+
|
43
|
+
a = title.scan(/(?<=\B#)[\w_]+/).uniq
|
44
|
+
|
45
|
+
a.each do |tag|
|
46
|
+
|
47
|
+
t = tag.downcase
|
48
|
+
|
49
|
+
h[t] = save_tag(h[t], t, title, url)
|
50
|
+
|
51
|
+
if @dxtags.record_exists? tag then
|
52
|
+
@dxtags.update(tag, {count: h[t]})
|
53
|
+
else
|
54
|
+
@dxtags.create({keyword: tag, count: h[t]}, id: t)
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
@dxtags.save @index_filename
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
def delete(title)
|
64
|
+
|
65
|
+
# find the title in each of the tags file directory
|
66
|
+
a = title.downcase.scan(/(?<=#)[\w_]+/)
|
67
|
+
|
68
|
+
a.each do |tag|
|
69
|
+
|
70
|
+
puts ("deleting tag: %s for title: %s" % [tag, title]).debug if @debug
|
71
|
+
tagfile = File.join(@tags_path, tag + '.xml')
|
72
|
+
dx = Dynarex.new(tagfile, json_out: false, autosave: true)
|
73
|
+
rx = dx.find_by_title title
|
74
|
+
rx.delete
|
75
|
+
dx.rm if dx.all.empty?
|
76
|
+
|
77
|
+
# find the title in dxtags.xml and delete it
|
78
|
+
entry = @dxtags.find tag
|
79
|
+
|
80
|
+
next unless entry
|
81
|
+
|
82
|
+
if entry.count == '1' then
|
83
|
+
entry.delete
|
84
|
+
else
|
85
|
+
entry.count = entry.count.to_i - 1
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
@dxtags.save @index_filename
|
91
|
+
|
92
|
+
end
|
34
93
|
|
35
94
|
def find(tag)
|
36
95
|
|
37
|
-
rx = @
|
96
|
+
rx = @dxtags.find tag.downcase
|
38
97
|
puts ('rx: ' + rx.inspect).debug if @debug
|
39
98
|
|
40
99
|
if rx then
|
@@ -57,7 +116,7 @@ class DynarexTags
|
|
57
116
|
|
58
117
|
dx = Dynarex.new indexfilename
|
59
118
|
|
60
|
-
h = @
|
119
|
+
h = @dxtags.all.inject({}) {|r,x| r.merge(x.keyword.downcase => x.count) }
|
61
120
|
|
62
121
|
dx.all.each do |x|
|
63
122
|
|
@@ -68,38 +127,47 @@ class DynarexTags
|
|
68
127
|
.map{|tag| [tag, x.title, x.url]}
|
69
128
|
end
|
70
129
|
|
71
|
-
a.each
|
130
|
+
a.each do |tag, title, url|
|
131
|
+
|
132
|
+
t = tag.downcase
|
133
|
+
|
134
|
+
h[t] = save_tag(h[t], t, title, url)
|
135
|
+
|
136
|
+
end
|
72
137
|
end
|
73
138
|
|
74
139
|
|
75
|
-
h.each do |tag,count|
|
140
|
+
h.each do |tag, count|
|
76
141
|
|
77
|
-
if @
|
78
|
-
@
|
142
|
+
if @dxtags.record_exists? tag then
|
143
|
+
@dxtags.update(tag, {count: count.to_s})
|
79
144
|
else
|
80
|
-
@
|
145
|
+
@dxtags.create({keyword: tag, count: count.to_s}, id: tag.downcase)
|
81
146
|
end
|
82
147
|
|
83
148
|
end
|
149
|
+
|
150
|
+
@dxtags.save @index_filename
|
84
151
|
|
85
|
-
|
86
|
-
end
|
152
|
+
end
|
87
153
|
|
88
154
|
|
89
155
|
private
|
90
156
|
|
91
157
|
|
92
|
-
def save_tag(
|
158
|
+
def save_tag(tag_count, tag, title, url)
|
93
159
|
|
160
|
+
puts ('tag_count: ' + tag_count.inspect).debug if @debug
|
94
161
|
tagfile = File.join(@tags_path, tag + '.xml')
|
95
|
-
buffer
|
96
|
-
|
162
|
+
buffer = tag_count ? tagfile : 'items/item(title,url)'
|
163
|
+
|
97
164
|
dx = Dynarex.new(buffer, json_out: false)
|
98
165
|
|
99
166
|
dx.xslt = @tagfile_xslt if @tagfile_xslt
|
100
167
|
dx.create(url: url, title: title)
|
101
168
|
|
102
169
|
dx.save tagfile
|
170
|
+
dx.all.length
|
103
171
|
end
|
104
172
|
|
105
173
|
end
|
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.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
DWmhPViInQPjQftcVmbEJ7cSh3MAHLmEde9WXtfuVrqm7bLx2cT6gGph4MUs2CuA
|
36
36
|
WkefAv1RxMCo/1hDjM5UvmJx
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2018-11-
|
38
|
+
date: 2018-11-04 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: dynarex
|
@@ -46,7 +46,7 @@ dependencies:
|
|
46
46
|
version: '1.8'
|
47
47
|
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 1.8.
|
49
|
+
version: 1.8.10
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -56,7 +56,7 @@ dependencies:
|
|
56
56
|
version: '1.8'
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: 1.8.
|
59
|
+
version: 1.8.10
|
60
60
|
description:
|
61
61
|
email: james@jamesrobertson.eu
|
62
62
|
executables: []
|
@@ -87,5 +87,5 @@ rubyforge_project:
|
|
87
87
|
rubygems_version: 2.7.6
|
88
88
|
signing_key:
|
89
89
|
specification_version: 4
|
90
|
-
summary:
|
90
|
+
summary: Uses hashtags to help reference 1 or more records from an index file.
|
91
91
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|