class RFSP::Fl

Constants

RSS_URI

Public Class Methods

feed() click to toggle source
# File lib/rfsp/fl.rb, line 36
def feed
  @@feed ||= update
end
parse_rss() click to toggle source
# File lib/rfsp/fl.rb, line 9
def parse_rss
  projects = []
  feed.entries.each do |e|
    p = OpenStruct.new
    p.uri = e.url
    p.id = e.url.match(/(\d+)/)[1].to_i
    p.published = e.published
    p.body = e.summary
    p.title = e.title
    p.site = 'fl'
    p.category = e.categories.map{|c| c.gsub(/<\/?.+?>/, '')}.join ', '
    budget_regexp = / \(Бюджет: (\d+) +(руб|\$)\.?\)\Z/
    if m = p.title.match(budget_regexp)
      budget = OpenStruct.new
      budget.origin = m[0]
      budget.origin[' ('] = ''
      budget.origin[')'] = ''
      budget.amount = m[1].to_i
      budget.currency = m[2] == '$' ? 'usd' : m[2] == 'руб' ? 'rur' : nil
      p.budget = budget
      p.title.sub! budget_regexp, ''
    end
    projects << p
  end
  projects
end
update() click to toggle source
# File lib/rfsp/fl.rb, line 40
def update
  @@feed = RFSP::Client.feed RSS_URI
end