class ZooniverseSocial::Posts

Attributes

data[R]

Public Class Methods

new() click to toggle source
# File lib/zooniverse_social/posts.rb, line 8
def initialize
  @blog_updater = Updater.new 'https://public-api.wordpress.com', '/rest/v1.1/sites/36711287/posts'
  @daily_updater = Updater.new 'https://public-api.wordpress.com', '/rest/v1.1/sites/57182749/posts'
  update
end

Public Instance Methods

_update(updater) click to toggle source
# File lib/zooniverse_social/posts.rb, line 20
def _update(updater)
  response = updater.update number: 3, fields: 'ID,URL,title,excerpt,date,featured_image'
  response.fetch('posts', []).collect do |post|
    {
      id: post['ID'],
      title: remove_entities(post['title']),
      excerpt: remove_entities(post['excerpt']),
      created_at: post['date'],
      link: post['URL'],
      image: post['featured_image']
    }
  end
end
remove_entities(text) click to toggle source
# File lib/zooniverse_social/posts.rb, line 34
def remove_entities(text)
  CGI.unescapeHTML (text || '')
    .gsub('’', '\'')
    .gsub('“', '"')
    .gsub('”', '"')
    .gsub('&', '&')
    .gsub(' ', '')
    .gsub('[…]', '')
    .gsub('<p>', '')
    .gsub('</p>', '')
    .strip
end
update() click to toggle source
# File lib/zooniverse_social/posts.rb, line 14
def update
  blog_data = _update @blog_updater
  daily_data = _update @daily_updater
  @data = (blog_data + daily_data).sort{ |a, b| b[:created_at] <=> a[:created_at] }.take 3
end