paladins 0.1.2 → 0.1.3

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
- SHA256:
3
- metadata.gz: a1459a4fe6fcf781c004bb9842aab968dc537ed38a74cca643ef78d40ab7cb82
4
- data.tar.gz: 53a2c401373e5ecf077a3d9942deb66768050d7af8a7733120f6957c07d23155
2
+ SHA1:
3
+ metadata.gz: 8fce42ac5f9e2ee6cd3df1ba4c818d86167645e6
4
+ data.tar.gz: 732786fc042df2f8e53481c40f614cc87675c9d9
5
5
  SHA512:
6
- metadata.gz: c740c94a9317523bdf299fff8f9d1c462b3737c5408dbbc743b1269c4d1b32700b217cb605f3955f36f5663cbccd7af0dd92c371e71a476ff1348f8c8cc1bc2a
7
- data.tar.gz: ef16c78222bb039fa977cbb3afebadab36165a53d2fec49a6df8ffc00505a69b3c22eb5f137ef86cba04725d9e9a55e6137d3fd5be87e8eb4df7c0187e3e087f
6
+ metadata.gz: af44a0d2cc566e9ea760d4a67b6c21c951e761f43d8ae1dc2b683549a743cd3c7849f41d02eba432720eb0b4e5ed9e8f9e825b74ab95ba4368b4baea4bda3561
7
+ data.tar.gz: 5e67c65fa2bbc56abf887ee9f6a7394f01a7e4b246c3262fe191ee66ffd1803349daad09a54931ec29a2c177f7bb777ec3de67493823e0d9cf0c88d4c084cbe9
@@ -1,3 +1,9 @@
1
+ ## 0.1.3 (alpha)
2
+
3
+ - added support for method Paladins.getplayer(player_name)
4
+ - clients now check for expired or nil sessions and create new session after 15 minutes
5
+ - gem is now thread safe (tests missing, so I'm not really sure about it :)
6
+
1
7
  ## 0.1.2 (alpha)
2
8
 
3
9
  - added support for method Paladins.ping
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- paladins (0.1.1)
4
+ paladins (0.1.2)
5
5
  faraday
6
6
  json
7
7
 
@@ -23,16 +23,25 @@ module Paladins
23
23
 
24
24
  def self.gethirezserverstatus
25
25
  client = Paladins::Client.new(configuration)
26
+ client.extend(MonitorMixin)
26
27
  client.get_hirez_server_status
27
28
  end
28
29
 
29
30
  def self.ping
30
31
  client = Paladins::Client.new(configuration)
32
+ client.extend(MonitorMixin)
31
33
  client.ping
32
34
  end
33
35
 
34
36
  def self.getchampionranks(player_name)
35
37
  client = Paladins::Client.new(configuration)
38
+ client.extend(MonitorMixin)
36
39
  client.get_champion_ranks(player_name)
37
40
  end
41
+
42
+ def self.getplayer(player_name)
43
+ client = Paladins::Client.new(configuration)
44
+ client.extend(MonitorMixin)
45
+ client.get_player(player_name)
46
+ end
38
47
  end
@@ -1,10 +1,13 @@
1
1
  require 'faraday'
2
2
  require 'json'
3
3
  require 'digest'
4
+ require 'monitor'
4
5
 
5
6
  module Paladins
6
7
  class Client
7
- @@session_id = nil
8
+ # include MonitorMixin
9
+
10
+ @@session = { id: nil, updated_at: nil }
8
11
 
9
12
  attr_accessor :api_url, :dev_id, :auth_key, :response_format
10
13
 
@@ -23,25 +26,30 @@ module Paladins
23
26
  def create_session
24
27
  # /createsession[ResponseFormat]/{developerId}/{signature}/{timestamp}
25
28
  response = Faraday.get(url(method: 'createsession', session: false))
26
- @@session_id = JSON.parse(response.body).dig('session_id')
27
-
28
- @@session_id
29
+ @@session[:updated_at] = Time.now
30
+ @@session[:id] = JSON.parse(response.body).dig('session_id')
29
31
  end
30
32
 
31
33
  def test_session
32
34
  # /testsession[ResponseFormat]/{developerId}/{signature}/{session}/{timestamp}
33
35
  time_now = Paladins::Utils.time_now
34
- response = Faraday.get("#{@api_url}/testsessionJson/#{@dev_id}/#{get_signature('testsession', time_now)}/#{@@session_id}/#{time_now}")
36
+ response = Faraday.get("#{@api_url}/testsessionJson/#{@dev_id}/#{get_signature('testsession', time_now)}/#{@@session[:id]}/#{time_now}")
35
37
  attributes = JSON.parse(response.body)
36
38
  end
37
39
 
38
40
  def session_expired?
39
- true
40
- ## TODO: return TRUE only when #test_session returns something saying session is expired
41
+ self.synchronize do
42
+ if Time.now - @@session[:updated_at] > 60*12
43
+ @@session[:updated_at] = Time.now
44
+ true
45
+ else
46
+ false
47
+ end
48
+ end
41
49
  end
42
50
 
43
51
  def get_or_create_session
44
- create_session if ( @@session_id.nil? || session_expired? )
52
+ ( @@session[:id].nil? || session_expired? ) ? create_session : @@session[:id]
45
53
  end
46
54
 
47
55
  def ping
@@ -62,6 +70,12 @@ module Paladins
62
70
  attributes = JSON.parse(response.body)
63
71
  end
64
72
 
73
+ def get_player(player_name)
74
+ # /getplayer[ResponseFormat]/{developerId}/{signature}/{session}/{timestamp}/{player}
75
+ response = Faraday.get(url(method: 'getplayer', session: true) + "/#{player_name}")
76
+ attributes = JSON.parse(response.body)
77
+ end
78
+
65
79
  def url(method:, session: false)
66
80
  time_now = Paladins::Utils.time_now
67
81
  url = "#{@api_url}/#{method}#{@response_format}/#{@dev_id}/#{get_signature(method, time_now)}"
@@ -1,3 +1,3 @@
1
1
  module Paladins
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paladins
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Davide Ghezzi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-30 00:00:00.000000000 Z
11
+ date: 2018-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -138,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
138
  version: '0'
139
139
  requirements: []
140
140
  rubyforge_project:
141
- rubygems_version: 2.7.6
141
+ rubygems_version: 2.6.14
142
142
  signing_key:
143
143
  specification_version: 4
144
144
  summary: Ruby wrapper for Paladins API.