class Myredditnews::Formatter

Public Class Methods

default() click to toggle source
# File lib/myredditnews.rb, line 106
def self.default
  self.new '{{title}} - {{author}}'
end

Public Instance Methods

fmt(entry) click to toggle source
# File lib/myredditnews.rb, line 94
def fmt(entry)
  new_title = @format.gsub(/\{\{(.+?)\}\}/) { |match| entry.send($1) }
  new_entry = entry.clone
  new_entry.title = new_title
  new_entry.content = format_content(new_entry)
  if new_entry.content.empty?
    new_entry.self_post = false
  else
    new_entry.content += "\n\n" + md_link('source', new_entry.url)
  end
  return new_entry
end

Private Instance Methods

filter_html(html) click to toggle source
# File lib/myredditnews.rb, line 119
def filter_html html
  Nokogiri::HTML(html).xpath("//text()").remove.to_s
end
format_content(entry) click to toggle source
# File lib/myredditnews.rb, line 113
def format_content entry
  # maybe translate to markdown?
  return filter_html(entry.content) if !entry.content.empty?
  return filter_html(entry.summary) if !entry.summary.empty?
  return ''
end