rss_creator 0.3.7 → 0.4.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: 5f56422b2a1a37f8d1a6fde1293bef1aec3fb9dd
4
- data.tar.gz: 0d77235d5f39be3a3fdd7f6e4377f035a2a1e621
2
+ SHA256:
3
+ metadata.gz: 647757a294410e98e341314c9f85c097059161320456321ff8472deb90c363d6
4
+ data.tar.gz: 396951cc15ffcd5ae92790392a4ad139310acd35cdd2d7b1f59d0e15696a6bd2
5
5
  SHA512:
6
- metadata.gz: 076dbb400ced2af9201e297744bcb6c981ae614f4db28f750d99da8f9db3f4796fc70c18338f9f356f245094d5934c32522cc5a59da176ec93bfd64d0d3b58ee
7
- data.tar.gz: aa0f54b09b62c5b147d77b3a608c98adb0c56bd57394dd8fc70cb75a89c6054b06d38eab93c9b257fd66e2fd091ada7fbbe8977e17e0da166db97a884d5d831e
6
+ metadata.gz: 465c8405ef8d2f6ff853f418d35eaf4eb6d07f301f02664d31a59b41357a27486a49d5b159e8b941c69697b1464ec623dab641dcbcfd77612e704e9861565abd
7
+ data.tar.gz: 2308016cbad0de11a04ccfdbb2bfa2e345ac440700fedb7cea0c1f9aeac1164fc152fd0569fa8f55a69db3e82c32ac3695be5e0f003cc867a56bb54422263ef2
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/lib/rss_creator.rb CHANGED
@@ -8,53 +8,62 @@ require 'rss_to_dynarex'
8
8
 
9
9
  class RSScreator
10
10
 
11
- attr_accessor :title, :description, :link, :limit, :xslt
11
+ attr_accessor :title, :description, :link, :limit, :xslt, :image_url,
12
+ :image_target_url
12
13
 
13
- def initialize(filepath='rss.xml', dx_xslt: nil,
14
- dx_filename: 'feed.xml', custom_fields: [])
14
+ def initialize(filepath='rss.xml', dx_xslt: nil, dx_filename: 'feed.xml',
15
+ custom_fields: [], limit: 10, debug: false)
15
16
 
16
17
 
17
- @filepath = filepath
18
+ @filepath, @debug = filepath, debug
18
19
 
19
20
  dxfilepath = File.join(File.dirname(filepath), dx_filename)
20
21
 
21
22
  if filepath and File.exists? dxfilepath then
22
-
23
+
23
24
  @dx = Dynarex.new dxfilepath
24
25
  @title, @description, @link = @dx.title, @dx.description, @dx.link
26
+
27
+ else
28
+ if filepath and File.exists? filepath
25
29
 
26
- elsif filepath and File.exists? filepath
27
-
28
- rtd = RSStoDynarex.new filepath
29
- @dx = rtd.to_dynarex
30
+ rtd = RSStoDynarex.new filepath
31
+ @dx = rtd.to_dynarex
30
32
 
31
- @title, @description, @link = @dx.title, @dx.description, @dx.link
33
+ @title, @description, @link = @dx.title, @dx.description, @dx.link
32
34
 
33
- else
35
+ else
36
+
34
37
 
35
- schema = 'channel[title, description, link]/' + \
36
- 'item(title, link, description, date'
37
- schema += ', ' + custom_fields.join(', ') if custom_fields.any?
38
- schema += ')'
38
+ schema = 'channel[title, description, link]/' + \
39
+ 'item(title, link, description, date'
40
+ schema += ', ' + custom_fields.join(', ') if custom_fields.any?
41
+ schema += ')'
42
+
43
+ @dx = Dynarex.new schema
44
+ end
45
+
46
+ @dx.order = 'descending'
47
+ @dx.default_key = 'uid'
48
+ @dx.xslt = dx_xslt if dx_xslt
49
+
39
50
 
40
- @dx = Dynarex.new schema
41
51
  end
42
-
43
- @dx.order = 'descending'
44
- @dx.default_key = 'uid'
45
- @dx.xslt = dx_xslt if dx_xslt
52
+
46
53
  @dx.xslt_schema = 'channel[title:title,description:description,' + \
47
54
  'link:link]/item(title:title,description:description,' + \
48
55
  'link:link,pubDate:date)'
49
56
  # maxium number of items saved in the RSS feed
50
- @dx.limit = @limit = 10
57
+ @dx.limit = @limit = limit
58
+
59
+
51
60
  @dirty = true
52
61
  @dxfilename = dx_filename
53
62
 
54
63
  end
55
64
 
56
- def add(item={title: '', link: '', description: ''}, id: nil)
57
-
65
+ def add(item: {title: '', link: '', description: ''}, id: nil)
66
+
58
67
  unless item[:title] and item[:link] then
59
68
  raise 'RSScreator: title or link can\'t be blank'
60
69
  end
@@ -77,6 +86,10 @@ class RSScreator
77
86
  @description = val
78
87
  @dirty = true
79
88
  end
89
+
90
+ def delete(id)
91
+ @dx.delete id.to_s
92
+ end
80
93
 
81
94
  alias desc= description=
82
95
  alias desc description
@@ -84,6 +97,18 @@ class RSScreator
84
97
  def dynarex()
85
98
  @dx
86
99
  end
100
+
101
+ def image_url=(val)
102
+ @image_url = val
103
+ @dirty = true
104
+ end
105
+
106
+ alias image= image_url=
107
+
108
+ def image_target_url=(val)
109
+ @image_target_url = val
110
+ @dirty = true
111
+ end
87
112
 
88
113
  def link=(val)
89
114
  @link = val
@@ -122,7 +147,19 @@ class RSScreator
122
147
 
123
148
  else
124
149
 
125
- @dx.to_rss({limit: @limit})
150
+ @dx.to_rss({limit: @limit}) do |doc|
151
+
152
+ if @image_url then
153
+
154
+ img = Rexle::Element.new('image')
155
+ img.add Rexle::Element.new('url').add_text @image_url
156
+ img.add Rexle::Element.new('link').add_text @image_target_url
157
+
158
+ doc.root.element('channel/item').insert_before img
159
+
160
+ end
161
+
162
+ end
126
163
 
127
164
  end
128
165
 
@@ -131,4 +168,4 @@ class RSScreator
131
168
 
132
169
  end
133
170
 
134
- end
171
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rss_creator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.4.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
- 8ixkARkWAmV1MB4XDTE2MTExMzIyNDIyNloXDTE3MTExMzIyNDIyNlowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAKaOQQyDnSYBQAIOiwAbLycnxtnbmJi0OuNGu0EHmd0OWmLVMZ84oZWT8pkD
19
- zzj/RgAayFHw+Q8XB42aPtxARIRnvDwry5xMA+TSpQBqTxH5wlzijkRHUpQNqzEG
20
- Ijsu2LcLBxIPsg0969IJZevlSq+pY3VGC9qRCnLPA4fPpODpKVl4j3aT6hvxvnsk
21
- K3iOmXY7/jv0umProOCtDN8/NzWcR/ZgFpzAbsS7b6yybSUnhFeojKP7T06hoFjX
22
- PXs8w4NIMI1PHfaw459Srl4rN8/v4ahbJJnh5ky7vZLFCf3+nJ8/OBLm09U0FLe/
23
- cbcu7Fco7Kqs0PYrUZE7hcLILUkCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUXS6nRxaHN2aBZzHVRuEqTryY4O8wJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAEqWMdmXp
27
- D3hpOzwBtR8il6mvOuwuQkVUZ/RZzkMZ+AHjC+yEZzR/NMBGaOEykbEcN/94KOAT
28
- Pg4nFF6wa/WPnSIIk+/gy2pv/91wLOQCigOLGEeTseTl5duG6pIX+I5ITTarcRfF
29
- QZ+7yzFK7egXhF74VpxS5svdIxlls/wifDnE7RJxDnjzJevw97Q+rW0m+MDqdjZu
30
- zVa3GXFgEgs1pLV+ho4BfLSNcuVbBf/3+pZQubvdZeLHJjVk1GhOALhUF0PXb8bP
31
- hXSgrPL6ACV7rtc2iVhUYecvY3zMO7BYslWTwMttsJoWwM3Y1/zMxqGA6hyM1FiZ
32
- NhhuO3PIc1VSzw==
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjEwMjI0MTEzNTE4WhcN
15
+ MjIwMjI0MTEzNTE4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC/EdPv
17
+ Z9PmSgZQ31H8hgTyVkC5Ww2VyrxJbX9LA2xX++xTEMm2LvLs4G9vGeNWiUpLdSZt
18
+ EkPMLX58IhDJoETYMF4UpAw/tOPMlvzrmM9vFTdsZXKXwTwS3blbWahUgRAlXWpV
19
+ pbNj+SQlnIZklZ8FR/rvXE98wAFO4IIldQcyuUi9ehrYfazpS6fOg3f3Yg6ffPMs
20
+ xWUmhF4zQs+J6utjoJeWyVHWwHFpcmzMIEcLbnGOsn6JHdPmDaCTyAWjbrTsbMRn
21
+ o4BHS81Mn9ao3FDOR+Rj/zxZJNwEoEdWtQXCqCRFtBNehODqjSGNEBlYQmG0gQJ1
22
+ 2PiXAf8lcqVo2KJPMVPjMSwKDQKdfMf8/EqZjwH+OrrH38AjrjJgOXH7/amVutBb
23
+ gCyoseuD+sB5tXXuw1pHsMYJJ/NB7GZ+ASmc3B2dQAXOWFgykpVcYIRfvMmwZP4v
24
+ +Vb0c3yg0FFzrwqVM3VkiAdEDWN2Rre0p5DOTkRnq+lFBGa4PG3aGouyBlMCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUhDWnNVwu
26
+ b9LRBkr5cLvEtdMUsJgwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAo0n6mqehv/bgKVFYMGIfB/tq2NKDBvELxb8LRVpZ
29
+ NS4iZKtM+N5OD+zmxM8bseB08B2Yxks9y1997X5wVWWdK54oJej5qSVomfHQIqTh
30
+ Fg8+FDZk6gkDBTIia5jZOK+s9AUxoYpftcorQOio3liFq+yCqW+s6hP64RkY94sR
31
+ voFGWhBW0WG1QEGqkqUHTit2G70yBhhIp/rm7WsyG5aRuzPONcyLY8VFXhSINKmj
32
+ 0Y+xZNDlcsrWogXVkGsZ0PoRNZZ4g4iyErPMwE452ObevrSVrIwbpNtsEdELB3nT
33
+ GhAiUqHiF6mNOkTz5Rj+RnhU07eAcTtHI+EesCu+U0UwvV0NAWG9/E/FkHO0a5Zj
34
+ GoDraKZUzvcj/SsP13HRpvscyV1L0cxGWubkEtJYKFGKlkjHU1WdV3xLvWLQSquN
35
+ CmoNNvIZ3zS4vUkMoFR7S0bXN/xdxzLVn5uGLJ8FwP76BqKlR2+xV5Bj+40hyMDP
36
+ s+qwrtoA3kBtGhpVjCn/TE5q
33
37
  -----END CERTIFICATE-----
34
- date: 2017-03-10 00:00:00.000000000 Z
38
+ date: 2021-02-24 00:00:00.000000000 Z
35
39
  dependencies:
36
40
  - !ruby/object:Gem::Dependency
37
41
  name: rss_to_dynarex
@@ -57,24 +61,24 @@ dependencies:
57
61
  name: rss_sliml
58
62
  requirement: !ruby/object:Gem::Requirement
59
63
  requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '0.1'
63
64
  - - ">="
64
65
  - !ruby/object:Gem::Version
65
- version: 0.1.0
66
+ version: 0.2.0
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.2'
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.1'
73
74
  - - ">="
74
75
  - !ruby/object:Gem::Version
75
- version: 0.1.0
76
+ version: 0.2.0
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.2'
76
80
  description:
77
- email: james@jamesrobertson.eu
81
+ email: digital.robertson@gmail.com
78
82
  executables: []
79
83
  extensions: []
80
84
  extra_rdoc_files: []
@@ -100,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
104
  version: '0'
101
105
  requirements: []
102
106
  rubyforge_project:
103
- rubygems_version: 2.6.8
107
+ rubygems_version: 2.7.10
104
108
  signing_key:
105
109
  specification_version: 4
106
110
  summary: A gem for creating RSS feeds
metadata.gz.sig CHANGED
Binary file