mymedia 0.2.12 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/mymedia.rb +174 -146
  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: eda745c33db809e75fe3b0c75ed68144c8145f2c
4
- data.tar.gz: 8ffc030303f9ab3fda4e994e26be7e9aafbe24b8
2
+ SHA256:
3
+ metadata.gz: cab99c1f36e7249115b72436a3ec9981056b0ed984e22161fc4ef481531b7542
4
+ data.tar.gz: 58e4ec2b6e97bb96b0c8f002e8b805e82bff8af71d0e3c7414c9a2f50e1fd992
5
5
  SHA512:
6
- metadata.gz: a20ee8b2a1ed81b70ad28008359d91295d8cbb8663383c8999ea39f2631095837360fa7b7348f3322e9afc4eacb71b7d95e3b06474721d1801a75442e4c85bd3
7
- data.tar.gz: 0ae3477cee518bce722b535e5f0021d266204a9f23ec6f21599672cac94cc0bbbed84351c5cd21b13ef2afc54168cf1d004b20b2a3adf8f28ccc558fa7ca420e
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 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)
@@ -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
- File.open(rss_filepath, 'w'){|f| f.write dynarex.to_rss }
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
- File.exists?(template_path)
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
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
- end
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', ext: 'txt', config: nil)
87
-
88
- super()
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
- @website = c[:website]
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
- logfile = c[:log]
105
-
106
- @logger = nil
107
- @logger = Logger.new(logfile,'daily') if logfile
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
- #filename = DirToXML.new(@media_src).select_by_ext(@ext)\
137
- # .sort_by(:last_modified).last[:name]
138
- dir = DirToXML.new(@media_src, recursive: true)
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 File.exists? raw_destination then
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 = "%s/%s" % [@home, public_path]
181
- FileUtils.mkdir_p File.dirname(raw_destination)
182
- FileUtils.mkdir_p File.dirname(destination)
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
- FileUtils.cp src_path, destination
194
- FileUtils.cp src_path, raw_destination
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
- FileUtils.cp destination, static_destination
219
- FileUtils.cp raw_destination, raw_static_destination
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 File.exists?(xmlfilepath) then
227
- FileUtils.cp xmlfilepath, static_destination.sub('.html','.xml')
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
- if raw_msg.length > 0 then
236
- msg = "%s %s" % [target_url, raw_msg ]
237
- else
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
- publish_html(@home + '/' + s)
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
- publish_timeline(raw_msg, static_url, target_url)
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
- end
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.2.12
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
- 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: 2016-09-04 00:00:00.000000000 Z
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.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@r0bertson.co.uk
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.5.1
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