class HackerNew
Constants
- JSON_FORMAT
- URL
Public Class Methods
new_stories(num = 5)
click to toggle source
# File lib/hack3rnews.rb, line 10 def new_stories(num = 5) stories('newstories', num) end
story_comments(story_id)
click to toggle source
# File lib/hack3rnews.rb, line 23 def story_comments(story_id) story = item('item', story_id) items(story['kids'] || []) end
top_job_stories(num = 5)
click to toggle source
# File lib/hack3rnews.rb, line 28 def top_job_stories(num = 5) top_items(stories('jobstories'), 'score').last(num) end
top_stories(num = 5)
click to toggle source
# File lib/hack3rnews.rb, line 14 def top_stories(num = 5) stories('topstories', num) end
user_stories(user_id, num = 5)
click to toggle source
# File lib/hack3rnews.rb, line 18 def user_stories(user_id, num = 5) user = item('user', user_id) items(user['submitted'].first(num) || []) end
Private Class Methods
item(type, item_id)
click to toggle source
# File lib/hack3rnews.rb, line 47 def item(type, item_id) request.item(url(type, item_id)) end
items(item_ids)
click to toggle source
# File lib/hack3rnews.rb, line 43 def items(item_ids) item_ids.map {|item_id| item('item', item_id)} end
request()
click to toggle source
# File lib/hack3rnews.rb, line 56 def request @@request end
stories(type, num = nil)
click to toggle source
# File lib/hack3rnews.rb, line 33 def stories(type, num = nil) story_ids = request.item(url(type)) story_ids = story_ids.first(num) if num items(story_ids) end
top_items(items, field)
click to toggle source
# File lib/hack3rnews.rb, line 39 def top_items(items, field) items.sort_by! { |hsh| hsh[field] }.reverse end
url(type, id = nil)
click to toggle source
# File lib/hack3rnews.rb, line 51 def url(type, id = nil) return URL + type + '/' + id.to_s + JSON_FORMAT if id URL + type + JSON_FORMAT end