Class: EhbrsRubyUtils::Bga::Parsers::Table::EndedPlayers
- Inherits:
-
Aranha::Parsers::Html::ItemList
- Object
- Aranha::Parsers::Html::ItemList
- EhbrsRubyUtils::Bga::Parsers::Table::EndedPlayers
- Defined in:
- lib/ehbrs_ruby_utils/bga/parsers/table/ended_players.rb
Constant Summary collapse
- ITEMS_XPATH =
'//div[starts-with(@id, "score_entry_")]'- RANK_VALUES =
{ vencedor: 1, perdedor: 2 }.freeze
Instance Method Summary collapse
- #item_data(data) ⇒ Object
- #items_xpath ⇒ Object
- #process_elo_increment(expression) ⇒ Integer?
- #process_rank(source) ⇒ Integer
Instance Method Details
#item_data(data) ⇒ Object
28 29 30 31 32 |
# File 'lib/ehbrs_ruby_utils/bga/parsers/table/ended_players.rb', line 28 def item_data(data) %i[elo_increment rank].inject(data) do |a, e| a.merge(e => send("process_#{e}", data.fetch(e))) end end |
#items_xpath ⇒ Object
24 25 26 |
# File 'lib/ehbrs_ruby_utils/bga/parsers/table/ended_players.rb', line 24 def items_xpath ITEMS_XPATH end |
#process_elo_increment(expression) ⇒ Integer?
35 36 37 38 39 |
# File 'lib/ehbrs_ruby_utils/bga/parsers/table/ended_players.rb', line 35 def process_elo_increment(expression) return nil if expression.blank? ::Dentaku::Calculator.new.evaluate(expression.gsub(/\A\+/, '')).to_i end |
#process_rank(source) ⇒ Integer
43 44 45 |
# File 'lib/ehbrs_ruby_utils/bga/parsers/table/ended_players.rb', line 43 def process_rank(source) RANK_VALUES[source.downcase.to_sym] || source.to_i end |