squash_matrix 0.1.1 → 0.1.2

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
  SHA1:
3
- metadata.gz: 7c7451a0708b8453d1b01238019f90ce0cb6ba9a
4
- data.tar.gz: c30bf4f51f4d4052088790229cf7becfdf6601b4
3
+ metadata.gz: 7f3c73a85e406636213cedf77e71fbce5d4c76c7
4
+ data.tar.gz: 24f57ca32dcb19c25d4effa0b248279770c42ea5
5
5
  SHA512:
6
- metadata.gz: aa4f3f77ddd2cd63a8d230cc1dd2e3c182073fd6576d942c4b402a9c1a337edafdaf0d7a321169843e4aed972779e2d03748df209d6e67a8a64fdc91dcf4922b
7
- data.tar.gz: f307aa98a263ad7f7a860b641691acb50a76c227c4b3b5c73eb302f5edb3691fa86af768c6e5b4f1a0c7d82a104f5cad456917aa9f23370c308719ad0228fdd8
6
+ metadata.gz: 24be0f0f3c6cbd4df937c61861a0990666a16812ee84bfbd51564db31bbaa28f4daa0cc8b60edf935a85a680e39adc04642298ec6162dd547cc31fcf60692b65
7
+ data.tar.gz: 73dd1e9747fb354bdc84344099c6a87bbe7b23f27222a7768b89b0a72629616fae6b150a9fde531f55438d7b74fa49d84b14fc050ef7b87ce8b8b12599182c4d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- squash_matrix (0.1.0)
4
+ squash_matrix (0.1.1)
5
5
  http-cookie (~> 1.0, >= 1.0.3)
6
6
  nokogiri (~> 1.8, >= 1.8.4)
7
7
  user-agent-randomizer (~> 0.2)
data/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  Ruby SDK for www.squashmatrix.com
4
4
 
5
- The generated client interacts with www.squashmatrix.com by retrieving player and club information and performing search requests.
6
-
7
5
  ## Installation
8
6
 
9
7
  Add this line to your application's Gemfile:
@@ -25,7 +23,23 @@ Or install it yourself as:
25
23
  ```ruby
26
24
  client = SquashMatrix::Client.new # initialize client
27
25
  => SquashMatrix::Client
28
- client.player_info(42547) # retrieve player info for joshua wilkosz #42547
26
+ client.player_info(42547) # retrieve player results for joshua wilkosz #42547
27
+ => {
28
+ :rating=>"250.202",
29
+ :clubs=>[
30
+ {
31
+ :name=>"Melbourne University (2011-2017)",
32
+ :id=>336
33
+ }
34
+ ],
35
+ :teams=>[
36
+ {
37
+ :name=>"Melbourne University (2) (2017)",
38
+ :id=>72831
39
+ }
40
+ ]
41
+ }
42
+ client.player_results(42547) # retrieve player results for joshua wilkosz #42547
29
43
  => [
30
44
  {
31
45
  :event=>"2017 Melbourne Autumn State Open Pennant",
@@ -50,6 +50,22 @@ module SquashMatrix
50
50
  handle_http_request(uri, success_proc)
51
51
  end
52
52
 
53
+ # Returns player results.
54
+ # @note If suppress_errors == false SquashMatrix Errors will be raised upon HttpNotFound, HttpConflict, Timeout::Error, etc...
55
+ # @param id [Fixnum] played id found on squash matrix
56
+ # @return [Array<Hash>] Array of player match results
57
+
58
+ def player_results(id=nil)
59
+ return if id.nil?
60
+ uri = URI::HTTP.build({
61
+ host: SquashMatrix::Constants::SQUASH_MATRIX_URL,
62
+ path: SquashMatrix::Constants::PLAYER_RESULTS_PATH.gsub(':id', id.to_s),
63
+ query: SquashMatrix::Constants::PLAYER_RSULTS_QUERY
64
+ })
65
+ success_proc = lambda {|res| SquashMatrix::NokogiriParser.player_results(res.body)}
66
+ handle_http_request(uri, success_proc)
67
+ end
68
+
53
69
  # Returns player info.
54
70
  # @note If suppress_errors == false SquashMatrix Errors will be raised upon HttpNotFound, HttpConflict, Timeout::Error, etc...
55
71
  # @param id [Fixnum] played id found on squash matrix
@@ -59,8 +75,7 @@ module SquashMatrix
59
75
  return if id.nil?
60
76
  uri = URI::HTTP.build({
61
77
  host: SquashMatrix::Constants::SQUASH_MATRIX_URL,
62
- path: SquashMatrix::Constants::PLAYER_PATH.gsub(':id', id.to_s),
63
- query: SquashMatrix::Constants::PLAYER_RSULTS_QUERY
78
+ path: SquashMatrix::Constants::PLAYER_HOME_PATH.gsub(':id', id.to_s)
64
79
  })
65
80
  success_proc = lambda {|res| SquashMatrix::NokogiriParser.player_info(res.body)}
66
81
  handle_http_request(uri, success_proc)
@@ -3,7 +3,8 @@ module SquashMatrix
3
3
  module Constants
4
4
  SQUASH_MATRIX_URL = "www.squashmatrix.com"
5
5
  LOGIN_PATH = "/Account/LogOn"
6
- PLAYER_PATH = "/Home/PlayerResults/:id"
6
+ PLAYER_RESULTS_PATH = "/Home/PlayerResults/:id"
7
+ PLAYER_HOME_PATH = "/Home/Player/:id"
7
8
  CLUB_PATH = "/Home/Club/:id"
8
9
  SEARCH_PATH = "/Home/Search"
9
10
  PLAYER_RSULTS_QUERY = "max=0&X-Requested-With=XMLHttpRequest"
@@ -4,7 +4,7 @@ require_relative 'constants'
4
4
  module SquashMatrix
5
5
  class NokogiriParser
6
6
  class << self
7
- def player_info(body)
7
+ def player_rsults(body)
8
8
  Nokogiri::HTML(body)&.xpath('//table[@id="results"]//tbody//tr')&.map do |r|
9
9
  date = r.at_css('td[1]')&.content
10
10
  opponent_id = r.at_css('td[10]//a')&.attribute('href')&.content
@@ -28,6 +28,32 @@ module SquashMatrix
28
28
  end.compact
29
29
  end
30
30
 
31
+ def player_info(body)
32
+ rows = Nokogiri::HTML(body)&.xpath('//table[@id="profile"]//tbody//tr')
33
+ rating = rows[1]&.css('td[2]')&.text
34
+ clubs = rows[2]&.css('td[2]')&.css('ul//li')&.map do |c|
35
+ id = c&.css('a')&.attribute('href')&.text
36
+ rtn = {
37
+ name: c&.text
38
+ }
39
+ rtn[:id] = SquashMatrix::Constants::CLUB_FROM_PATH_REGEX.match(id)[1].to_i if id
40
+ rtn
41
+ end
42
+ teams = rows[3]&.css('td[2]')&.css('ul//li')&.map do |c|
43
+ id = c&.css('a')&.attribute('href')&.text
44
+ rtn = {
45
+ name: c&.text
46
+ }
47
+ rtn[:id] = SquashMatrix::Constants::TEAM_FROM_PATH_REGEX.match(id)[1].to_i if id
48
+ rtn
49
+ end
50
+ {
51
+ rating: rating,
52
+ clubs: clubs,
53
+ teams: teams
54
+ }
55
+ end
56
+
31
57
  def club_info(body)
32
58
  html = Nokogiri::HTML(body)
33
59
  name = SquashMatrix::Constants::CLUB_FROM_TITLE_REGEX.match(html.css('title').text)[1]
@@ -1,3 +1,3 @@
1
1
  module SquashMatrix
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["joshua@wilkosz.com.au"]
11
11
 
12
12
  spec.summary = %q{Ruby SDK for www.squashmatrix.com}
13
- spec.description = %q{The generated client interacts with www.squashmatrix.com by retrieving player and club information and performing search requests}
13
+ spec.description = %q{Ruby SDK for www.squashmatrix.com}
14
14
  spec.homepage = "https://github.com/wilkosz/squash_matrix"
15
15
  spec.license = "MIT"
16
16
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: squash_matrix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Wilkosz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-15 00:00:00.000000000 Z
11
+ date: 2018-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -120,8 +120,7 @@ dependencies:
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
122
  version: 1.8.4
123
- description: The generated client interacts with www.squashmatrix.com by retrieving
124
- player and club information and performing search requests
123
+ description: Ruby SDK for www.squashmatrix.com
125
124
  email:
126
125
  - joshua@wilkosz.com.au
127
126
  executables: []