mymedia 0.2.13 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data/lib/mymedia.rb +166 -138
- data.tar.gz.sig +0 -0
- metadata +52 -48
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 879bb9d7cf2f55bd38bb6d2e005d824fc0b63760931424c0ef16599c8e405581
|
4
|
+
data.tar.gz: 77ccdb6252d36a6bf313e491169a2df56b5325284a809060894bb6e30eadfaec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf2b2df683d4055893ce649e8c3ebc30eee11fbe432b8c9fd7292ee3ca4be66843304e63a79e68a67e3dc2b2cb6e43653de7da371da695274aae2030bd5701c6
|
7
|
+
data.tar.gz: 56cb9c6a53dbd585d1ade2ae2a1afff3934823b3bc7bcd9fad89cbb0cb205316281dad53220a3652559d1f36e84ef218312bc4bc40a6a95e8f497979f43fa580
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/mymedia.rb
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
# file: mymedia.rb
|
4
4
|
|
5
5
|
require 'time'
|
6
|
-
require 'fileutils'
|
7
6
|
require 'logger'
|
8
7
|
require 'dynarex'
|
9
8
|
require 'sps-pub'
|
@@ -17,23 +16,24 @@ module MyMedia
|
|
17
16
|
|
18
17
|
class MyMediaPublisherException < Exception
|
19
18
|
end
|
20
|
-
|
21
|
-
|
19
|
+
|
20
|
+
|
22
21
|
class Publisher
|
23
|
-
|
22
|
+
include RXFHelperModule
|
23
|
+
|
24
24
|
def initialize(opts={})
|
25
25
|
@index_page = true
|
26
26
|
@opts = opts
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
protected
|
30
|
-
|
30
|
+
|
31
31
|
def publish_dynarex(dynarex_filepath='', \
|
32
32
|
record={title: '',url: '', raw_url: ''}, options={})
|
33
|
-
|
33
|
+
|
34
34
|
opt = {id: nil, rss: false}.merge(options)
|
35
35
|
|
36
|
-
dynarex = if
|
36
|
+
dynarex = if FileX.exists? dynarex_filepath then
|
37
37
|
Dynarex.new(dynarex_filepath)
|
38
38
|
else
|
39
39
|
Dynarex.new(@schema)
|
@@ -43,180 +43,230 @@ module MyMedia
|
|
43
43
|
dynarex.save dynarex_filepath
|
44
44
|
publish_html(dynarex_filepath) if @index_page == true
|
45
45
|
|
46
|
-
|
46
|
+
|
47
47
|
if opt[:rss] == true then
|
48
48
|
|
49
49
|
dynarex.xslt_schema = dynarex.summary[:xslt_schema]
|
50
50
|
rss_filepath = dynarex_filepath.sub(/\.xml$/,'_rss.xml')
|
51
|
-
|
51
|
+
FileX.write rss_filepath, dynarex.to_rss
|
52
52
|
end
|
53
53
|
|
54
54
|
end
|
55
55
|
|
56
56
|
def publish_html(filepath)
|
57
57
|
|
58
|
-
path2 = File.dirname(filepath)
|
58
|
+
path2 = File.dirname(filepath)
|
59
59
|
template_path = File.join path2, 'index-template.html'
|
60
60
|
|
61
|
-
return unless @index_page == true
|
61
|
+
return unless @index_page == true
|
62
62
|
raise MyMediaPublisherException, \
|
63
63
|
"template path: #{template_path} not found" unless \
|
64
|
-
|
65
|
-
=begin jr 040916
|
64
|
+
FileX.exists?(template_path)
|
65
|
+
=begin jr 040916
|
66
66
|
dataisland = DataIsland.new(template_path, @opts)
|
67
67
|
|
68
68
|
File.open(path2 + '/index.html','w'){|f| f.write dataisland.html_doc.xml pretty: true}
|
69
|
-
=end
|
70
|
-
end
|
69
|
+
=end
|
70
|
+
end
|
71
|
+
|
72
|
+
def publish_dxlite(dynarex_filepath='', record={title: '',url: ''})
|
73
|
+
|
74
|
+
dynarex = if FileX.exists? dynarex_filepath then
|
75
|
+
DxLite.new(dynarex_filepath)
|
76
|
+
else
|
77
|
+
DxLite.new(@schema)
|
78
|
+
end
|
79
|
+
|
80
|
+
dynarex.create record
|
81
|
+
dynarex.save dynarex_filepath
|
82
|
+
end
|
71
83
|
|
72
84
|
def send_message(topic: @sps[:default_subscriber], msg: '')
|
73
85
|
|
74
|
-
fqm = "%s: %s" % [topic, msg]
|
86
|
+
fqm = "%s: %s" % [topic, msg]
|
75
87
|
|
76
88
|
SPSPub.notice fqm, address: @sps[:address]
|
77
|
-
sleep 0.
|
78
|
-
end
|
79
|
-
|
89
|
+
sleep 0.3
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
module IndexReader
|
95
|
+
include RXFHelperModule
|
96
|
+
|
97
|
+
def browse()
|
98
|
+
|
99
|
+
json_filepath = "%s/%s/dynarex.json" % [@home, @public_type]
|
100
|
+
|
101
|
+
if FileX.exists? json_filepath then
|
102
|
+
|
103
|
+
dx = DxLite.new(json_filepath)
|
104
|
+
return dx.all
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
def search(keyword)
|
111
|
+
|
112
|
+
json_filepath = "%s/%s/dynarex.json" % [@home, @public_type]
|
113
|
+
|
114
|
+
if FileX.exists? json_filepath then
|
115
|
+
|
116
|
+
dx = DxLite.new(json_filepath)
|
117
|
+
return dx.all.select {|x| x.title =~ /#{keyword}/i}
|
118
|
+
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
80
122
|
end
|
81
|
-
|
123
|
+
|
82
124
|
class BaseException < Exception
|
83
125
|
end
|
84
|
-
|
126
|
+
|
85
127
|
class Base < Publisher
|
128
|
+
include RXFHelperModule
|
86
129
|
|
87
130
|
attr_reader :to_s
|
88
131
|
|
89
|
-
def initialize(media_type: 'blog', public_type:
|
132
|
+
def initialize(media_type: 'blog', public_type: media_type,
|
133
|
+
ext: 'txt', config: nil, log: nil, debug: false)
|
90
134
|
|
91
|
-
super()
|
135
|
+
super()
|
92
136
|
|
93
|
-
@schema = 'posts/post(title, url, raw_url)'
|
137
|
+
@schema = 'posts/post(title, url, raw_url)'
|
94
138
|
|
95
139
|
raise BaseException, "no config found" if config.nil?
|
96
140
|
|
97
141
|
c = SimpleConfig.new(config).to_h
|
98
|
-
|
142
|
+
|
99
143
|
@home = c[:home]
|
100
|
-
@
|
144
|
+
@media_src = "%s/media/%s" % [@home, media_type]
|
145
|
+
@website = c[:website]
|
101
146
|
|
102
147
|
@dynamic_website = c[:dynamic_website]
|
103
148
|
@www = c[:www]
|
104
149
|
@domain = @website[/[^\.]+\.[^\.]+$/]
|
105
150
|
|
106
151
|
@sps = c[:sps]
|
107
|
-
logfile = c[:log]
|
108
|
-
|
109
|
-
@logger = nil
|
110
152
|
|
111
|
-
|
112
|
-
|
113
|
-
|
153
|
+
@log = log
|
154
|
+
|
155
|
+
|
114
156
|
@media_type = media_type
|
115
157
|
@public_type = public_type ||= @media_type
|
116
|
-
|
158
|
+
|
117
159
|
@xslt_schema = 'channel[title:title,description:desc]/' + \
|
118
160
|
'item(title:title,link:url)'
|
119
161
|
@ext = ext
|
120
162
|
@rss = false
|
121
|
-
|
122
|
-
|
163
|
+
@debug = debug
|
164
|
+
|
165
|
+
DirX.chdir @home
|
123
166
|
|
124
167
|
end
|
125
|
-
|
168
|
+
|
126
169
|
def add_feed_item(raw_msg, record, options={})
|
127
|
-
|
128
|
-
dynarex_filepath = File.join([@home, @public_type, 'dynarex.xml'])
|
129
|
-
id = Increment.update(File.join([@home, @public_type, 'counter.txt']))
|
170
|
+
|
171
|
+
dynarex_filepath = File.join([@home, @public_type, 'dynarex.xml'])
|
172
|
+
id = Increment.update(File.join([@home, @public_type, 'counter.txt']))
|
130
173
|
static_url = @static_baseurl + id
|
131
174
|
record[:uri] = static_url
|
132
|
-
|
133
|
-
publish_dynarex(dynarex_filepath, record, {id: id}.merge(options))
|
134
|
-
publish_timeline(raw_msg, static_url)
|
135
|
-
publish_html(@home + '/index.html')
|
175
|
+
|
176
|
+
publish_dynarex(dynarex_filepath, record, {id: id}.merge(options))
|
177
|
+
publish_timeline(raw_msg, static_url)
|
178
|
+
publish_html(@home + '/index.html')
|
136
179
|
end
|
137
180
|
|
138
|
-
def auto_copy_publish(raw_msg='')
|
181
|
+
def auto_copy_publish(raw_msg='', &blk)
|
182
|
+
|
183
|
+
@log.info 'Base inside auto_copy_publish' if @log
|
184
|
+
puts '@media_src: ' + @media_src.inspect if @debug
|
185
|
+
|
186
|
+
# fetch the most recent file
|
187
|
+
r = FileX.ru_r @media_src
|
139
188
|
|
140
|
-
|
189
|
+
if r then
|
141
190
|
|
142
|
-
|
191
|
+
puts 'r: ' + r.inspect if @debug
|
143
192
|
|
144
|
-
|
193
|
+
filename = r.sub(/^#{@media_src}/,'')
|
194
|
+
copy_publish( filename ,raw_msg, &blk)
|
145
195
|
|
146
|
-
|
196
|
+
end
|
147
197
|
|
148
198
|
end
|
149
|
-
|
199
|
+
|
150
200
|
def basename(s1, s2)
|
151
201
|
|
152
202
|
(s2.split('/') - s1.split('/')).join('/')
|
153
203
|
|
154
|
-
end
|
155
|
-
|
156
|
-
def copy_publish(filename, raw_msg='')
|
204
|
+
end
|
205
|
+
|
206
|
+
def copy_publish(filename, raw_msg='', &blk)
|
157
207
|
file_publish(File.join(@media_src,filename), raw_msg)
|
158
208
|
end
|
159
|
-
|
209
|
+
|
160
210
|
|
161
211
|
private
|
162
|
-
|
212
|
+
|
163
213
|
def file_publish(src_path, raw_msg='')
|
164
214
|
|
165
215
|
#raise @logger.debug("source file '%s' not found" % src_path) unless File.exists? src_path
|
166
216
|
ext = File.extname(src_path)
|
167
217
|
@target_ext ||= ext
|
168
|
-
|
218
|
+
|
169
219
|
public_path = "%s/%s/%shrs%s" % [@public_type, \
|
170
|
-
Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
|
220
|
+
Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
|
171
221
|
@target_ext]
|
172
222
|
|
173
223
|
public_path2 = "%s/%s/%shrs%s%s" % [@public_type, \
|
174
|
-
Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
|
224
|
+
Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
|
175
225
|
Time.now.strftime('%S%2N'), @target_ext]
|
176
|
-
|
226
|
+
|
177
227
|
raw_destination = "%s/%s/%s" % [@home, 'r', public_path]
|
178
|
-
|
179
|
-
if
|
228
|
+
|
229
|
+
if FileX.exists? raw_destination then
|
180
230
|
raw_destination = "%s/%s/%s" % [@home, 'r', public_path2]
|
181
231
|
public_path = public_path2
|
182
232
|
end
|
183
233
|
|
184
|
-
destination =
|
185
|
-
|
186
|
-
|
234
|
+
destination = File.join(@home, public_path)
|
235
|
+
FileX.mkdir_p File.dirname(raw_destination)
|
236
|
+
FileX.mkdir_p File.dirname(destination)
|
187
237
|
|
188
238
|
raw_msg = raw_msg.join ' ' if raw_msg.is_a? Array
|
189
239
|
|
190
240
|
raw_msg = src_path[/([^\/]+)\.\w+$/,1] + ' ' + raw_msg if raw_msg[/^#/]
|
191
241
|
|
192
|
-
|
242
|
+
|
193
243
|
if block_given? then
|
194
|
-
raw_msg, target_url = yield(destination, raw_destination)
|
244
|
+
raw_msg, target_url = yield(destination, raw_destination)
|
195
245
|
static_url = target_url
|
196
246
|
else
|
197
|
-
|
198
|
-
|
247
|
+
FileX.cp src_path, destination
|
248
|
+
FileX.cp src_path, raw_destination
|
199
249
|
end
|
200
250
|
|
201
|
-
raw_msg = raw_msg.join if raw_msg.is_a? Array
|
251
|
+
raw_msg = raw_msg.join if raw_msg.is_a? Array
|
202
252
|
|
203
253
|
static_filename = if raw_msg.to_s.length > 0 then
|
204
254
|
normalize(raw_msg) + File.extname(destination)
|
205
255
|
else
|
206
|
-
|
256
|
+
|
207
257
|
basename(@media_src, src_path)
|
208
|
-
|
209
|
-
end
|
210
|
-
|
258
|
+
|
259
|
+
end
|
260
|
+
|
211
261
|
static_path = "%s/%s/%s" % [@public_type, \
|
212
262
|
Time.now.strftime('%Y/%b/%d').downcase, static_filename]
|
213
|
-
|
263
|
+
|
214
264
|
raw_static_destination = "%s/%s/%s" % [@home, 'r',static_path]
|
215
265
|
|
216
|
-
static_destination = "%s/%s" % [@home, static_path]
|
266
|
+
static_destination = "%s/%s" % [@home, static_path]
|
217
267
|
|
218
268
|
#FileUtils.mkdir_p File.dirname(static_destination)
|
219
|
-
|
269
|
+
FileX.cp destination, static_destination
|
220
270
|
|
221
271
|
#jr010817 FileUtils.cp raw_destination, raw_static_destination
|
222
272
|
|
@@ -224,70 +274,46 @@ module MyMedia
|
|
224
274
|
if File.extname(static_destination) == '.html' then
|
225
275
|
|
226
276
|
xmlfilepath = destination.sub('.html','.xml')
|
227
|
-
|
228
|
-
if
|
229
|
-
|
277
|
+
|
278
|
+
if FileX.exists?(xmlfilepath) then
|
279
|
+
FileX.cp xmlfilepath, static_destination.sub('.html','.xml')
|
230
280
|
end
|
231
281
|
|
232
282
|
end
|
233
|
-
|
283
|
+
|
234
284
|
target_url ||= "%s/%s" % [@website, public_path]
|
235
285
|
static_url ||= "%s/%s" % [@website, static_path]
|
236
286
|
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
msg = "the %s %s %s" % [notice, @public_type.sub(/s$/,''), target_url]
|
241
|
-
end
|
242
|
-
|
243
|
-
sps_message = ['publish', @public_type,
|
287
|
+
msg = "%s %s" % [target_url, raw_msg ]
|
288
|
+
|
289
|
+
sps_message = ['publish', @public_type,
|
244
290
|
target_url, static_url, raw_msg]
|
245
291
|
|
246
292
|
send_message(msg: sps_message.join(' '))
|
247
293
|
|
248
294
|
static_url
|
249
|
-
|
295
|
+
|
250
296
|
end
|
251
|
-
|
297
|
+
|
252
298
|
def normalize(s)
|
253
299
|
|
254
300
|
r = s.downcase.gsub(/\s#\w+/,'').strip.gsub(/\W/,'-').gsub(/-{2,}/,'-').gsub(/^-|-$/,'')
|
255
301
|
return s.scan(/#(\w+)/)[0..1].join('_').downcase if r.empty?
|
256
|
-
return r
|
257
|
-
end
|
258
|
-
|
259
|
-
def notice()
|
260
|
-
|
261
|
-
case
|
262
|
-
when Time.now.hour < 10
|
263
|
-
"morning"
|
264
|
-
when Time.now.hour < 12
|
265
|
-
"late morning"
|
266
|
-
when Time.now.hour >= 12 && Time.now.hour <= 13
|
267
|
-
"lunch time"
|
268
|
-
when Time.now.hour > 13 && Time.now.hour < 16
|
269
|
-
"afternoon"
|
270
|
-
when Time.now.hour < 18
|
271
|
-
"late afternoon"
|
272
|
-
when Time.now.hour >= 18
|
273
|
-
"evening"
|
274
|
-
end
|
302
|
+
return r
|
275
303
|
end
|
276
|
-
|
277
|
-
|
278
304
|
|
279
305
|
end
|
280
|
-
|
281
|
-
|
306
|
+
|
307
|
+
|
282
308
|
class FrontpageException < Exception
|
283
309
|
end
|
284
|
-
|
310
|
+
|
285
311
|
class Frontpage < Publisher
|
286
|
-
|
312
|
+
|
287
313
|
def initialize(config: nil, public_type: '', rss: nil)
|
288
|
-
|
314
|
+
|
289
315
|
raise FrontpageException, "no config found" if config.nil?
|
290
|
-
|
316
|
+
|
291
317
|
c = SimpleConfig.new(config).to_h
|
292
318
|
|
293
319
|
@home = c[:home]
|
@@ -296,18 +322,20 @@ module MyMedia
|
|
296
322
|
@rss = rss
|
297
323
|
@sps = c[:sps]
|
298
324
|
@opts = {username: c[:username], password: c[:password]}
|
299
|
-
|
325
|
+
|
300
326
|
end
|
301
|
-
|
302
|
-
def publish_frontpage(s='index.html')
|
303
327
|
|
304
|
-
|
328
|
+
def publish_frontpage(s='index.html')
|
329
|
+
|
330
|
+
publish_html(@home + '/' + s)
|
305
331
|
'frontpage published'
|
306
|
-
end
|
332
|
+
end
|
333
|
+
|
307
334
|
|
308
|
-
|
309
335
|
def publish_to_lists(record={}, public_type=nil)
|
310
|
-
|
336
|
+
|
337
|
+
@log.info 'inside publish_to_lists' if @log
|
338
|
+
|
311
339
|
@public_type = public_type if public_type
|
312
340
|
|
313
341
|
raw_msg, static_url, target_url = \
|
@@ -317,33 +345,33 @@ module MyMedia
|
|
317
345
|
raw_dynarex_filepath = "%s/r/%s/dynarex.xml" % [@home, @public_type]
|
318
346
|
|
319
347
|
|
320
|
-
publish_dynarex(dynarex_filepath, record, {rss: @rss || false})
|
321
|
-
publish_dynarex(raw_dynarex_filepath, record, {rss: @rss || false})
|
348
|
+
publish_dynarex(dynarex_filepath, record, {rss: @rss || false})
|
349
|
+
publish_dynarex(raw_dynarex_filepath, record, {rss: @rss || false})
|
322
350
|
|
323
|
-
publish_timeline(raw_msg, static_url, target_url)
|
351
|
+
publish_timeline(raw_msg, static_url, target_url)
|
324
352
|
send_message(msg: 'publish_to_lists completed')
|
325
|
-
|
353
|
+
|
326
354
|
end
|
327
355
|
|
328
|
-
|
356
|
+
|
329
357
|
def publish_timeline(raw_msg, static_url, target_url='')
|
330
358
|
|
331
|
-
timeline_filepath = "%s/timeline/dynarex.xml" % @home
|
332
|
-
record = Dynarex.new(@home + '/dynarex/main-directory.xml').find_by_title(@public_type)
|
359
|
+
timeline_filepath = "%s/timeline/dynarex.xml" % @home
|
360
|
+
record = Dynarex.new(@home + '/dynarex/main-directory.xml').find_by_title(@public_type)
|
333
361
|
|
334
362
|
thumbnail, subject_url = record.thumbnail, record.url
|
335
|
-
|
363
|
+
|
336
364
|
content = {
|
337
|
-
title: raw_msg,
|
365
|
+
title: raw_msg,
|
338
366
|
url: static_url,
|
339
|
-
thumbnail: thumbnail,
|
340
|
-
subject_url: subject_url,
|
341
|
-
raw_url: target_url
|
367
|
+
thumbnail: thumbnail,
|
368
|
+
subject_url: subject_url,
|
369
|
+
raw_url: target_url
|
342
370
|
}
|
343
|
-
|
344
|
-
publish_dynarex(timeline_filepath, content, rss: true)
|
345
371
|
|
346
|
-
|
372
|
+
publish_dynarex(timeline_filepath, content, rss: true)
|
373
|
+
|
374
|
+
end
|
347
375
|
|
348
376
|
end
|
349
377
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mymedia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -10,28 +10,32 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
13
|
+
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwMjAzMjE0MDM4WhcN
|
15
|
+
MjMwMjAzMjE0MDM4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDLhnus
|
17
|
+
EmCSf8Mh4kdpLThgpsLS0N/kupJ35qxUqlluM0Treka8rn+Xv+su5eGY7bwT1lis
|
18
|
+
4rNk+H/YxNqm+7JoleqcdygCSMJju75WILEAuPtaZJbIlHiwlboe2P1Q/Q0qjYV4
|
19
|
+
5Hod6xYAFzjx4NRTCfRwvFjyXrvUJK/CgUWgDLraQEM4iQTWpxp+oIDsQIV5DLn7
|
20
|
+
wv4u+RKVrcHZkeu1r+vt/KBm9qNh2cK/kGw96tylW4/6sSTaPNNY9dvYx2Ee04jf
|
21
|
+
GTuxXBqtyvDKOfQAI/sWQ5J94+uIppx2dDL3eSEYfl2V8CwWVZxx3dETJ8M1fG6M
|
22
|
+
CMA+15zld92rCvGYsLh4jkZnyCt2l1O6IYMW/gAScwgzvlC01U2vV2P+8bwm17Un
|
23
|
+
pWP2FbNiihwZD7mdyKbi8noCeWrompgX5+hJZumFlsqld5XhoaPwQB6VNgVCxtOG
|
24
|
+
ZHXdP6MiTPhH0t6XVmRSMX+zEedaoL2Z2OxaBAM9abkOJ8kNtI3pqqVkQmkCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUTUv11jAO
|
26
|
+
mX0Ta1tkNdz9cHZLKZowJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
|
+
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEARdXjjSCHczpSquJFR7p/1Xovom9aQAmp8aCgZJg4
|
29
|
+
9oln3FIyBnk3W/LTUJVGS5a3u8JcVMxLTEJqkUMrBVGa8AcJzsPEU8XAG9R2360z
|
30
|
+
iZxVyGiFdi+DUOo++vjbiBRvgl2o3gKEwp8RPFj+OUemVDeFexBHKukDDdk7MJNp
|
31
|
+
WmLLvRyAmB+grz7eMPFjTxfRcV4/6WHNS5MFdXZ0ZioAKUatCNYIpDS7NqnT/nhD
|
32
|
+
CSEqt9HQknjKDK8LFS8Ostfbn0wZxYdh7Gxy6TKEh9dt0mMkIdzKxOJW70N+6bPP
|
33
|
+
CDRYB4NTKybJ2XnbEbJsUBezXDF8p+dmOEhygIAcNrjY9OyorRiZD3m60O+UuqXx
|
34
|
+
jumKCvffqUahjzaQRcW0r0OkF8v087BT7xUdq+K9Iza2Vuc3Qj2YxrFskE7gUhgB
|
35
|
+
bL55NDdi8BFHkNVohRBak7aqxsw41LJKy3UTP+4TzU5vyluDJMiscK6JJFaM4JiS
|
36
|
+
xtlAM0O5ZFe9QflatP+P8JnB
|
33
37
|
-----END CERTIFICATE-----
|
34
|
-
date:
|
38
|
+
date: 2022-02-11 00:00:00.000000000 Z
|
35
39
|
dependencies:
|
36
40
|
- !ruby/object:Gem::Dependency
|
37
41
|
name: dynarex
|
@@ -39,80 +43,80 @@ dependencies:
|
|
39
43
|
requirements:
|
40
44
|
- - "~>"
|
41
45
|
- !ruby/object:Gem::Version
|
42
|
-
version: '1.
|
46
|
+
version: '1.9'
|
43
47
|
- - ">="
|
44
48
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.
|
49
|
+
version: 1.9.2
|
46
50
|
type: :runtime
|
47
51
|
prerelease: false
|
48
52
|
version_requirements: !ruby/object:Gem::Requirement
|
49
53
|
requirements:
|
50
54
|
- - "~>"
|
51
55
|
- !ruby/object:Gem::Version
|
52
|
-
version: '1.
|
56
|
+
version: '1.9'
|
53
57
|
- - ">="
|
54
58
|
- !ruby/object:Gem::Version
|
55
|
-
version: 1.
|
59
|
+
version: 1.9.2
|
56
60
|
- !ruby/object:Gem::Dependency
|
57
61
|
name: sps-pub
|
58
62
|
requirement: !ruby/object:Gem::Requirement
|
59
63
|
requirements:
|
60
64
|
- - "~>"
|
61
65
|
- !ruby/object:Gem::Version
|
62
|
-
version: '0.
|
66
|
+
version: '0.5'
|
63
67
|
- - ">="
|
64
68
|
- !ruby/object:Gem::Version
|
65
|
-
version: 0.
|
69
|
+
version: 0.5.5
|
66
70
|
type: :runtime
|
67
71
|
prerelease: false
|
68
72
|
version_requirements: !ruby/object:Gem::Requirement
|
69
73
|
requirements:
|
70
74
|
- - "~>"
|
71
75
|
- !ruby/object:Gem::Version
|
72
|
-
version: '0.
|
76
|
+
version: '0.5'
|
73
77
|
- - ">="
|
74
78
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
79
|
+
version: 0.5.5
|
76
80
|
- !ruby/object:Gem::Dependency
|
77
81
|
name: dir-to-xml
|
78
82
|
requirement: !ruby/object:Gem::Requirement
|
79
83
|
requirements:
|
80
84
|
- - "~>"
|
81
85
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0
|
86
|
+
version: '1.0'
|
83
87
|
- - ">="
|
84
88
|
- !ruby/object:Gem::Version
|
85
|
-
version: 0.
|
89
|
+
version: 1.0.8
|
86
90
|
type: :runtime
|
87
91
|
prerelease: false
|
88
92
|
version_requirements: !ruby/object:Gem::Requirement
|
89
93
|
requirements:
|
90
94
|
- - "~>"
|
91
95
|
- !ruby/object:Gem::Version
|
92
|
-
version: '0
|
96
|
+
version: '1.0'
|
93
97
|
- - ">="
|
94
98
|
- !ruby/object:Gem::Version
|
95
|
-
version: 0.
|
99
|
+
version: 1.0.8
|
96
100
|
- !ruby/object:Gem::Dependency
|
97
101
|
name: dataisland
|
98
102
|
requirement: !ruby/object:Gem::Requirement
|
99
103
|
requirements:
|
100
|
-
- - "~>"
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '0.1'
|
103
104
|
- - ">="
|
104
105
|
- !ruby/object:Gem::Version
|
105
|
-
version: 0.
|
106
|
+
version: 0.3.0
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0.3'
|
106
110
|
type: :runtime
|
107
111
|
prerelease: false
|
108
112
|
version_requirements: !ruby/object:Gem::Requirement
|
109
113
|
requirements:
|
110
|
-
- - "~>"
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
version: '0.1'
|
113
114
|
- - ">="
|
114
115
|
- !ruby/object:Gem::Version
|
115
|
-
version: 0.
|
116
|
+
version: 0.3.0
|
117
|
+
- - "~>"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0.3'
|
116
120
|
- !ruby/object:Gem::Dependency
|
117
121
|
name: increment
|
118
122
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,22 +143,22 @@ dependencies:
|
|
139
143
|
requirements:
|
140
144
|
- - "~>"
|
141
145
|
- !ruby/object:Gem::Version
|
142
|
-
version: '0.
|
146
|
+
version: '0.7'
|
143
147
|
- - ">="
|
144
148
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.2
|
149
|
+
version: 0.7.2
|
146
150
|
type: :runtime
|
147
151
|
prerelease: false
|
148
152
|
version_requirements: !ruby/object:Gem::Requirement
|
149
153
|
requirements:
|
150
154
|
- - "~>"
|
151
155
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0.
|
156
|
+
version: '0.7'
|
153
157
|
- - ">="
|
154
158
|
- !ruby/object:Gem::Version
|
155
|
-
version: 0.2
|
159
|
+
version: 0.7.2
|
156
160
|
description:
|
157
|
-
email:
|
161
|
+
email: digital.robertson@gmail.com
|
158
162
|
executables: []
|
159
163
|
extensions: []
|
160
164
|
extra_rdoc_files: []
|
@@ -180,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
180
184
|
version: '0'
|
181
185
|
requirements: []
|
182
186
|
rubyforge_project:
|
183
|
-
rubygems_version: 2.
|
187
|
+
rubygems_version: 2.7.10
|
184
188
|
signing_key:
|
185
189
|
specification_version: 4
|
186
190
|
summary: Makes publishing to the web easier
|
metadata.gz.sig
CHANGED
Binary file
|