Skip to content

Commit

Permalink
DRY up those RSS feeds
Browse files Browse the repository at this point in the history
  • Loading branch information
eee-c committed Jul 4, 2009
1 parent 2d66d09 commit c76dbb8
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 42 deletions.
47 changes: 5 additions & 42 deletions eee.rb
Expand Up @@ -39,55 +39,18 @@
get '/main.rss' do
content_type "application/rss+xml"

url = "#{@@db}/_design/meals/_view/by_date?limit=10&descending=true"
data = RestClient.get url
@meal_view = JSON.parse(data)['rows']

rss = RSS::Maker.make("2.0") do |maker|
maker.channel.title = "EEE Cooks: Meals"
maker.channel.link = ROOT_URL
maker.channel.description = "Meals from a Family Cookbook"
@meal_view.each do |couch_rec|
data = RestClient.get "#{@@db}/#{couch_rec['key']}"
meal = JSON.parse(data)
date = Date.parse(meal['date'])
maker.items.new_item do |item|
item.link = ROOT_URL + date.strftime("/meals/%Y/%m/%d")
item.title = meal['title']
item.pubDate = Time.parse(meal['date'])
item.description = meal['summary']
end
end
rss_for_date_view("meals") do |rss_item, meal|
date = Date.parse(meal['date'])
rss_item.link = ROOT_URL + date.strftime("/meals/%Y/%m/%d")
end

rss.to_s
end

get '/recipes.rss' do
content_type "application/rss+xml"

url = "#{@@db}/_design/recipes/_view/by_date?limit=10&descending=true"
data = RestClient.get url
@recipe_view = JSON.parse(data)['rows']

rss = RSS::Maker.make("2.0") do |maker|
maker.channel.title = "EEE Cooks: Recipes"
maker.channel.link = ROOT_URL
maker.channel.description = "Recipes from a Family Cookbook"

@recipe_view.each do |couch_rec|
data = RestClient.get "#{@@db}/#{couch_rec['value'][0]}"
recipe = JSON.parse(data)
maker.items.new_item do |item|
item.link = ROOT_URL + "/recipes/recipe['id']"
item.title = recipe['title']
item.pubDate = Time.parse(recipe['date'])
item.description = recipe['summary']
end
end
rss_for_date_view("recipes") do |rss_item, recipe|
rss_item.link = ROOT_URL + "/recipes/#{recipe['id']}"
end

rss.to_s
end

get %r{/meals/(\d+)/(\d+)/(\d+)} do |year, month, day|
Expand Down
26 changes: 26 additions & 0 deletions helpers.rb
Expand Up @@ -194,5 +194,31 @@ def breadcrumbs(date, context=nil)

crumbs.join(" > ")
end

def rss_for_date_view(feed)
url = "#{_db}/_design/#{feed}/_view/by_date?limit=10&descending=true"
data = RestClient.get url
view = JSON.parse(data)['rows']

rss = RSS::Maker.make("2.0") do |maker|
maker.channel.title = "EEE Cooks: #{feed.capitalize}"
maker.channel.link = ROOT_URL
maker.channel.description = "#{feed.capitalize} from a Family Cookbook"

view.each do |couch_rec|
data = RestClient.get "#{_db}/#{couch_rec['value'][0]}"
record = JSON.parse(data)
maker.items.new_item do |item|
item.title = record['title']
item.pubDate = Time.parse(record['date'])
item.description = record['summary']

yield item, record
end
end
end

rss.to_s
end
end
end

0 comments on commit c76dbb8

Please sign in to comment.