mymedia-pages 0.3.0 → 0.5.1

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.
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