rss_creator 0.3.7 → 0.4.0

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