mymedia 0.2.13 → 0.5.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.
Files changed (6) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/mymedia.rb +166 -138
  4. data.tar.gz.sig +0 -0
  5. metadata +52 -48
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f2b6caefba096cabac5be086c6a97bde789b8375
4
- data.tar.gz: 4ca9a5d2bc3cc8a927d47067524a3deb2c18f8d8
2
+ SHA256:
3
+ metadata.gz: 879bb9d7cf2f55bd38bb6d2e005d824fc0b63760931424c0ef16599c8e405581
4
+ data.tar.gz: 77ccdb6252d36a6bf313e491169a2df56b5325284a809060894bb6e30eadfaec
5
5
  SHA512:
6
- metadata.gz: d6db9f9f3d95bbc5029ca3e300ab41afe04a1de77c56e1fb423c15c46c63f286207aabdf39463da490a25f166d3d5d24edce09f692d3deff37c71f4a644fbd23
7
- data.tar.gz: 21ec5e6174f987e02c40f2e51d795616816a49c41434e4246f38ffd249a030b0cc9bb376319fcfd0ea2ea881c4a661efb0f3e98d370e042d49f15e700195b801
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 File.exists? dynarex_filepath then
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
- File.open(rss_filepath, 'w'){|f| f.write dynarex.to_rss }
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
- File.exists?(template_path)
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.02
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: 'blog', ext: 'txt', config: nil)
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
- @website = c[:website]
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
- #@logger = Logger.new(logfile,'daily') if logfile
112
- #@logger.info('inside MyMedia::Base') if @logger
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
- Dir.chdir @home
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
- dir = DirToXML.new(@media_src, recursive: true)
189
+ if r then
141
190
 
142
- r = dir.last_modified
191
+ puts 'r: ' + r.inspect if @debug
143
192
 
144
- filename = r.is_a?(Hash) ? r[:name] : File.join(r.map {|x| x[:name]})
193
+ filename = r.sub(/^#{@media_src}/,'')
194
+ copy_publish( filename ,raw_msg, &blk)
145
195
 
146
- copy_publish( filename ,raw_msg)
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 File.exists? raw_destination then
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 = "%s/%s" % [@home, public_path]
185
- FileUtils.mkdir_p File.dirname(raw_destination)
186
- FileUtils.mkdir_p File.dirname(destination)
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
- FileUtils.cp src_path, destination
198
- FileUtils.cp src_path, raw_destination
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
- FileUtils.cp destination, static_destination
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 File.exists?(xmlfilepath) then
229
- FileUtils.cp xmlfilepath, static_destination.sub('.html','.xml')
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
- if raw_msg.to_s.length > 0 then
238
- msg = "%s %s" % [target_url, raw_msg ]
239
- else
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
- publish_html(@home + '/' + s)
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
- end
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.2.13
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
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE2MDkwNDEzNDI1NVoXDTE3MDkwNDEzNDI1NVowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAOOxNQ5XSIKHIdn5RZsQiLio8HY2a8rwzkXuDTzr04TSOZd1uH0zhDy7nDaV
19
- alcDv0+Gfqb3x0LlOtqHXznJlziTN70Ey3LrCGR9DG9Kk77r2xNqw2SIrIFbPQZa
20
- lu5hXpHiG0LoeglWiFb6r+sqyVcbOuols1AYqJNp9StVtwevTvC48EZ5S7pV2yA8
21
- FtqsXohnmIsoH1U4PKHSsdSZXMLJiLAMB61UYTCS7VQhqxMSQiNjEQA9gnbUj5mV
22
- g0Yx32L/35WzG0kD7axyY0Axqka4+f7Eetyn5VzXXliUyP8u/2+VkaUtkI2PwJ5S
23
- S3Ig+kQiBGF+DG5k0yhxO0uLZbsCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUeBJrMmC7EIa/0PJQyAgXwSnKLn0wJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAyKU0XjlV
27
- 6BVWrOVvcSHPM3j9kZeV6a6C/hlvQuDxUrVFi8WlwIuhFTg2Y352DSndiqPnsZyd
28
- rSEXnm7DfZ0lRgxp4C0EqgK9MVxYPz/SkCzX3aBzOyDQYcsAp1s+ZWOltqZMqGdm
29
- UNXcN40Ga4v0Rn42OH+yS0pvCAnCH95UnAh/ZdkzkzdhypLuWf3A+UU9k0Bm8Nre
30
- u3I4mOWY/EI+/mOCTXD2nsk7Fp1Y+lSeKb3GA/pw97WwOwMg5GgQo6YzNDJ6SNvP
31
- QGupEiSvhduKe7yJhCMhsjS3Y0bQLzHoYkgODDXj3b5FZM187Odi2YacSwL64ush
32
- uwWZRkjawruhkg==
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: 2017-08-01 00:00:00.000000000 Z
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.2'
46
+ version: '1.9'
43
47
  - - ">="
44
48
  - !ruby/object:Gem::Version
45
- version: 1.3.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.2'
56
+ version: '1.9'
53
57
  - - ">="
54
58
  - !ruby/object:Gem::Version
55
- version: 1.3.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.4'
66
+ version: '0.5'
63
67
  - - ">="
64
68
  - !ruby/object:Gem::Version
65
- version: 0.4.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.4'
76
+ version: '0.5'
73
77
  - - ">="
74
78
  - !ruby/object:Gem::Version
75
- version: 0.4.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.3'
86
+ version: '1.0'
83
87
  - - ">="
84
88
  - !ruby/object:Gem::Version
85
- version: 0.3.3
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.3'
96
+ version: '1.0'
93
97
  - - ">="
94
98
  - !ruby/object:Gem::Version
95
- version: 0.3.3
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.1.14
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.1.14
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.2'
146
+ version: '0.7'
143
147
  - - ">="
144
148
  - !ruby/object:Gem::Version
145
- version: 0.2.1
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.2'
156
+ version: '0.7'
153
157
  - - ">="
154
158
  - !ruby/object:Gem::Version
155
- version: 0.2.1
159
+ version: 0.7.2
156
160
  description:
157
- email: james@jamesrobertson.eu
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.6.8
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