mymedia-pages 0.2.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f1e3a784fcd53878b091d5997175e46b4ddd2ca9
4
- data.tar.gz: beab5cf0dd0b0c13de30c2c523b066c88dae324b
2
+ SHA256:
3
+ metadata.gz: d4fda1001262e23054bd48053370ba0577692694e721cf0eccb8b81ca0f118ac
4
+ data.tar.gz: e53e008532a3885c05856a59857690b068643b60ea2dece53fc87aa4321cf850
5
5
  SHA512:
6
- metadata.gz: 932e20f4695523a45bab0aef9f3101818013f6c3eaecd519e189694206a9ef768b3657e11130952326c1359bf6c7028a8e38347d21cdf1140a18502f3d65b238
7
- data.tar.gz: b475be7bbd8068c4adbe802a037103aeeff87ab7a9f30b71da5fe24368505940513a979260d0a7798989a48951e84b2fbe18a9e376354fa25ffdf0f82791f5f7
6
+ metadata.gz: c03f7c0dacd88b16b08b2b7ae235529c13f3f1a22de2fec257e68bf9262a7fa14610c968861bb760d9edb8f233cac9a2e25986adfc9a114ae2ea39df42e7c872
7
+ data.tar.gz: a0b539bdfd82ac378893397d3f4c5abb1106c6449c131d28a0c097f6998b6b35c6f53b6d43c37b5a3a0272e14d4fb4f8a6d4c4a6fcaea1b2ab3bf9b65bdef8f6
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/mymedia-pages.rb CHANGED
@@ -5,53 +5,75 @@
5
5
 
6
6
  require 'mymedia'
7
7
  require 'martile'
8
+ require 'kramdown'
8
9
 
9
10
 
11
+ module PageReader
12
+ include RXFHelperModule
13
+
14
+ # read the source file
15
+ #
16
+ def read(filename)
17
+ FileX.read File.join(@media_src, escape(filename))
18
+ end
19
+
20
+ # view the published file
21
+ #
22
+ def view(filename)
23
+ FileX.read File.join(@home, @public_type, filename)
24
+ end
25
+
26
+ end
27
+
10
28
  class MyMediaPagesError < Exception
11
29
  end
12
30
 
13
31
  class MyMediaPages < MyMedia::Base
32
+ include RXFHelperModule
33
+ include MyMedia::IndexReader
34
+ include PageReader
14
35
 
15
36
  def initialize(media_type: media_type='pages',
16
37
  public_type: @public_type=media_type, ext: '.(html|md|txt)',
17
- config: nil, log: log)
18
-
38
+ config: nil, log: nil, debug: false)
39
+
19
40
  super(media_type: media_type, public_type: @public_type=media_type,
20
- ext: '.(html|md|txt)', config: config, log: log)
41
+ ext: '.(html|md|txt)', config: config, log: log)
21
42
 
22
- @media_src = "%s/media/%s" % [@home, media_type]
23
43
  @target_ext = '.html'
24
44
  @static_html = true
25
-
26
- end
27
-
45
+ @debug = debug
46
+
47
+ end
48
+
28
49
  def copy_publish(filename, raw_msg='')
29
50
 
51
+ @log.info 'MyMediaPagesinside copy_publish' if @log
30
52
  @filename = filename
31
53
  src_path = File.join(@media_src, filename)
32
54
 
33
- if File.basename(src_path)[/[a-z]\d{6}T\d{4}\.(?:html)/] then
55
+ if File.basename(src_path)[/[a-z]\d{6}T\d{4}\.(?:html)/] then
34
56
  return file_publish(src_path, raw_msg)
35
57
  end
36
58
 
37
59
  file_publish(src_path, raw_msg) do |destination, raw_destination|
38
60
 
39
61
  ext = File.extname(src_path)
40
-
41
- if ext[/\.(?:md|txt)/] then
62
+
63
+ if ext[/\.(?:md|txt)/] then
42
64
 
43
65
  raw_dest_xml = raw_destination.sub(/html$/,'xml')
44
66
  dest_xml = destination.sub(/html$/,'xml')
45
67
  x_destination = raw_destination.sub(/\.html$/,ext)
46
68
 
47
69
 
48
- FileUtils.cp src_path, x_destination
49
-
70
+ FileX.cp src_path, x_destination
71
+
50
72
  source = x_destination[/\/r\/#{@public_type}.*/]
51
73
  s = @website + source
52
74
 
53
75
  relative_path = s[/https?:\/\/[^\/]+([^$]+)/,1]
54
- src_content = File.read src_path
76
+ src_content = FileX.read src_path
55
77
  doc = xml(src_content, relative_path, filename)
56
78
 
57
79
  return unless doc
@@ -61,72 +83,84 @@ class MyMediaPages < MyMedia::Base
61
83
 
62
84
  @log.info 'mymedia_pages/copy_publish: after modify_xml' if @log
63
85
 
64
- File.write raw_destination, xsltproc("#{@home}/r/xsl/#{@public_type}.xsl", raw_dest_xml)
86
+ FileX.write raw_destination, xsltproc("#{@home}/r/xsl/#{@public_type}.xsl", raw_dest_xml)
65
87
 
66
- File.write destination, xsltproc("#{@home}/#{@www}/xsl/#{@public_type}.xsl", dest_xml)
88
+ FileX.write destination, xsltproc("#{@home}/#{@www}/xsl/#{@public_type}.xsl", dest_xml)
67
89
 
68
90
  html_filename = basename(@media_src, src_path).sub(/(?:md|txt)$/,'html')
69
-
70
-
91
+
92
+
71
93
  xml_filename = html_filename.sub(/html$/,'xml')
72
94
 
73
- FileUtils.mkdir_p File.dirname(File.join(File.dirname(destination), html_filename))
74
- FileUtils.cp destination, File.join(File.dirname(destination), html_filename)
95
+ FileX.mkdir_p File.dirname(File.join(File.dirname(destination), html_filename))
96
+ FileX.cp destination, File.join(File.dirname(destination), html_filename)
75
97
 
76
- FileUtils.mkdir_p File.dirname( File.join(File.dirname(dest_xml), xml_filename))
77
- FileUtils.cp dest_xml, File.join(File.dirname(dest_xml), xml_filename)
98
+ FileX.mkdir_p File.dirname( File.join(File.dirname(dest_xml), xml_filename))
99
+ FileX.cp dest_xml, File.join(File.dirname(dest_xml), xml_filename)
78
100
 
79
101
  tags = doc.root.xpath('summary/tags/tag/text()')
80
- raw_msg = "%s %s" % [doc.root.text('summary/title'),
81
- tags.map {|x| "#%s" % x }.join(' ')]
102
+ raw_msg = "%s %s" % [doc.root.text('summary/title'),
103
+ tags.map {|x| "#%s" % x }.join(' ')]
104
+
105
+
106
+ @log.info "msg: %s tags: %s" % [raw_msg, tags.inspect]if @log
82
107
 
83
108
 
84
109
  else
85
-
110
+
86
111
  html_filename = basename(@media_src, src_path)
87
-
112
+
88
113
  if html_filename =~ /\// then
89
- FileUtils.mkdir_p File.dirname(html_filename)
90
- end
91
-
92
- FileUtils.cp src_path, destination
93
- FileUtils.cp src_path, raw_destination
94
-
114
+ FileX.mkdir_p File.dirname(html_filename)
115
+ end
116
+
117
+ FileX.cp src_path, destination
118
+ FileX.cp src_path, raw_destination
119
+
95
120
  raw_msg = File.read(destination)[/<title>([^<]+)<\/title>/,1]
96
121
  end
97
-
122
+
98
123
  if not File.basename(src_path)[/[a-z]\d{6}T\d{4}\.(?:html|md|txt)/] then
99
-
100
- FileUtils.mkdir_p File.dirname(@home + "/#{@public_type}/" + html_filename)
101
- FileUtils.cp destination, @home + "/#{@public_type}/" + html_filename
124
+
125
+ @log.info 'MyMediaPages::copy_publish before FileUtils' if @log
126
+ FileX.mkdir_p File.dirname(@home + "/#{@public_type}/" + html_filename)
127
+ FileX.cp destination, @home + "/#{@public_type}/" + html_filename
102
128
 
103
129
  if xml_filename then
104
- FileUtils.cp dest_xml, @home + "/#{@public_type}/" + xml_filename
130
+ FileUtils.cp dest_xml, @home + "/#{@public_type}/" + xml_filename
105
131
  end
106
132
 
107
- static_filepath = @home + "/#{@public_type}/static.xml"
108
- x_filename = @static_html == true ? html_filename : xml_filename
133
+ static_filepath = @home + "/#{@public_type}/static.xml"
134
+ x_filename = @static_html == true ? html_filename : xml_filename
109
135
  target_url = [@website, @public_type, x_filename].join('/')
110
136
 
111
- publish_dynarex(static_filepath, {title: raw_msg, url: target_url })
137
+ if @log then
138
+ @log.info 'MyMediaPages::copy_publish ->file_publish ' +
139
+ 'before publish_dynarex'
140
+ end
141
+
142
+ publish_dynarex(static_filepath, {title: raw_msg, url: target_url })
112
143
 
113
144
  end
114
145
 
115
146
  [raw_msg, target_url]
116
- end
147
+ end
117
148
 
118
149
  end
119
-
120
-
150
+
151
+
121
152
  private
122
-
123
- def htmlize(raw_buffer)
124
153
 
125
- buffer = Martile.new(raw_buffer, ignore_domainlabel: @domain).to_html
154
+ def htmlize(raw_buffer)
126
155
 
156
+ buffer = Martile.new(raw_buffer, ignore_domainlabel: @domain).to_s
127
157
  lines = buffer.strip.lines.to_a
158
+ puts 'lines: ' + lines.inspect if @debug
128
159
 
129
160
  raw_title = lines.shift.chomp
161
+ puts 'lines 2): ' + lines.inspect if @debug
162
+
163
+ raise MyMediaPagesError, 'invalid input file' if lines.empty?
130
164
  raw_tags = lines.pop[/[^>]+$/].split
131
165
 
132
166
  s = lines.join
@@ -134,7 +168,7 @@ class MyMediaPages < MyMedia::Base
134
168
  html = Kramdown::Document.new(s).to_html
135
169
  [raw_title, raw_tags, html]
136
170
 
137
- end
171
+ end
138
172
 
139
173
  def microblog_title(doc)
140
174
 
@@ -142,7 +176,7 @@ class MyMediaPages < MyMedia::Base
142
176
 
143
177
  title = summary.text('title')
144
178
  tags = summary.xpath('tags/tag/text()').map{|x| '#' + x}.join(' ')
145
-
179
+
146
180
  url = "%s/%s/yy/mm/dd/hhmmhrs.html" % [@website, @media_type]
147
181
  full_title = (url + title + ' ' + tags)
148
182
 
@@ -153,17 +187,17 @@ class MyMediaPages < MyMedia::Base
153
187
 
154
188
  title + ' ' + tags
155
189
 
156
- end
157
-
158
-
190
+ end
191
+
192
+
159
193
  def modify_xml(docx, filepath, xslpath='r/')
160
194
 
161
195
  if @log then
162
196
  @log.info 'mymedia_pages: inside modify_xml: docx.xml: ' + docx.xml.inspect
163
197
  end
164
-
198
+
165
199
  doc = Rexle.new docx.xml pretty: false
166
-
200
+
167
201
  if @log then
168
202
  @log.info 'doc.xml: ' + doc.xml.inspect if @log
169
203
  end
@@ -174,40 +208,41 @@ class MyMediaPages < MyMedia::Base
174
208
  + ["href='#{@website}/#{xslpath}xsl/#{@public_type}.xsl'"]
175
209
 
176
210
  yield(doc) if block_given?
177
- File.write filepath, doc.xml(declaration: true, pretty: false)
211
+ FileX.write filepath, doc.xml(declaration: true, pretty: false)
178
212
  end
179
-
213
+
180
214
  def xml(raw_buffer, filename, original_file)
181
215
 
182
216
  begin
183
217
 
184
-
218
+ puts 'before htmlize'
185
219
  raw_title, raw_tags, html = htmlize(raw_buffer)
220
+ puts 'after htmlize'
186
221
 
187
- doc = Rexle.new("<body>%s</body>" % html)
222
+ doc = Rexle.new("<body>%s</body>" % html)
188
223
 
189
224
  doc.root.xpath('//a').each do |x|
190
225
 
191
226
  next unless x.attributes[:href] and x.attributes[:href].empty?
192
-
227
+
193
228
  new_link = x.text.gsub(/\s/,'_')
194
229
 
195
230
  x.attributes[:href] = "#{@dynamic_website}/do/#{@public_type}/new/" + new_link
196
231
  x.attributes[:class] = 'new'
197
232
  x.attributes[:title] = x.text + ' (page does not exist)'
198
233
  end
199
-
234
+
200
235
  body = doc.root.children.join
201
236
 
202
- # A special tag can be used to represent a metatag which indicates if
203
- # the document access is to be made public. The special tag can either
237
+ # A special tag can be used to represent a metatag which indicates if
238
+ # the document access is to be made public. The special tag can either
204
239
  # be a 'p' or 'public'
205
240
 
206
241
  access = raw_tags.last[/^(?:p|public)$/] ? raw_tags.pop : nil
207
-
242
+
208
243
  xml = RexleBuilder.new
209
-
210
- a = xml.page do
244
+
245
+ a = xml.page do
211
246
  xml.summary do
212
247
  xml.title raw_title
213
248
  xml.tags { raw_tags.each {|tag| xml.tag tag }}
@@ -218,21 +253,21 @@ class MyMediaPages < MyMedia::Base
218
253
  xml.published Time.now.strftime("%d-%m-%Y %H:%M")
219
254
  xml.filetitle original_file[/.*(?=\.\w+$)/]
220
255
  end
221
-
256
+
222
257
  xml.body body
223
258
  end
224
-
225
-
259
+
260
+
226
261
  rescue
227
262
  raise MyMediaPagesError, 'xml(): ' + ($!).inspect
228
263
  end
229
264
 
230
265
  return Rexle.new(a)
231
- end
232
-
233
- def xsltproc(xslpath, xmlpath)
234
-
266
+ end
267
+
268
+ def xsltproc(xslpath, xmlpath)
269
+
235
270
  Nokogiri::XSLT(File.open(xslpath))\
236
- .transform(Nokogiri::XML(File.open(xmlpath))).to_xhtml(indent: 0)
271
+ .transform(Nokogiri::XML(FileX.read(xmlpath))).to_xhtml(indent: 0)
237
272
  end
238
273
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mymedia-pages
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,91 +10,95 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE3MDMxMTIwNTIzNloXDTE4MDMxMTIwNTIzNlowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAL9Yny0RdospLkKN90owdm55hopv4IS7M44/DCkkMyh/ezjeIk30fHJn33l1
19
- hDDoKaWiOWZ1HOvNEkOPGSX0bgi3yHu4XWoBgal5f+tmxLYhVY2hsidtUryiohu/
20
- qKsyhOJwoWPvkSuGLrhdTENVcfFkVPhKfZy/nH2Fu6F4PHaLXY1qbcLDdL2Fg+v7
21
- I+KAh5YIi78v2/mbbyhBbYCxC38fzH+O+NRcmWvWmX7htGqYtHTy/W7XvF0Gtdzg
22
- oWlSuhM6uquWQIcdIiw+xPRHPSp+LLbL7dz2h+aBPDgXjgZWZj5eFVLCMffn/5gW
23
- omObJXrV48bkjZRtBsGe2NOZcYUCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQU1xeiJOTJNXQ9Fk2bJEReYjcoj+QwJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEALkl3UeCA
27
- csxxol+6zjzluuVIEDztd9oN09ymiNVe4D2DhSxmZd+bPj08VCCwPiU3YxBQyWoz
28
- r8Bh/b1MKSzx7t+hvZpxru4sgFbZF81IvHmkMae2qsDq85Qs5gU/sGYxgSFXQ/Ab
29
- pLpY4UcMheGnBiAFztIsAI0X5I6xzIkFAEuXEv+ckjYaHYdQWng7KnpXatZih/id
30
- 5J2a8Ha54WMDm0wAJlhT700D4+nRjufaYiRWusYWwz71/YdJp5ZlWTHhisG0VdwN
31
- f5cM/DycnWUbyyxUfvCHRvwNubEB3M+NDfHtIlbbeK82WC+HbtOYLXWQsy7266iP
32
- Nz7iR/JcIY24rA==
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjExMjEzMjMyNTE5WhcN
15
+ MjIxMjEzMjMyNTE5WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZkvpq
17
+ V5NXgRqy4VQgEbVJKXEuya2MM0Fof84MFz6CGAlgbEJPO66bdDgr5WEO+of44j0S
18
+ 9G2eoeTbCia3nWdDtz3jZXPyUnqJHnq8Pvm7b3SjWhYBUn/GLoFeVSk5Nd++Q8j6
19
+ wXgKTAIrlSyhPJp5BvqHsImO1l+v0ngDtGvPrMxqweMocxgITYVfaLDnJBwXn/xC
20
+ tFCweX4o8SMZm0TXJgvpP2T/f+j6Hk8lkhjD62IctmoDdXyHCowgIXsIuioaoldO
21
+ CF80CL4d1lGWcoCtmMxpZiJSNMPoMmOxiq23S6s9U4GiipwpgpzQKGwX/+3FqrHE
22
+ MGD/QS6bs43Agme7DK8xhPa5RoXNeEVMTZyX/GjrwQ4tqrfkaw24nS2CXjTROh3Q
23
+ Leu0FmxmEGDJcODXguDHZgiQsO1/vTqrPF8lfv4vNxzw9As8uNCH2AMe/ZlbiLJ1
24
+ VQQT/ApcmpZWwYHj+iDXdiEP6zAH7OzAcq3IOgnDdJcLqfUJWBY+E3BM/J0CAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUi6RPI2tJ
26
+ vKeubmfzc8d/QhR/dJAwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAqePoqXrgvPVoMgh+2yZ9phtDp7EAvzSP+iJajj4m
29
+ /hjZFbamopfDpnsfb8Tr/OZ+H+0CZY/+hLiVq7yLIjB/KMk998/bqNN5upyQBrTr
30
+ 5HaPY3mClTa+o5X7HjfUChpT10zTKbaMPtrF7oBC168J7FhYSvVQXhvKX9s7z1Ev
31
+ FpS15aQ6JYBn9Sj1drVt5/fL8JDDHMr9+0EWBBGH+YKjbfWhpFFYdrKCqLXBem/t
32
+ tytUs6a4PO15DZnfH6efHcWuKw6XeTeDZrTvw+qHtpWyfqTtza3R+uberWTFzUgs
33
+ I71XvkAuSTjMMfuE19pCw+/0Aonol4M+RmQuziQp9OI9qxEXWz05qSRsg2LDk1LK
34
+ XJKeOH2mtbm+ZqzL6UDvP/kGpBhw3CMeOgkwllzNSXhoEvBxuFewYMsNANPup8qZ
35
+ jSG8iFV4kJofCyHyfW6zyZy0d22o23Syxam2rIESaal2RPL7gADDTc8XBe/sFeWr
36
+ A7Ido2/5qg5YDVloSOHTfzZj
33
37
  -----END CERTIFICATE-----
34
- date: 2018-02-18 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: mymedia
38
42
  requirement: !ruby/object:Gem::Requirement
39
43
  requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '0.2'
43
44
  - - ">="
44
45
  - !ruby/object:Gem::Version
45
- version: 0.2.14
46
+ version: 0.4.0
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.4'
46
50
  type: :runtime
47
51
  prerelease: false
48
52
  version_requirements: !ruby/object:Gem::Requirement
49
53
  requirements:
50
- - - "~>"
51
- - !ruby/object:Gem::Version
52
- version: '0.2'
53
54
  - - ">="
54
55
  - !ruby/object:Gem::Version
55
- version: 0.2.14
56
+ version: 0.4.0
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.4'
56
60
  - !ruby/object:Gem::Dependency
57
61
  name: martile
58
62
  requirement: !ruby/object:Gem::Requirement
59
63
  requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '0.9'
63
64
  - - ">="
64
65
  - !ruby/object:Gem::Version
65
- version: 0.9.0
66
+ version: 1.5.0
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.5'
66
70
  type: :runtime
67
71
  prerelease: false
68
72
  version_requirements: !ruby/object:Gem::Requirement
69
73
  requirements:
70
- - - "~>"
71
- - !ruby/object:Gem::Version
72
- version: '0.9'
73
74
  - - ">="
74
75
  - !ruby/object:Gem::Version
75
- version: 0.9.0
76
+ version: 1.5.0
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '1.5'
76
80
  - !ruby/object:Gem::Dependency
77
81
  name: kramdown
78
82
  requirement: !ruby/object:Gem::Requirement
79
83
  requirements:
80
84
  - - "~>"
81
85
  - !ruby/object:Gem::Version
82
- version: '1.16'
86
+ version: '2.3'
83
87
  - - ">="
84
88
  - !ruby/object:Gem::Version
85
- version: 1.16.2
89
+ version: 2.3.1
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: '1.16'
96
+ version: '2.3'
93
97
  - - ">="
94
98
  - !ruby/object:Gem::Version
95
- version: 1.16.2
99
+ version: 2.3.1
96
100
  description:
97
- email: james@jamesrobertson.eu
101
+ email: digital.robertson@gmail.com
98
102
  executables: []
99
103
  extensions: []
100
104
  extra_rdoc_files: []
@@ -120,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
124
  version: '0'
121
125
  requirements: []
122
126
  rubyforge_project:
123
- rubygems_version: 2.6.13
127
+ rubygems_version: 2.7.10
124
128
  signing_key:
125
129
  specification_version: 4
126
130
  summary: A MyMedia gem to publish a basic web page
metadata.gz.sig CHANGED
Binary file