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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/mymedia-pages.rb +107 -77
- data.tar.gz.sig +0 -0
- metadata +57 -37
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0eea23c92c39a299c87722eb15a8718d64d16ff45a499b54668c1a9d0c4a3da6
|
4
|
+
data.tar.gz: 3b41298e25a327ca15924d186f21e81436f1a50147f5035bf7a060d5aa36c885
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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:
|
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
|
-
|
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 =
|
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
|
-
|
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
|
-
|
76
|
-
|
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
|
-
|
79
|
-
|
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
|
-
|
95
|
-
end
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
raw_msg =
|
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
|
-
|
107
|
-
|
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
|
-
|
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/"
|
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(
|
248
|
-
|
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.
|
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
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
29
|
-
+
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
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:
|
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.
|
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.
|
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:
|
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:
|
81
|
+
name: kramdown
|
62
82
|
requirement: !ruby/object:Gem::Requirement
|
63
83
|
requirements:
|
64
84
|
- - "~>"
|
65
85
|
- !ruby/object:Gem::Version
|
66
|
-
version: '
|
86
|
+
version: '2.3'
|
67
87
|
- - ">="
|
68
88
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
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: '
|
96
|
+
version: '2.3'
|
77
97
|
- - ">="
|
78
98
|
- !ruby/object:Gem::Version
|
79
|
-
version:
|
99
|
+
version: 2.3.1
|
80
100
|
description:
|
81
|
-
email:
|
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.
|
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
|