mymedia-pages 0.3.0 → 0.5.1

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
2
  SHA256:
3
- metadata.gz: 7e6a1f51dc5bd140b99776a51e52b6101dba849ab202faa898f4978fd9697a78
4
- data.tar.gz: f226e165c7437ef3b0e1e33421f1529b1b2e2eb1cf032d3526ec6a762586a67a
3
+ metadata.gz: 0eea23c92c39a299c87722eb15a8718d64d16ff45a499b54668c1a9d0c4a3da6
4
+ data.tar.gz: 3b41298e25a327ca15924d186f21e81436f1a50147f5035bf7a060d5aa36c885
5
5
  SHA512:
6
- metadata.gz: fc47aa4e734b8b9b1d1bcc28acb3d00644b1188f8956fd1c622d69ed5fb363261a351e736122873ca4caf7420ea4d45d16e6e5ca648ffd3ee919c5032d0c84e0
7
- data.tar.gz: f54b7929e3213f8a21fbf01bf95226e106b9d5416076fefda578b4032cce785c18ec76f8137900bd64b47d196764824f0f70450c506de9e3f1d413668e7155db
6
+ metadata.gz: 5bdc93280a0eb6f2a81efe740f80facc0d0834302c13b1539d42b680b6065368fa27c387a4d47afc2924848f6097e0ce230ec45f5b465e82b6aecd1783dc6ee4
7
+ data.tar.gz: 67c5499fc6648907ff873ed42662c3b4625694390e7dec85a6bceb5a9b7e9fa4788b402ff49a7d937dcb0743156ae56b527238d95be87ba764cf122ae52930cd
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/mymedia-pages.rb CHANGED
@@ -5,55 +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, debug: false)
18
-
38
+ config: nil, log: nil, debug: false)
39
+
19
40
  super(media_type: media_type, public_type: @public_type=media_type,
20
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
45
  @debug = debug
26
-
27
- end
28
-
46
+
47
+ end
48
+
29
49
  def copy_publish(filename, raw_msg='')
30
50
 
31
51
  @log.info 'MyMediaPagesinside copy_publish' if @log
32
52
  @filename = filename
33
53
  src_path = File.join(@media_src, filename)
34
54
 
35
- 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
36
56
  return file_publish(src_path, raw_msg)
37
57
  end
38
58
 
39
59
  file_publish(src_path, raw_msg) do |destination, raw_destination|
40
60
 
41
61
  ext = File.extname(src_path)
42
-
43
- if ext[/\.(?:md|txt)/] then
62
+
63
+ if ext[/\.(?:md|txt)/] then
44
64
 
45
65
  raw_dest_xml = raw_destination.sub(/html$/,'xml')
46
66
  dest_xml = destination.sub(/html$/,'xml')
47
67
  x_destination = raw_destination.sub(/\.html$/,ext)
48
68
 
49
69
 
50
- FileUtils.cp src_path, x_destination
51
-
70
+ FileX.cp src_path, x_destination
71
+
52
72
  source = x_destination[/\/r\/#{@public_type}.*/]
53
73
  s = @website + source
54
74
 
55
75
  relative_path = s[/https?:\/\/[^\/]+([^$]+)/,1]
56
- src_content = File.read src_path
76
+ src_content = FileX.read src_path
57
77
  doc = xml(src_content, relative_path, filename)
58
78
 
59
79
  return unless doc
@@ -63,82 +83,90 @@ class MyMediaPages < MyMedia::Base
63
83
 
64
84
  @log.info 'mymedia_pages/copy_publish: after modify_xml' if @log
65
85
 
66
- File.write raw_destination, xsltproc("#{@home}/r/xsl/#{@public_type}.xsl", raw_dest_xml)
86
+ FileX.write raw_destination,
87
+ xsltproc("#{@home}/r/xsl/#{@public_type}.xsl", raw_dest_xml)
88
+
89
+ FileX.write destination,
90
+ xsltproc("#{@home}/#{@www}/xsl/#{@public_type}.xsl", dest_xml)
91
+
92
+ html_filename = basename(@media_src, src_path)\
93
+ .sub(/(?:md|txt)$/,'html')
67
94
 
68
- File.write destination, xsltproc("#{@home}/#{@www}/xsl/#{@public_type}.xsl", dest_xml)
69
95
 
70
- html_filename = basename(@media_src, src_path).sub(/(?:md|txt)$/,'html')
71
-
72
-
73
96
  xml_filename = html_filename.sub(/html$/,'xml')
74
97
 
75
- FileUtils.mkdir_p File.dirname(File.join(File.dirname(destination), html_filename))
76
- FileUtils.cp destination, File.join(File.dirname(destination), html_filename)
98
+ FileX.mkdir_p File.dirname(File.join(File.dirname(destination),
99
+ html_filename))
100
+ FileX.cp destination, File.join(File.dirname(destination),
101
+ html_filename)
77
102
 
78
- FileUtils.mkdir_p File.dirname( File.join(File.dirname(dest_xml), xml_filename))
79
- FileUtils.cp dest_xml, File.join(File.dirname(dest_xml), xml_filename)
103
+ FileX.mkdir_p File.dirname( File.join(File.dirname(dest_xml),
104
+ xml_filename))
105
+ FileX.cp dest_xml, File.join(File.dirname(dest_xml), xml_filename)
80
106
 
81
107
  tags = doc.root.xpath('summary/tags/tag/text()')
82
- raw_msg = "%s %s" % [doc.root.text('summary/title'),
108
+ raw_msg = "%s %s" % [doc.root.text('summary/title'),
83
109
  tags.map {|x| "#%s" % x }.join(' ')]
84
-
85
-
86
- @log.info "msg: %s tags: %s" % [raw_msg, tags.inspect]if @log
110
+
111
+
112
+ @log.info "msg: %s tags: %s" % [raw_msg, tags.inspect] if @log
87
113
 
88
114
 
89
115
  else
90
-
116
+
91
117
  html_filename = basename(@media_src, src_path)
92
-
118
+
93
119
  if html_filename =~ /\// then
94
- FileUtils.mkdir_p File.dirname(html_filename)
95
- end
96
-
97
- FileUtils.cp src_path, destination
98
- FileUtils.cp src_path, raw_destination
99
-
100
- raw_msg = File.read(destination)[/<title>([^<]+)<\/title>/,1]
120
+ FileX.mkdir_p File.dirname(html_filename)
121
+ end
122
+
123
+ FileX.cp src_path, destination
124
+ FileX.cp src_path, raw_destination
125
+
126
+ raw_msg = FileX.read(destination)[/<title>([^<]+)<\/title>/,1]
101
127
  end
102
-
128
+
103
129
  if not File.basename(src_path)[/[a-z]\d{6}T\d{4}\.(?:html|md|txt)/] then
104
-
130
+
105
131
  @log.info 'MyMediaPages::copy_publish before FileUtils' if @log
106
- FileUtils.mkdir_p File.dirname(@home + "/#{@public_type}/" + html_filename)
107
- FileUtils.cp destination, @home + "/#{@public_type}/" + html_filename
132
+ FileX.mkdir_p File.dirname(@home + "/#{@public_type}/" + html_filename)
133
+ FileX.cp destination, @home + "/#{@public_type}/" + html_filename
108
134
 
109
135
  if xml_filename then
110
- FileUtils.cp dest_xml, @home + "/#{@public_type}/" + xml_filename
136
+ FileUtils.cp dest_xml, @home + "/#{@public_type}/" + xml_filename
111
137
  end
112
138
 
113
- static_filepath = @home + "/#{@public_type}/static.xml"
114
- x_filename = @static_html == true ? html_filename : xml_filename
139
+ static_filepath = @home + "/#{@public_type}/static.xml"
140
+ x_filename = @static_html == true ? html_filename : xml_filename
115
141
  target_url = [@website, @public_type, x_filename].join('/')
116
-
142
+
117
143
  if @log then
118
144
  @log.info 'MyMediaPages::copy_publish ->file_publish ' +
119
145
  'before publish_dynarex'
120
146
  end
121
-
122
- publish_dynarex(static_filepath, {title: raw_msg, url: target_url })
147
+
148
+ publish_dynarex(static_filepath, {title: raw_msg, url: target_url })
123
149
 
124
150
  end
125
151
 
126
152
  [raw_msg, target_url]
127
- end
153
+ end
128
154
 
129
155
  end
130
-
131
-
156
+
157
+
132
158
  private
133
-
159
+
134
160
  def htmlize(raw_buffer)
135
161
 
136
162
  buffer = Martile.new(raw_buffer, ignore_domainlabel: @domain).to_s
137
-
138
163
  lines = buffer.strip.lines.to_a
139
164
  puts 'lines: ' + lines.inspect if @debug
140
165
 
141
166
  raw_title = lines.shift.chomp
167
+ puts 'lines 2): ' + lines.inspect if @debug
168
+
169
+ raise MyMediaPagesError, 'invalid input file' if lines.empty?
142
170
  raw_tags = lines.pop[/[^>]+$/].split
143
171
 
144
172
  s = lines.join
@@ -146,7 +174,7 @@ class MyMediaPages < MyMedia::Base
146
174
  html = Kramdown::Document.new(s).to_html
147
175
  [raw_title, raw_tags, html]
148
176
 
149
- end
177
+ end
150
178
 
151
179
  def microblog_title(doc)
152
180
 
@@ -154,7 +182,7 @@ class MyMediaPages < MyMedia::Base
154
182
 
155
183
  title = summary.text('title')
156
184
  tags = summary.xpath('tags/tag/text()').map{|x| '#' + x}.join(' ')
157
-
185
+
158
186
  url = "%s/%s/yy/mm/dd/hhmmhrs.html" % [@website, @media_type]
159
187
  full_title = (url + title + ' ' + tags)
160
188
 
@@ -165,17 +193,17 @@ class MyMediaPages < MyMedia::Base
165
193
 
166
194
  title + ' ' + tags
167
195
 
168
- end
169
-
170
-
196
+ end
197
+
198
+
171
199
  def modify_xml(docx, filepath, xslpath='r/')
172
200
 
173
201
  if @log then
174
202
  @log.info 'mymedia_pages: inside modify_xml: docx.xml: ' + docx.xml.inspect
175
203
  end
176
-
204
+
177
205
  doc = Rexle.new docx.xml pretty: false
178
-
206
+
179
207
  if @log then
180
208
  @log.info 'doc.xml: ' + doc.xml.inspect if @log
181
209
  end
@@ -186,40 +214,42 @@ class MyMediaPages < MyMedia::Base
186
214
  + ["href='#{@website}/#{xslpath}xsl/#{@public_type}.xsl'"]
187
215
 
188
216
  yield(doc) if block_given?
189
- File.write filepath, doc.xml(declaration: true, pretty: false)
217
+ FileX.write filepath, doc.xml(declaration: true, pretty: false)
190
218
  end
191
-
219
+
192
220
  def xml(raw_buffer, filename, original_file)
193
221
 
194
222
  begin
195
223
 
196
-
224
+ puts 'before htmlize'
197
225
  raw_title, raw_tags, html = htmlize(raw_buffer)
226
+ puts 'after htmlize'
198
227
 
199
- doc = Rexle.new("<body>%s</body>" % html)
228
+ doc = Rexle.new("<body>%s</body>" % html)
200
229
 
201
230
  doc.root.xpath('//a').each do |x|
202
231
 
203
232
  next unless x.attributes[:href] and x.attributes[:href].empty?
204
-
233
+
205
234
  new_link = x.text.gsub(/\s/,'_')
206
235
 
207
- x.attributes[:href] = "#{@dynamic_website}/do/#{@public_type}/new/" + new_link
236
+ x.attributes[:href] = "#{@dynamic_website}/do/#{@public_type}/new/" \
237
+ + new_link
208
238
  x.attributes[:class] = 'new'
209
239
  x.attributes[:title] = x.text + ' (page does not exist)'
210
240
  end
211
-
241
+
212
242
  body = doc.root.children.join
213
243
 
214
- # A special tag can be used to represent a metatag which indicates if
215
- # the document access is to be made public. The special tag can either
244
+ # A special tag can be used to represent a metatag which indicates if
245
+ # the document access is to be made public. The special tag can either
216
246
  # be a 'p' or 'public'
217
247
 
218
248
  access = raw_tags.last[/^(?:p|public)$/] ? raw_tags.pop : nil
219
-
249
+
220
250
  xml = RexleBuilder.new
221
-
222
- a = xml.page do
251
+
252
+ a = xml.page do
223
253
  xml.summary do
224
254
  xml.title raw_title
225
255
  xml.tags { raw_tags.each {|tag| xml.tag tag }}
@@ -230,21 +260,21 @@ class MyMediaPages < MyMedia::Base
230
260
  xml.published Time.now.strftime("%d-%m-%Y %H:%M")
231
261
  xml.filetitle original_file[/.*(?=\.\w+$)/]
232
262
  end
233
-
263
+
234
264
  xml.body body
235
265
  end
236
-
237
-
266
+
267
+
238
268
  rescue
239
269
  raise MyMediaPagesError, 'xml(): ' + ($!).inspect
240
270
  end
241
271
 
242
272
  return Rexle.new(a)
243
- end
244
-
245
- def xsltproc(xslpath, xmlpath)
246
-
247
- Nokogiri::XSLT(File.open(xslpath))\
248
- .transform(Nokogiri::XML(File.open(xmlpath))).to_xhtml(indent: 0)
273
+ end
274
+
275
+ def xsltproc(xslpath, xmlpath)
276
+
277
+ Nokogiri::XSLT(FileX.read(xslpath))\
278
+ .transform(Nokogiri::XML(FileX.read(xmlpath))).to_xhtml(indent: 0)
249
279
  end
250
280
  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.3.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,74 +11,94 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgxMjIzMjIwODMxWhcN
15
- MTkxMjIzMjIwODMxWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCfQSh0
17
- 54uRwCwRP2UZxTYFukb9hOW+bkk2oxIKCtF8PqswL3GvT8cklOrX5Di3k62XZVo9
18
- beR7L4Wg9XMrF5M8L/BaV9bQGuUdAX511KCvICWMdshkwb4YgXu67zCyNWYFI5OP
19
- 014NIzwRCfa0MwumixtzLGCwlzuyRY1sOt9vmrBiDfJuTaoM4fvNkeAUTcasnzc3
20
- sXYAJYpAwqZyIgCLRGZneE2X0PniFN1GugLqDVnIyEYTT881mB7uZT+iossWgoPx
21
- AR38kIFvIropiFN12LHCqYaHrZs4sOt+qWAVB+nD3FvNdInS5/LRR3vYCIzDrZNA
22
- 2zSqcaAlqDrGHd2ihbyOHOXo5+KTwI/PejnyjJ45NWTNCfHWzTV39JcoG2lQ3BhW
23
- m8XymSUz8Kw21rweuM35dVwbTT9JJ6EGLA1b4Cn/Y5Y0xZTxIOxWL/pN8mlPE1RR
24
- W8+RpbMTd7wDQvmV5ZKhoLKlmwx7x2bhdQsPSVKT8gVHGc3avwmNOBVOiP0CAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUnc0QUhFf
26
- 5ZzlxVZ49oWnaIY/67owJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
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
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAEOyi4k4QdyOta49jNF/ItwjvgzpyH5lSgrljgVIW
29
- +EhQ2J4M4oZt3WCW2uz1ymBDhqaVhlivl1/2Pdfi+q1k99z9CYclxXQuc9BCE1Fv
30
- U3PNcKt2eWUBDl38GiFS97i2e4hnP5aEcNKccp9qtBWgb7vb7qNfA2Hl/nj/pjfS
31
- wUv/JGx+sRKvoEp7ZiArNv5zKF57CQcwXXdgl4EpQ8cDd0OvWkUnSwn8/Db2hVYh
32
- Nof01v/DuLb7HRa3/jWXq5/sXdnkRGyvYcGVKIDUZXjCSkGmWe2KliWkRjTB69TN
33
- 2sB+X+/T/RYv/fZd1cQ2lqUvR87OtrSsihETlSZW3HMcDXuHhTQDNIMTfp/sCOxm
34
- MYWc9C1P6edGrzbEs65/Ncf6+JvQi5y1gJm08/jFQZfgZ5C6EeqG88e5nz11D3PP
35
- Zjzgguta+drnuIJnc+QwM1iiRbCxGnBHakqqO7LHJ9ZfNQUakUmPlDsmZhw8y/jo
36
- jUJbajlf284t/3akvWUQ+1KB
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
37
37
  -----END CERTIFICATE-----
38
- date: 2018-12-23 00:00:00.000000000 Z
38
+ date: 2022-02-12 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: mymedia
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '0.2'
47
44
  - - ">="
48
45
  - !ruby/object:Gem::Version
49
- version: 0.2.14
46
+ version: 0.5.0
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.5'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 0.5.0
54
57
  - - "~>"
55
58
  - !ruby/object:Gem::Version
56
- version: '0.2'
59
+ version: '0.5'
60
+ - !ruby/object:Gem::Dependency
61
+ name: martile
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
57
64
  - - ">="
58
65
  - !ruby/object:Gem::Version
59
- version: 0.2.14
66
+ version: 1.5.0
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.5'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 1.5.0
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '1.5'
60
80
  - !ruby/object:Gem::Dependency
61
- name: martile
81
+ name: kramdown
62
82
  requirement: !ruby/object:Gem::Requirement
63
83
  requirements:
64
84
  - - "~>"
65
85
  - !ruby/object:Gem::Version
66
- version: '1.1'
86
+ version: '2.3'
67
87
  - - ">="
68
88
  - !ruby/object:Gem::Version
69
- version: 1.1.0
89
+ version: 2.3.1
70
90
  type: :runtime
71
91
  prerelease: false
72
92
  version_requirements: !ruby/object:Gem::Requirement
73
93
  requirements:
74
94
  - - "~>"
75
95
  - !ruby/object:Gem::Version
76
- version: '1.1'
96
+ version: '2.3'
77
97
  - - ">="
78
98
  - !ruby/object:Gem::Version
79
- version: 1.1.0
99
+ version: 2.3.1
80
100
  description:
81
- email: james@jamesrobertson.eu
101
+ email: digital.robertson@gmail.com
82
102
  executables: []
83
103
  extensions: []
84
104
  extra_rdoc_files: []
@@ -104,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
124
  version: '0'
105
125
  requirements: []
106
126
  rubyforge_project:
107
- rubygems_version: 2.7.6
127
+ rubygems_version: 2.7.10
108
128
  signing_key:
109
129
  specification_version: 4
110
130
  summary: A MyMedia gem to publish a basic web page
metadata.gz.sig CHANGED
Binary file