rss_creator 0.4.2 → 0.5.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
2
  SHA256:
3
- metadata.gz: 964177968b7e65dc668fb908dc49dcb2b22a4832938d97e953b2e14134ac063b
4
- data.tar.gz: 6f4fc2255ebb1f6aeddb9960ea9f374fe3d78b681c84daeb775e4f88164ac832
3
+ metadata.gz: 2953523eae0c1cb5f12dc29fae51dc7447649c04e04d666b1400d2c1e6bfdc94
4
+ data.tar.gz: c13d015c8d922c498d14e398bd7910a8e8ba50d376393c5e887e638acd09e259
5
5
  SHA512:
6
- metadata.gz: ea214c5015341d577e860471405e51dc367809fbf2aa2c93e692f8c39510f015dfa07656b0b9b57890f7ed2cf82bbda56204074f323cde01838fc1a612889489
7
- data.tar.gz: a30c5a086500b4a9c12915c7e4b719f0489f48853604cf0474c601ddcc8f3e192d2ea364c607c397891f77a555ab857f8e1a6f51e87b958985a6ef274cbaa14a
6
+ metadata.gz: 3918f5754234ff6e513bcb4d0367b85a66076300ca3a6bd9986743c0f5a401944ab3fc63e06e4cf6affd1ebf70b3df2b67b83afae54b1dabb7307a4bd81fd170
7
+ data.tar.gz: 4ca1d32ee4b26e1b1e240a8b9578819f4e68034e984e3d0337a93d66c19b48a91e7dee86be0a98189c334de59c2247460a972b2b9c431a05ff17e95b2395ce9b
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/rss_creator.rb CHANGED
@@ -7,18 +7,19 @@ require 'rss_to_dynarex'
7
7
 
8
8
 
9
9
  class RSScreator
10
+ include RXFHelperModule
10
11
 
11
- attr_accessor :title, :description, :link, :limit, :xslt, :image_url,
12
+ attr_accessor :title, :description, :link, :limit, :xslt, :image_url,
12
13
  :image_target_url
13
14
 
14
- def initialize(filepath='rss.xml', dx_xslt: nil, dx_filename: 'feed.xml',
15
+ def initialize(filepath='rss.xml', dx_xslt: nil, dx_filename: 'feed.xml',
15
16
  custom_fields: [], limit: 10, debug: false)
16
17
 
17
18
 
18
19
  @filepath, @debug = filepath, debug
19
20
 
20
21
  dxfilepath = File.join(File.dirname(filepath), dx_filename)
21
-
22
+
22
23
  if filepath and File.exists? dxfilepath then
23
24
 
24
25
  @dx = Dynarex.new dxfilepath
@@ -27,32 +28,32 @@ class RSScreator
27
28
 
28
29
  else
29
30
  if filepath and File.exists? filepath
30
-
31
+
31
32
  rtd = RSStoDynarex.new filepath
32
33
  @dx = rtd.to_dynarex
33
34
 
34
35
  @title, @description, @link = @dx.title, @dx.description, @dx.link
35
36
  @image_url = @dx.image if @dx.image and @dx.image.length > 1
36
37
  @image_target_url = @link if @link and @link.length > 1
37
-
38
+
38
39
  else
39
40
 
40
-
41
+
41
42
  schema = 'channel[title, description, link, image]/' + \
42
43
  'item(title, link, description, date'
43
44
  schema += ', ' + custom_fields.join(', ') if custom_fields.any?
44
45
  schema += ')'
45
-
46
+
46
47
  @dx = Dynarex.new schema
47
48
  end
48
49
 
49
- @dx.order = 'descending'
50
+ @dx.order = 'descending'
50
51
  @dx.default_key = 'uid'
51
- @dx.xslt = dx_xslt if dx_xslt
52
+ @dx.xslt = dx_xslt if dx_xslt
53
+
52
54
 
53
-
54
55
  end
55
-
56
+
56
57
  @dx.xslt_schema = 'channel[title:title,description:description,' + \
57
58
  'link:link]/item(title:title,description:description,' + \
58
59
  'link:link,pubDate:date)'
@@ -65,31 +66,31 @@ class RSScreator
65
66
 
66
67
  end
67
68
 
68
- def add(item: {title: '', link: '', description: ''}, id: nil)
69
+ def add(itemx={title: '', link: '', description: ''}, item: itemx, id: nil)
69
70
 
70
71
  unless item[:title] and item[:link] then
71
- raise 'RSScreator: title or link can\'t be blank'
72
+ raise 'RSScreator: title or link can\'t be blank'
72
73
  end
73
-
74
+
74
75
  record = {date: Time.now.strftime("%a, %d %b %Y %H:%M:%S %z")}.merge(item)
75
76
  @dx.create(record, id: id)
76
-
77
+
77
78
  @dirty = true
78
-
79
+
79
80
  end
80
81
 
81
82
  def save(new_filepath=nil)
82
83
 
83
84
  filepath = new_filepath ? new_filepath : @filepath
84
- File.write filepath, print_rss
85
+ FileX.write filepath, print_rss
85
86
  @dx.save File.join(File.dirname(filepath), @dxfilename) if @dxfilename
86
87
  end
87
-
88
+
88
89
  def description=(val)
89
90
  @description = val
90
91
  @dirty = true
91
92
  end
92
-
93
+
93
94
  def delete(id)
94
95
  @dx.delete id.to_s
95
96
  end
@@ -100,24 +101,24 @@ class RSScreator
100
101
  def dynarex()
101
102
  @dx
102
103
  end
103
-
104
+
104
105
  def image_url=(val)
105
106
  @image_url = val
106
107
  @dirty = true
107
108
  end
108
-
109
+
109
110
  alias image= image_url=
110
-
111
+
111
112
  def image_target_url=(val)
112
113
  @image_target_url = val
113
114
  @dirty = true
114
- end
115
+ end
115
116
 
116
117
  def link=(val)
117
118
  @link = val
118
119
  @dirty = true
119
- end
120
-
120
+ end
121
+
121
122
  def title=(val)
122
123
  @title = val
123
124
  @dirty = true
@@ -130,43 +131,43 @@ class RSScreator
130
131
  private
131
132
 
132
133
  def print_rss()
133
-
134
+
134
135
  return @rss unless @dirty
135
136
 
136
137
  if @title.nil? or @description.nil? then
137
- raise 'RSScreator: title or description can\'t be blank'
138
+ raise 'RSScreator: title or description can\'t be blank'
138
139
  end
139
140
 
140
141
  @dx.title, @dx.description, @dx.link = @title, @description, @link || ''
141
142
  @dx.image = @image_url if @dx.respond_to? :image
142
-
143
+
143
144
  @rss = if @xslt then
144
-
145
+
145
146
  @dx.to_rss({limit: @limit}) do |doc|
146
-
147
+
147
148
  doc.instructions << ['xml-stylesheet',\
148
149
  "title='XSL_formatting' type='text/xsl' href='#{@xslt}'"]
149
-
150
- end
151
-
150
+
151
+ end
152
+
152
153
  else
153
-
154
+
154
155
  @dx.to_rss({limit: @limit}) do |doc|
155
-
156
+
156
157
  if @image_url then
157
-
158
+
158
159
  img = Rexle::Element.new('image')
159
160
  img.add Rexle::Element.new('url').add_text @image_url
160
161
  img.add Rexle::Element.new('link').add_text @image_target_url
161
-
162
+
162
163
  doc.root.element('channel/item').insert_before img
163
-
164
- end
165
-
164
+
165
+ end
166
+
166
167
  end
167
-
168
+
168
169
  end
169
-
170
+
170
171
  @dirty = false
171
172
  @rss
172
173
 
data.tar.gz.sig CHANGED
Binary file
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.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  CmoNNvIZ3zS4vUkMoFR7S0bXN/xdxzLVn5uGLJ8FwP76BqKlR2+xV5Bj+40hyMDP
36
36
  s+qwrtoA3kBtGhpVjCn/TE5q
37
37
  -----END CERTIFICATE-----
38
- date: 2021-02-24 00:00:00.000000000 Z
38
+ date: 2022-01-17 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rss_to_dynarex
metadata.gz.sig CHANGED
Binary file