mymedia 0.2.11 → 0.3.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 +163 -137
  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: 39e2c60e91c05e985c24c6e764fdea559a3144cf
4
- data.tar.gz: e8ab0ac9eca8ce0f5749c19ae78f19ded4b8744c
2
+ SHA256:
3
+ metadata.gz: 6fc78e7e213ed935fdffc733862d520abb3b0c7d1dc3afde43905372e8bfd427
4
+ data.tar.gz: fdae3bd4aeeb04d230dbe95b67700b68fe2ec92a09292124e912bc66285a1937
5
5
  SHA512:
6
- metadata.gz: 32d00a25e24969fb2bae8e9cab7656ddd07ddc07e4cc668084f33c8fc187494f84305d19664151e84db2675dfd16d0650dbf1c217f5fc490113ca07fc888e05f
7
- data.tar.gz: 7600ef77d300b5f6d6015473ec54b9941bb11a4af7513060c0c0c71f91eb57d98788bb6ecc0e255ec691ff49ab9addf394a3427b5dcd8b7aa660feb023aaa74c
6
+ metadata.gz: ee00e96ba62317e509b44024544885deae61cebbc973fd62417106bd56f6c025eba8aac5c6baa658ad965bff9be1d37501a8a8be2716e5d36f37b21d4cf88692
7
+ data.tar.gz: 0a4ed8e0eb86dccf1e6603d9f6a0b7bc78acbb3e864706c2e61724d46d1a925e520e84d94dfb111f4193b46615af9cc5132868f93f2c9d79c0c47272e0edd44b
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/mymedia.rb CHANGED
@@ -17,17 +17,17 @@ module MyMedia
17
17
 
18
18
  class MyMediaPublisherException < Exception
19
19
  end
20
-
21
-
20
+
21
+
22
22
  class Publisher
23
-
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
 
@@ -41,251 +41,274 @@ 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
+ File.open(rss_filepath, 'w'){|f| f.write 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
  File.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 File.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
83
+
84
+ def send_message(topic: @sps[:default_subscriber], msg: '')
85
+
86
+ fqm = "%s: %s" % [topic, msg]
70
87
 
71
- def send_message(topic: @sps[:default_subscriber], msg: msg)
72
-
73
- fqm = "%s: %s" % [topic, msg]
74
88
  SPSPub.notice fqm, address: @sps[:address]
75
- end
76
-
89
+ sleep 0.3
90
+ end
91
+
77
92
  end
78
-
93
+
94
+ module IndexReader
95
+
96
+ def browse()
97
+
98
+ json_filepath = "%s/%s/dynarex.json" % [@home, @public_type]
99
+
100
+ if File.exists? json_filepath then
101
+
102
+ dx = DxLite.new(json_filepath)
103
+ return dx.all
104
+
105
+ end
106
+
107
+ end
108
+
109
+ def search(keyword)
110
+
111
+ json_filepath = "%s/%s/dynarex.json" % [@home, @public_type]
112
+
113
+ if File.exists? json_filepath then
114
+
115
+ dx = DxLite.new(json_filepath)
116
+ return dx.all.select {|x| x.title =~ /#{keyword}/i}
117
+
118
+ end
119
+
120
+ end
121
+ end
122
+
79
123
  class BaseException < Exception
80
124
  end
81
-
125
+
82
126
  class Base < Publisher
83
127
 
84
128
  attr_reader :to_s
85
129
 
86
- def initialize(media_type: 'blog', public_type: 'blog', ext: 'txt', config: nil)
87
-
88
- super()
130
+ def initialize(media_type: 'blog', public_type: 'blog',
131
+ ext: 'txt', config: nil, log: nil, debug: false)
132
+
133
+ super()
89
134
 
90
- @schema = 'posts/post(title, url, raw_url)'
135
+ @schema = 'posts/post(title, url, raw_url)'
91
136
 
92
137
  raise BaseException, "no config found" if config.nil?
93
138
 
94
139
  c = SimpleConfig.new(config).to_h
95
-
140
+
96
141
  @home = c[:home]
97
- @website = c[:website]
142
+ @media_src = "%s/media/%s" % [@home, media_type]
143
+ @website = c[:website]
98
144
 
99
145
  @dynamic_website = c[:dynamic_website]
100
146
  @www = c[:www]
101
147
  @domain = @website[/[^\.]+\.[^\.]+$/]
102
148
 
103
149
  @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
-
150
+
151
+ @log = log
152
+
153
+
110
154
  @media_type = media_type
111
155
  @public_type = public_type ||= @media_type
112
-
156
+
113
157
  @xslt_schema = 'channel[title:title,description:desc]/' + \
114
158
  'item(title:title,link:url)'
115
159
  @ext = ext
116
160
  @rss = false
117
-
161
+ @debug = debug
162
+
118
163
  Dir.chdir @home
119
164
 
120
165
  end
121
-
166
+
122
167
  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']))
168
+
169
+ dynarex_filepath = File.join([@home, @public_type, 'dynarex.xml'])
170
+ id = Increment.update(File.join([@home, @public_type, 'counter.txt']))
126
171
  static_url = @static_baseurl + id
127
172
  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')
173
+
174
+ publish_dynarex(dynarex_filepath, record, {id: id}.merge(options))
175
+ publish_timeline(raw_msg, static_url)
176
+ publish_html(@home + '/index.html')
132
177
  end
133
178
 
134
- def auto_copy_publish(raw_msg='')
179
+ def auto_copy_publish(raw_msg='', &blk)
135
180
 
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)
181
+ @log.info 'Base inside auto_copy_publish' if @log
182
+ puts '@media_src: ' + @media_src.inspect if @debug
183
+ #exit
184
+ dir = DirToXML.new(@media_src, recursive: true, debug: false)
185
+ puts 'before dir.last_modified' if @debug
139
186
  r = dir.last_modified
140
-
187
+ puts 'r: ' + r.inspect if @debug
188
+
141
189
  filename = r.is_a?(Hash) ? r[:name] : File.join(r.map {|x| x[:name]})
142
190
 
143
- copy_publish( filename ,raw_msg)
191
+ copy_publish( filename ,raw_msg, &blk)
192
+
144
193
  end
145
-
194
+
146
195
  def basename(s1, s2)
147
196
 
148
197
  (s2.split('/') - s1.split('/')).join('/')
149
198
 
150
- end
151
-
152
- def copy_publish(filename, raw_msg='')
199
+ end
200
+
201
+ def copy_publish(filename, raw_msg='', &blk)
153
202
  file_publish(File.join(@media_src,filename), raw_msg)
154
203
  end
155
-
204
+
156
205
 
157
206
  private
158
-
207
+
159
208
  def file_publish(src_path, raw_msg='')
160
209
 
161
- raise @logger.debug("source file '%s' not found" % src_path) unless File.exists? src_path
210
+ #raise @logger.debug("source file '%s' not found" % src_path) unless File.exists? src_path
162
211
  ext = File.extname(src_path)
163
212
  @target_ext ||= ext
164
-
213
+
165
214
  public_path = "%s/%s/%shrs%s" % [@public_type, \
166
- Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
215
+ Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
167
216
  @target_ext]
168
217
 
169
218
  public_path2 = "%s/%s/%shrs%s%s" % [@public_type, \
170
- Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
219
+ Time.now.strftime('%Y/%b/%d').downcase, Time.now.strftime('%H%M'),
171
220
  Time.now.strftime('%S%2N'), @target_ext]
172
-
221
+
173
222
  raw_destination = "%s/%s/%s" % [@home, 'r', public_path]
174
-
223
+
175
224
  if File.exists? raw_destination then
176
225
  raw_destination = "%s/%s/%s" % [@home, 'r', public_path2]
177
226
  public_path = public_path2
178
227
  end
179
228
 
180
- destination = "%s/%s" % [@home, public_path]
229
+ destination = File.join(@home, public_path)
181
230
  FileUtils.mkdir_p File.dirname(raw_destination)
182
231
  FileUtils.mkdir_p File.dirname(destination)
183
232
 
184
233
  raw_msg = raw_msg.join ' ' if raw_msg.is_a? Array
185
234
 
186
235
  raw_msg = src_path[/([^\/]+)\.\w+$/,1] + ' ' + raw_msg if raw_msg[/^#/]
187
-
188
-
236
+
237
+
189
238
  if block_given? then
190
- raw_msg, target_url = yield(destination, raw_destination)
239
+ raw_msg, target_url = yield(destination, raw_destination)
191
240
  static_url = target_url
192
241
  else
193
242
  FileUtils.cp src_path, destination
194
243
  FileUtils.cp src_path, raw_destination
195
244
  end
196
-
197
245
 
198
- raw_msg = raw_msg.join if raw_msg.is_a? Array
199
-
200
- static_filename = if raw_msg.length > 0 then
246
+ raw_msg = raw_msg.join if raw_msg.is_a? Array
247
+
248
+ static_filename = if raw_msg.to_s.length > 0 then
201
249
  normalize(raw_msg) + File.extname(destination)
202
250
  else
203
-
251
+
204
252
  basename(@media_src, src_path)
205
-
253
+
206
254
  end
207
-
208
-
209
-
255
+
210
256
  static_path = "%s/%s/%s" % [@public_type, \
211
257
  Time.now.strftime('%Y/%b/%d').downcase, static_filename]
212
-
258
+
213
259
  raw_static_destination = "%s/%s/%s" % [@home, 'r',static_path]
214
260
 
215
- static_destination = "%s/%s" % [@home, static_path]
261
+ static_destination = "%s/%s" % [@home, static_path]
216
262
 
217
263
  #FileUtils.mkdir_p File.dirname(static_destination)
218
- FileUtils.cp destination, static_destination
219
- FileUtils.cp raw_destination, raw_static_destination
264
+ FileUtils.cp destination, static_destination
265
+
266
+ #jr010817 FileUtils.cp raw_destination, raw_static_destination
220
267
 
221
268
  # Make a static filename XML file copy?
222
269
  if File.extname(static_destination) == '.html' then
223
270
 
224
271
  xmlfilepath = destination.sub('.html','.xml')
225
-
272
+
226
273
  if File.exists?(xmlfilepath) then
227
274
  FileUtils.cp xmlfilepath, static_destination.sub('.html','.xml')
228
275
  end
229
276
 
230
277
  end
231
-
278
+
232
279
  target_url ||= "%s/%s" % [@website, public_path]
233
280
  static_url ||= "%s/%s" % [@website, static_path]
234
281
 
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,
282
+ msg = "%s %s" % [target_url, raw_msg ]
283
+
284
+ sps_message = ['publish', @public_type,
242
285
  target_url, static_url, raw_msg]
243
286
 
244
287
  send_message(msg: sps_message.join(' '))
245
288
 
246
289
  static_url
247
-
290
+
248
291
  end
249
-
292
+
250
293
  def normalize(s)
251
294
 
252
295
  r = s.downcase.gsub(/\s#\w+/,'').strip.gsub(/\W/,'-').gsub(/-{2,}/,'-').gsub(/^-|-$/,'')
253
296
  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
297
+ return r
273
298
  end
274
-
275
-
276
299
 
277
300
  end
278
-
279
-
301
+
302
+
280
303
  class FrontpageException < Exception
281
304
  end
282
-
305
+
283
306
  class Frontpage < Publisher
284
-
307
+
285
308
  def initialize(config: nil, public_type: '', rss: nil)
286
-
309
+
287
310
  raise FrontpageException, "no config found" if config.nil?
288
-
311
+
289
312
  c = SimpleConfig.new(config).to_h
290
313
 
291
314
  @home = c[:home]
@@ -294,18 +317,20 @@ module MyMedia
294
317
  @rss = rss
295
318
  @sps = c[:sps]
296
319
  @opts = {username: c[:username], password: c[:password]}
297
-
320
+
298
321
  end
299
-
300
- def publish_frontpage(s='index.html')
301
322
 
302
- publish_html(@home + '/' + s)
323
+ def publish_frontpage(s='index.html')
324
+
325
+ publish_html(@home + '/' + s)
303
326
  'frontpage published'
304
- end
327
+ end
328
+
305
329
 
306
-
307
330
  def publish_to_lists(record={}, public_type=nil)
308
-
331
+
332
+ @log.info 'inside publish_to_lists' if @log
333
+
309
334
  @public_type = public_type if public_type
310
335
 
311
336
  raw_msg, static_url, target_url = \
@@ -313,34 +338,35 @@ module MyMedia
313
338
 
314
339
  dynarex_filepath = "%s/%s/dynarex.xml" % [@home, @public_type]
315
340
  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
341
 
320
- publish_timeline(raw_msg, static_url, target_url)
342
+
343
+ publish_dynarex(dynarex_filepath, record, {rss: @rss || false})
344
+ publish_dynarex(raw_dynarex_filepath, record, {rss: @rss || false})
345
+
346
+ publish_timeline(raw_msg, static_url, target_url)
321
347
  send_message(msg: 'publish_to_lists completed')
322
-
348
+
323
349
  end
324
350
 
325
-
351
+
326
352
  def publish_timeline(raw_msg, static_url, target_url='')
327
353
 
328
- timeline_filepath = "%s/timeline/dynarex.xml" % @home
329
- record = Dynarex.new(@home + '/dynarex/main-directory.xml').find_by_title(@public_type)
354
+ timeline_filepath = "%s/timeline/dynarex.xml" % @home
355
+ record = Dynarex.new(@home + '/dynarex/main-directory.xml').find_by_title(@public_type)
330
356
 
331
357
  thumbnail, subject_url = record.thumbnail, record.url
332
-
358
+
333
359
  content = {
334
- title: raw_msg,
360
+ title: raw_msg,
335
361
  url: static_url,
336
- thumbnail: thumbnail,
337
- subject_url: subject_url,
338
- raw_url: target_url
362
+ thumbnail: thumbnail,
363
+ subject_url: subject_url,
364
+ raw_url: target_url
339
365
  }
340
-
341
- publish_dynarex(timeline_filepath, content, rss: true)
342
366
 
343
- end
367
+ publish_dynarex(timeline_filepath, content, rss: true)
368
+
369
+ end
344
370
 
345
371
  end
346
372
  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.11
4
+ version: 0.3.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
- 8ixkARkWAmV1MB4XDTE0MTAxMTA2MjU1MloXDTE1MTAxMTA2MjU1MlowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAKKAkTSe5/95+/xlS5ClnMGILqiJBa8mcl9ZfH028fD6jh80dbbFcmOeukF5
19
- rB2ZwPPCYBj+tZgrimRdzIJCXiAH0vF+uf/bA3nkSpVkcKF3ff2VaftsqGedyO/2
20
- C3WYi/3YK1p/6vRR5aNoiCqbeIEwup683NOCAXoJ3YpAapZSBKRR050b3Bl90/fU
21
- G3MPLi6wV9sJdzZRFytfNM/4StojqfDVHYkCytvsaKf7uNqfOBZx9EGW5mBHDUmq
22
- jGGC6ZWfxrNsyprxelUvlb0LoxLKHByuUmcjDJGwKi0pBfIIBBYB3cEdLqNktZRm
23
- 2iHlQ3Qc7JMiwbNvxmQSWRnl4g8CAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUekt+5D5jnAxrvLBhLY6+3akzaCowJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEALupwVNJM
27
- erjU8TDycd/HnEaCREYkuTJTcwnyuX/slWA61sSlHpU+wbp8InU12AhqJJw6adr8
28
- RdENSTGpV74qzOEYJiINEzkBLqlT4W3gZzw1DNc4ntUrVh4AXITrKZFXT2Ike2jy
29
- 5Swrv93vgfpENg6oe+w/9cx6QYlKFcCGjl68h4IOl9SkPQKtXxtML6GleT1Tgl6l
30
- evTjxChamJXYGQl8jNbytJ9NKiPOyJDDwoOrIw9bnnV435BELJqUVwlcvlE+00mp
31
- AuNecS7mQYhxSVKaAH8VGzIiea4rbybYlYRsOllgAkcmCFTQW39mbtmMPtDedk1N
32
- ZQNJr93cq0mf/Q==
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: 2015-08-15 00:00:00.000000000 Z
38
+ date: 2022-02-03 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.4.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