mymedia 0.2.12 → 0.4.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 +174 -146
- 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: cab99c1f36e7249115b72436a3ec9981056b0ed984e22161fc4ef481531b7542
|
4
|
+
data.tar.gz: 58e4ec2b6e97bb96b0c8f002e8b805e82bff8af71d0e3c7414c9a2f50e1fd992
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e6eec410b50bf3dedb1b33740b480597cac0ece76816d4f860dd99c9cc72f949376fdd39ca48a0263222a99e4694be0952facdf4d19023be6b523166dda7788
|
7
|
+
data.tar.gz: f9d3467d227659265e8237cfbae084134f05dec9a85b54f51b993a735ca8197a72e947630ba8bdeed493e0f4384904e4dd310c766da5aa621e3707090497e6c0
|
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)
|
@@ -41,251 +41,276 @@ module MyMedia
|
|
41
41
|
|
42
42
|
dynarex.create record, id: opt[:id]
|
43
43
|
dynarex.save dynarex_filepath
|
44
|
-
|
45
44
|
publish_html(dynarex_filepath) if @index_page == true
|
46
45
|
|
47
|
-
|
46
|
+
|
48
47
|
if opt[:rss] == true then
|
49
|
-
|
48
|
+
|
50
49
|
dynarex.xslt_schema = dynarex.summary[:xslt_schema]
|
51
50
|
rss_filepath = dynarex_filepath.sub(/\.xml$/,'_rss.xml')
|
52
|
-
|
51
|
+
FileX.write rss_filepath, dynarex.to_rss
|
53
52
|
end
|
54
53
|
|
55
54
|
end
|
56
55
|
|
57
56
|
def publish_html(filepath)
|
58
57
|
|
59
|
-
path2 = File.dirname(filepath)
|
58
|
+
path2 = File.dirname(filepath)
|
60
59
|
template_path = File.join path2, 'index-template.html'
|
61
60
|
|
62
|
-
return unless @index_page == true
|
61
|
+
return unless @index_page == true
|
63
62
|
raise MyMediaPublisherException, \
|
64
63
|
"template path: #{template_path} not found" unless \
|
65
|
-
|
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
|
-
|
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
|
70
83
|
|
71
84
|
def send_message(topic: @sps[:default_subscriber], msg: '')
|
72
|
-
|
73
|
-
fqm = "%s: %s" % [topic, msg]
|
85
|
+
|
86
|
+
fqm = "%s: %s" % [topic, msg]
|
87
|
+
|
74
88
|
SPSPub.notice fqm, address: @sps[:address]
|
75
|
-
|
76
|
-
|
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
|
77
122
|
end
|
78
|
-
|
123
|
+
|
79
124
|
class BaseException < Exception
|
80
125
|
end
|
81
|
-
|
126
|
+
|
82
127
|
class Base < Publisher
|
128
|
+
include RXFHelperModule
|
83
129
|
|
84
130
|
attr_reader :to_s
|
85
131
|
|
86
|
-
def initialize(media_type: 'blog', public_type: 'blog',
|
87
|
-
|
88
|
-
|
132
|
+
def initialize(media_type: 'blog', public_type: 'blog',
|
133
|
+
ext: 'txt', config: nil, log: nil, debug: false)
|
134
|
+
|
135
|
+
super()
|
89
136
|
|
90
|
-
@schema = 'posts/post(title, url, raw_url)'
|
137
|
+
@schema = 'posts/post(title, url, raw_url)'
|
91
138
|
|
92
139
|
raise BaseException, "no config found" if config.nil?
|
93
140
|
|
94
141
|
c = SimpleConfig.new(config).to_h
|
95
|
-
|
142
|
+
|
96
143
|
@home = c[:home]
|
97
|
-
@
|
144
|
+
@media_src = "%s/media/%s" % [@home, media_type]
|
145
|
+
@website = c[:website]
|
98
146
|
|
99
147
|
@dynamic_website = c[:dynamic_website]
|
100
148
|
@www = c[:www]
|
101
149
|
@domain = @website[/[^\.]+\.[^\.]+$/]
|
102
150
|
|
103
151
|
@sps = c[:sps]
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
@logger.info('inside MyMedia::Base') if @logger
|
109
|
-
|
152
|
+
|
153
|
+
@log = log
|
154
|
+
|
155
|
+
|
110
156
|
@media_type = media_type
|
111
157
|
@public_type = public_type ||= @media_type
|
112
|
-
|
158
|
+
|
113
159
|
@xslt_schema = 'channel[title:title,description:desc]/' + \
|
114
160
|
'item(title:title,link:url)'
|
115
161
|
@ext = ext
|
116
162
|
@rss = false
|
117
|
-
|
163
|
+
@debug = debug
|
164
|
+
|
118
165
|
Dir.chdir @home
|
119
166
|
|
120
167
|
end
|
121
|
-
|
168
|
+
|
122
169
|
def add_feed_item(raw_msg, record, options={})
|
123
|
-
|
124
|
-
dynarex_filepath = File.join([@home, @public_type, 'dynarex.xml'])
|
125
|
-
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']))
|
126
173
|
static_url = @static_baseurl + id
|
127
174
|
record[:uri] = static_url
|
128
|
-
|
129
|
-
publish_dynarex(dynarex_filepath, record, {id: id}.merge(options))
|
130
|
-
publish_timeline(raw_msg, static_url)
|
131
|
-
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')
|
132
179
|
end
|
133
180
|
|
134
|
-
def auto_copy_publish(raw_msg='')
|
181
|
+
def auto_copy_publish(raw_msg='', &blk)
|
135
182
|
|
136
|
-
|
137
|
-
|
138
|
-
|
183
|
+
@log.info 'Base inside auto_copy_publish' if @log
|
184
|
+
puts '@media_src: ' + @media_src.inspect if @debug
|
185
|
+
#exit
|
186
|
+
dir = DirToXML.new(@media_src, recursive: true, debug: false)
|
187
|
+
puts 'before dir.last_modified' if @debug
|
139
188
|
r = dir.last_modified
|
140
|
-
|
189
|
+
puts 'r: ' + r.inspect if @debug
|
190
|
+
|
141
191
|
filename = r.is_a?(Hash) ? r[:name] : File.join(r.map {|x| x[:name]})
|
142
192
|
|
143
|
-
copy_publish( filename ,raw_msg)
|
193
|
+
copy_publish( filename ,raw_msg, &blk)
|
194
|
+
|
144
195
|
end
|
145
|
-
|
196
|
+
|
146
197
|
def basename(s1, s2)
|
147
198
|
|
148
199
|
(s2.split('/') - s1.split('/')).join('/')
|
149
200
|
|
150
|
-
end
|
151
|
-
|
152
|
-
def copy_publish(filename, raw_msg='')
|
201
|
+
end
|
202
|
+
|
203
|
+
def copy_publish(filename, raw_msg='', &blk)
|
153
204
|
file_publish(File.join(@media_src,filename), raw_msg)
|
154
205
|
end
|
155
|
-
|
206
|
+
|
156
207
|
|
157
208
|
private
|
158
|
-
|
209
|
+
|
159
210
|
def file_publish(src_path, raw_msg='')
|
160
211
|
|
161
|
-
raise @logger.debug("source file '%s' not found" % src_path) unless File.exists? src_path
|
212
|
+
#raise @logger.debug("source file '%s' not found" % src_path) unless File.exists? src_path
|
162
213
|
ext = File.extname(src_path)
|
163
214
|
@target_ext ||= ext
|
164
|
-
|
215
|
+
|
165
216
|
public_path = "%s/%s/%shrs%s" % [@public_type, \
|
166
|
-
Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
|
217
|
+
Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
|
167
218
|
@target_ext]
|
168
219
|
|
169
220
|
public_path2 = "%s/%s/%shrs%s%s" % [@public_type, \
|
170
|
-
Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
|
221
|
+
Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
|
171
222
|
Time.now.strftime('%S%2N'), @target_ext]
|
172
|
-
|
223
|
+
|
173
224
|
raw_destination = "%s/%s/%s" % [@home, 'r', public_path]
|
174
|
-
|
175
|
-
if
|
225
|
+
|
226
|
+
if FileX.exists? raw_destination then
|
176
227
|
raw_destination = "%s/%s/%s" % [@home, 'r', public_path2]
|
177
228
|
public_path = public_path2
|
178
229
|
end
|
179
230
|
|
180
|
-
destination =
|
181
|
-
|
182
|
-
|
231
|
+
destination = File.join(@home, public_path)
|
232
|
+
FileX.mkdir_p File.dirname(raw_destination)
|
233
|
+
FileX.mkdir_p File.dirname(destination)
|
183
234
|
|
184
235
|
raw_msg = raw_msg.join ' ' if raw_msg.is_a? Array
|
185
236
|
|
186
237
|
raw_msg = src_path[/([^\/]+)\.\w+$/,1] + ' ' + raw_msg if raw_msg[/^#/]
|
187
|
-
|
188
|
-
|
238
|
+
|
239
|
+
|
189
240
|
if block_given? then
|
190
|
-
raw_msg, target_url = yield(destination, raw_destination)
|
241
|
+
raw_msg, target_url = yield(destination, raw_destination)
|
191
242
|
static_url = target_url
|
192
243
|
else
|
193
|
-
|
194
|
-
|
244
|
+
FileX.cp src_path, destination
|
245
|
+
FileX.cp src_path, raw_destination
|
195
246
|
end
|
196
|
-
|
197
247
|
|
198
|
-
raw_msg = raw_msg.join if raw_msg.is_a? Array
|
199
|
-
|
200
|
-
static_filename = if raw_msg.length > 0 then
|
248
|
+
raw_msg = raw_msg.join if raw_msg.is_a? Array
|
249
|
+
|
250
|
+
static_filename = if raw_msg.to_s.length > 0 then
|
201
251
|
normalize(raw_msg) + File.extname(destination)
|
202
252
|
else
|
203
|
-
|
253
|
+
|
204
254
|
basename(@media_src, src_path)
|
205
|
-
|
255
|
+
|
206
256
|
end
|
207
|
-
|
208
|
-
|
209
|
-
|
257
|
+
|
210
258
|
static_path = "%s/%s/%s" % [@public_type, \
|
211
259
|
Time.now.strftime('%Y/%b/%d').downcase, static_filename]
|
212
|
-
|
260
|
+
|
213
261
|
raw_static_destination = "%s/%s/%s" % [@home, 'r',static_path]
|
214
262
|
|
215
|
-
static_destination = "%s/%s" % [@home, static_path]
|
263
|
+
static_destination = "%s/%s" % [@home, static_path]
|
216
264
|
|
217
265
|
#FileUtils.mkdir_p File.dirname(static_destination)
|
218
|
-
|
219
|
-
|
266
|
+
FileX.cp destination, static_destination
|
267
|
+
|
268
|
+
#jr010817 FileUtils.cp raw_destination, raw_static_destination
|
220
269
|
|
221
270
|
# Make a static filename XML file copy?
|
222
271
|
if File.extname(static_destination) == '.html' then
|
223
272
|
|
224
273
|
xmlfilepath = destination.sub('.html','.xml')
|
225
|
-
|
226
|
-
if
|
227
|
-
|
274
|
+
|
275
|
+
if FileX.exists?(xmlfilepath) then
|
276
|
+
FileX.cp xmlfilepath, static_destination.sub('.html','.xml')
|
228
277
|
end
|
229
278
|
|
230
279
|
end
|
231
|
-
|
280
|
+
|
232
281
|
target_url ||= "%s/%s" % [@website, public_path]
|
233
282
|
static_url ||= "%s/%s" % [@website, static_path]
|
234
283
|
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
msg = "the %s %s %s" % [notice, @public_type.sub(/s$/,''), target_url]
|
239
|
-
end
|
240
|
-
|
241
|
-
sps_message = ['publish', @public_type,
|
284
|
+
msg = "%s %s" % [target_url, raw_msg ]
|
285
|
+
|
286
|
+
sps_message = ['publish', @public_type,
|
242
287
|
target_url, static_url, raw_msg]
|
243
288
|
|
244
289
|
send_message(msg: sps_message.join(' '))
|
245
290
|
|
246
291
|
static_url
|
247
|
-
|
292
|
+
|
248
293
|
end
|
249
|
-
|
294
|
+
|
250
295
|
def normalize(s)
|
251
296
|
|
252
297
|
r = s.downcase.gsub(/\s#\w+/,'').strip.gsub(/\W/,'-').gsub(/-{2,}/,'-').gsub(/^-|-$/,'')
|
253
298
|
return s.scan(/#(\w+)/)[0..1].join('_').downcase if r.empty?
|
254
|
-
return r
|
255
|
-
end
|
256
|
-
|
257
|
-
def notice()
|
258
|
-
|
259
|
-
case
|
260
|
-
when Time.now.hour < 10
|
261
|
-
"morning"
|
262
|
-
when Time.now.hour < 12
|
263
|
-
"late morning"
|
264
|
-
when Time.now.hour >= 12 && Time.now.hour <= 13
|
265
|
-
"lunch time"
|
266
|
-
when Time.now.hour > 13 && Time.now.hour < 16
|
267
|
-
"afternoon"
|
268
|
-
when Time.now.hour < 18
|
269
|
-
"late afternoon"
|
270
|
-
when Time.now.hour >= 18
|
271
|
-
"evening"
|
272
|
-
end
|
299
|
+
return r
|
273
300
|
end
|
274
|
-
|
275
|
-
|
276
301
|
|
277
302
|
end
|
278
|
-
|
279
|
-
|
303
|
+
|
304
|
+
|
280
305
|
class FrontpageException < Exception
|
281
306
|
end
|
282
|
-
|
307
|
+
|
283
308
|
class Frontpage < Publisher
|
284
|
-
|
309
|
+
|
285
310
|
def initialize(config: nil, public_type: '', rss: nil)
|
286
|
-
|
311
|
+
|
287
312
|
raise FrontpageException, "no config found" if config.nil?
|
288
|
-
|
313
|
+
|
289
314
|
c = SimpleConfig.new(config).to_h
|
290
315
|
|
291
316
|
@home = c[:home]
|
@@ -294,18 +319,20 @@ module MyMedia
|
|
294
319
|
@rss = rss
|
295
320
|
@sps = c[:sps]
|
296
321
|
@opts = {username: c[:username], password: c[:password]}
|
297
|
-
|
322
|
+
|
298
323
|
end
|
299
|
-
|
300
|
-
def publish_frontpage(s='index.html')
|
301
324
|
|
302
|
-
|
325
|
+
def publish_frontpage(s='index.html')
|
326
|
+
|
327
|
+
publish_html(@home + '/' + s)
|
303
328
|
'frontpage published'
|
304
|
-
end
|
329
|
+
end
|
330
|
+
|
305
331
|
|
306
|
-
|
307
332
|
def publish_to_lists(record={}, public_type=nil)
|
308
|
-
|
333
|
+
|
334
|
+
@log.info 'inside publish_to_lists' if @log
|
335
|
+
|
309
336
|
@public_type = public_type if public_type
|
310
337
|
|
311
338
|
raw_msg, static_url, target_url = \
|
@@ -313,34 +340,35 @@ module MyMedia
|
|
313
340
|
|
314
341
|
dynarex_filepath = "%s/%s/dynarex.xml" % [@home, @public_type]
|
315
342
|
raw_dynarex_filepath = "%s/r/%s/dynarex.xml" % [@home, @public_type]
|
316
|
-
|
317
|
-
publish_dynarex(dynarex_filepath, record, {rss: @rss || false})
|
318
|
-
publish_dynarex(raw_dynarex_filepath, record, {rss: @rss || false})
|
319
343
|
|
320
|
-
|
344
|
+
|
345
|
+
publish_dynarex(dynarex_filepath, record, {rss: @rss || false})
|
346
|
+
publish_dynarex(raw_dynarex_filepath, record, {rss: @rss || false})
|
347
|
+
|
348
|
+
publish_timeline(raw_msg, static_url, target_url)
|
321
349
|
send_message(msg: 'publish_to_lists completed')
|
322
|
-
|
350
|
+
|
323
351
|
end
|
324
352
|
|
325
|
-
|
353
|
+
|
326
354
|
def publish_timeline(raw_msg, static_url, target_url='')
|
327
355
|
|
328
|
-
timeline_filepath = "%s/timeline/dynarex.xml" % @home
|
329
|
-
record = Dynarex.new(@home + '/dynarex/main-directory.xml').find_by_title(@public_type)
|
356
|
+
timeline_filepath = "%s/timeline/dynarex.xml" % @home
|
357
|
+
record = Dynarex.new(@home + '/dynarex/main-directory.xml').find_by_title(@public_type)
|
330
358
|
|
331
359
|
thumbnail, subject_url = record.thumbnail, record.url
|
332
|
-
|
360
|
+
|
333
361
|
content = {
|
334
|
-
title: raw_msg,
|
362
|
+
title: raw_msg,
|
335
363
|
url: static_url,
|
336
|
-
thumbnail: thumbnail,
|
337
|
-
subject_url: subject_url,
|
338
|
-
raw_url: target_url
|
364
|
+
thumbnail: thumbnail,
|
365
|
+
subject_url: subject_url,
|
366
|
+
raw_url: target_url
|
339
367
|
}
|
340
|
-
|
341
|
-
publish_dynarex(timeline_filepath, content, rss: true)
|
342
368
|
|
343
|
-
|
369
|
+
publish_dynarex(timeline_filepath, content, rss: true)
|
370
|
+
|
371
|
+
end
|
344
372
|
|
345
373
|
end
|
346
374
|
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.4.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-04 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
|