diff options
Diffstat (limited to 'lib/helpers.rb')
-rw-r--r-- | lib/helpers.rb | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/lib/helpers.rb b/lib/helpers.rb new file mode 100644 index 0000000..34ed17f --- /dev/null +++ b/lib/helpers.rb @@ -0,0 +1,62 @@ +require 'sanitize' +require 'erb' +require 'rss' + +COMP_MAP = { + '>=' => 'ge', + '>' => 'gt', + '=' => 'eq', + '<=' => 'le', + '<' => 'lt', + 'revision <' => 'rlt', + 'revision <=' => 'rle', + 'revision >' => 'rgt', + 'revision >=' => 'rge' +}.freeze + +helpers do + def h(text) + Rack::Utils.escape_html(text) + end + + def u(text) + ERB::Util::url_encode(text) + end + + def h2(text) + Sanitize.clean(text, Sanitize::Config::BASIC) + end + + def code2pre(text) + text.gsub('<code>', '<pre>').gsub('</code>', '</pre>').gsub(/ +/, ' ').chomp + end + + # Returns the comparator in the format needed for the XML + def xml_comp(val) + COMP_MAP[val] + end + + def reverse_xml_comp(val) + COMP_MAP.invert[val] + end + + def feed(type, items) + RSS::Maker.make(type) do |maker| + maker.channel.author = "Gentoo Security Team" + maker.channel.about = "https://security.gentoo.org/glsa" + maker.channel.link = "https://security.gentoo.org/glsa" + maker.channel.description = "This feed contains new Gentoo Linux Security Advisories. Contact security@gentoo.org with questions." + maker.channel.title = "Gentoo Linux Security Advisories" + maker.channel.updated = Time.now.to_s + + items.each do |input_item| + maker.items.new_item do |item| + item.link = BASE_URL + 'glsa/' + input_item.id + item.title = "GLSA %s: %s" % [input_item.id, input_item.title] + item.updated = Time.now.to_s + end + end + end.to_s + end + +end
\ No newline at end of file |