ehbrs_ruby_utils 0.25.0 → 0.25.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8bf7c3e4429f41191524b18b9d208696ff51c8758af361ed718e3234ebcdc74a
4
- data.tar.gz: 5f15d68339789d7a1d3a101763f3509d425e484b185b93aba23675962abcd99e
3
+ metadata.gz: 3c7b8c03f444eeecd6bc0cf3294b7fdb87d853e794d882a33075fc144d6e0643
4
+ data.tar.gz: 6d9ea47d713deb5f42930df49bf59beaa5d7feeadcaf1f317c2f72265e5645ac
5
5
  SHA512:
6
- metadata.gz: 43a6c2d7ef864aad1c3a0876e6a1d2a8ea7a710c33d93a424f10a3f995b2a470c10750bc553a954cb3fc2168e6aca08b41b9abd6497d07a33db97c99f95a0676
7
- data.tar.gz: 6b0f6f13cdca5b13938068eb9d9c2d2def16e2e7f0f79c74eae5c6c9c5d8a827303258db7b2b1c183db1cdba0e947f25aaf9a8f2a705d3ab96ed70162e95b57a
6
+ metadata.gz: 337fc2b2871c7546da3c36e7362463541466f77f94a32ac7813c68692dce1c0e0883d6dd765bbc1b0226a502ed0a9049f6b49debbf920f68d370e2b478ead4b5
7
+ data.tar.gz: db9aefd67166403008410368a68b5bde75777b3d819b7e0c829fb0b83a687af08f7b3e320ce2d840a0cfd38abaca8fbdf036adc785c3de4fbe8ae9451e5a4241
@@ -1,26 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ehbrs_ruby_utils/bga/parsers/game_stats'
4
- require 'ehbrs_ruby_utils/bga/urls'
5
3
  require 'eac_ruby_utils/core_ext'
6
4
 
7
5
  module EhbrsRubyUtils
8
6
  module Bga
9
7
  class Session < ::SimpleDelegator
10
8
  class Player
11
- include ::EhbrsRubyUtils::Bga::Urls
12
- GAME_HISTORY_XPATH = '//h3[text() = "Games history"]'
13
9
  common_constructor :session, :player_id
14
10
 
15
11
  def tables
16
- session.navigate.to game_stats_url
17
- session.wait_for_element(xpath: GAME_HISTORY_XPATH)
18
- ::EhbrsRubyUtils::Bga::Parsers::GameStats.from_content(session.current_source).data
19
- end
20
-
21
- # @return [Addressable::URI]
22
- def game_stats_url
23
- session.url("/gamestats?player=#{player_id}")
12
+ session.player_tables_on_game_stats(player_id)
24
13
  end
25
14
  end
26
15
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ehbrs_ruby_utils/bga/parsers/table'
4
- require 'ehbrs_ruby_utils/bga/table'
3
+ require 'ehbrs_ruby_utils/bga/parsers/game_stats'
5
4
  require 'ehbrs_ruby_utils/bga/urls'
6
5
  require 'eac_ruby_utils/core_ext'
7
6
 
@@ -56,7 +55,7 @@ module EhbrsRubyUtils
56
55
  def list_end_reached?
57
56
  previous_count = current_data.count
58
57
  result = nil
59
- session.wait_for_click(id: SEE_MORE_BUTTON_ID)
58
+ session.on_skip_trophies { session.wait_for_click(id: SEE_MORE_BUTTON_ID) }
60
59
  session.wait.until do
61
60
  result = list_end_reached_non_waiting(previous_count)
62
61
  !result.nil?
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EhbrsRubyUtils
6
+ module Bga
7
+ class Session < ::SimpleDelegator
8
+ module SkipTrophies
9
+ TROPHY_SKIP_BUTTON_XPATH = '//*[@id = "splashedNotifications_overlay"]' \
10
+ '//*[starts-with(@id, "continue_btn_")]'
11
+ TROPHY_SKIP_TIMEOUT = 5
12
+
13
+ # @param &block [Proc]
14
+ # @return [Selenium::WebDriver::Error::TimeoutError, nil]
15
+ def on_rescue_timeout(&block)
16
+ block.call
17
+ nil
18
+ rescue ::Selenium::WebDriver::Error::TimeoutError => e
19
+ e
20
+ end
21
+
22
+ def on_skip_trophies(&block)
23
+ error = on_rescue_timeout(&block)
24
+ return unless error
25
+ raise error unless skip_trophy_overlay?
26
+
27
+ skip_trophies
28
+ end
29
+
30
+ def skip_trophies
31
+ loop do
32
+ wait_for_click({ xpath: TROPHY_SKIP_BUTTON_XPATH }, TROPHY_SKIP_TIMEOUT)
33
+ rescue ::Selenium::WebDriver::Error::TimeoutError
34
+ break
35
+ end
36
+ end
37
+
38
+ # @return [Boolean]
39
+ def skip_trophy_overlay?
40
+ find_element(xpath: TROPHY_SKIP_BUTTON_XPATH).present?
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -13,6 +13,6 @@ module EhbrsRubyUtils
13
13
  "*#{option.label}:* #{option.value}"
14
14
  end
15
15
  end
16
- end
16
+ end
17
17
  end
18
18
  end
@@ -25,6 +25,6 @@ module EhbrsRubyUtils
25
25
  "⭐ #{player.score}"
26
26
  end
27
27
  end
28
- end
28
+ end
29
29
  end
30
30
  end
@@ -61,6 +61,6 @@ module EhbrsRubyUtils
61
61
  end
62
62
 
63
63
  require_sub __FILE__, require_mode: :kernel
64
- end
64
+ end
65
65
  end
66
66
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EhbrsRubyUtils
4
- VERSION = '0.25.0'
4
+ VERSION = '0.25.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ehbrs_ruby_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.25.0
4
+ version: 0.25.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo H. Bogoni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-26 00:00:00.000000000 Z
11
+ date: 2023-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha
@@ -50,6 +50,20 @@ dependencies:
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
52
  version: 0.19.1
53
+ - !ruby/object:Gem::Dependency
54
+ name: aranha-selenium
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.6'
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '0.6'
53
67
  - !ruby/object:Gem::Dependency
54
68
  name: avm
55
69
  requirement: !ruby/object:Gem::Requirement
@@ -212,6 +226,7 @@ files:
212
226
  - lib/ehbrs_ruby_utils/bga/session/login.rb
213
227
  - lib/ehbrs_ruby_utils/bga/session/player.rb
214
228
  - lib/ehbrs_ruby_utils/bga/session/player_tables_on_game_stats.rb
229
+ - lib/ehbrs_ruby_utils/bga/session/skip_trophies.rb
215
230
  - lib/ehbrs_ruby_utils/bga/session/table.rb
216
231
  - lib/ehbrs_ruby_utils/bga/table.rb
217
232
  - lib/ehbrs_ruby_utils/bga/table/option.rb