Class: Desuraify::Game
- Inherits:
-
Base
- Object
- Base
- Desuraify::Game
show all
- Defined in:
- lib/desuraify/game.rb
Constant Summary
collapse
- ATTRIBUTES =
[
:boxshot, :developers, :engines, :expansion, :genres, :html,
:images_count, :images, :languages, :news, :news_count, :official_page,
:original_price, :page_title, :platforms, :players, :price, :projects,
:publishers, :rank, :rating, :reviews, :summary, :themes, :title,
:updated, :videos, :videos_count, :visits, :watchers
]
Instance Attribute Summary
Attributes inherited from Base
#callback, #error, #hydra, #id
Instance Method Summary
collapse
Methods inherited from Base
#enqueue_update, #parse_headers, #parse_similar, #rss_update, #update
Constructor Details
#initialize(id, options = {}) ⇒ Game
14
15
16
|
# File 'lib/desuraify/game.rb', line 14
def initialize(id, options={})
super(id, options)
end
|
Instance Method Details
#attributes ⇒ Object
40
41
42
|
# File 'lib/desuraify/game.rb', line 40
def attributes
ATTRIBUTES
end
|
#parse(html) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/desuraify/game.rb', line 18
def parse(html)
doc = Nokogiri::HTML(html)
result = (doc.css('h5'))
result.merge!(parse_similar(doc, result[:image_count], result[:video_count]))
prices = doc.css('.price').children.select{ |price| price unless price.text.strip.empty? }.map{ |price| price.text.strip } rescue nil
result[:price] = prices.min unless prices.empty? rescue nil
result[:original_price] = prices.max unless prices.empty? rescue nil
result[:publishers] = result[:developers].map{ |dev| dev.dup } unless result[:publishers] if result[:developers]
result[:html] = html
result
end
|
#to_s ⇒ Object
44
45
46
|
# File 'lib/desuraify/game.rb', line 44
def to_s
"#{@title} for #{@platforms.join(', ')}" rescue "#{self.class}::#{self.object_id}"
end
|
#url ⇒ Object
36
37
38
|
# File 'lib/desuraify/game.rb', line 36
def url
"http://www.desura.com/games/#{@id}"
end
|