Class: Razsell::Results

Inherits:
Object
  • Object
show all
Defined in:
lib/results.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(feed) ⇒ Results

Returns a new instance of Results.



7
8
9
10
11
12
13
14
# File 'lib/results.rb', line 7

def initialize feed
  @start_index = 0
  @items_per_page = 0
  @result_count = 0
  @items = []
  
  populate_items feed
end

Instance Attribute Details

#itemsObject

Returns the value of attribute items.



5
6
7
# File 'lib/results.rb', line 5

def items
  @items
end

#items_per_pageObject

Returns the value of attribute items_per_page.



5
6
7
# File 'lib/results.rb', line 5

def items_per_page
  @items_per_page
end

#result_countObject

Returns the value of attribute result_count.



5
6
7
# File 'lib/results.rb', line 5

def result_count
  @result_count
end

Instance Method Details

#add(feed) ⇒ Object



16
17
18
# File 'lib/results.rb', line 16

def add feed
  populate_items feed
end

#build_hash_from(item) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/results.rb', line 24

def build_hash_from item
  item_hash = {}
  item_hash[:title] = strip_cdata(item.at("title").inner_html)
  item_hash[:guid] = item.at("guid").inner_html
  item_hash[:pub_date] = DateTime.parse(item.at("pubDate").inner_html)
  item_hash[:link] = item.at("link").inner_html
  item_hash[:author] = item.at("author").inner_html
  item_hash[:description] = strip_cdata(item.at("media:description").inner_html)
  item_hash[:thumbnail_url] = item.at("media:thumbnail")['url']
  item_hash[:content_url] = item.at("media:content")['url']
  item_hash[:keywords] = split_keywords(item.at("media:keywords").inner_html)
  item_hash[:rating] = item.at("media:rating").inner_html
  item_hash
end

#has_more_pages?Boolean

Returns:

  • (Boolean)


49
50
51
52
# File 'lib/results.rb', line 49

def has_more_pages?
  return false unless (@start_index && @items_per_page && @result_count)
  (@start_index + @items_per_page) < @result_count
end

#item_countObject



20
21
22
# File 'lib/results.rb', line 20

def item_count
  @items.length
end

#split_keywords(words) ⇒ Object



39
40
41
42
43
# File 'lib/results.rb', line 39

def split_keywords words
  return [] if (!words || words == "")

  words.split(",").map { |s| s.strip }
end

#strip_cdata(str) ⇒ Object



45
46
47
# File 'lib/results.rb', line 45

def strip_cdata str
  str[9..-4]
end