chgk_rating 1.0.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -0
  3. data/Gemfile +3 -1
  4. data/LICENSE +1 -1
  5. data/README.md +10 -501
  6. data/Rakefile +4 -2
  7. data/chgk_rating.gemspec +23 -15
  8. data/lib/chgk_rating/attribute_mappings.rb +107 -80
  9. data/lib/chgk_rating/chgk_object.rb +6 -1
  10. data/lib/chgk_rating/client.rb +43 -10
  11. data/lib/chgk_rating/collections/base.rb +20 -15
  12. data/lib/chgk_rating/collections/players.rb +3 -1
  13. data/lib/chgk_rating/collections/ratings/player_ratings.rb +24 -0
  14. data/lib/chgk_rating/collections/{ratings.rb → ratings/team_ratings.rb} +5 -4
  15. data/lib/chgk_rating/collections/recaps.rb +4 -2
  16. data/lib/chgk_rating/collections/teams.rb +3 -1
  17. data/lib/chgk_rating/collections/tournaments/player_tournaments.rb +48 -0
  18. data/lib/chgk_rating/collections/{tournament_players.rb → tournaments/tournament_team_players.rb} +5 -3
  19. data/lib/chgk_rating/collections/{tournament_team_results.rb → tournaments/tournament_team_results.rb} +3 -1
  20. data/lib/chgk_rating/collections/{tournament_teams.rb → tournaments/tournament_teams.rb} +4 -1
  21. data/lib/chgk_rating/collections/{tournaments.rb → tournaments/tournaments.rb} +13 -8
  22. data/lib/chgk_rating/concerns/searching.rb +10 -9
  23. data/lib/chgk_rating/connection.rb +12 -7
  24. data/lib/chgk_rating/error.rb +7 -5
  25. data/lib/chgk_rating/models/base.rb +34 -15
  26. data/lib/chgk_rating/models/player.rb +28 -1
  27. data/lib/chgk_rating/models/rating/player_rating.rb +18 -0
  28. data/lib/chgk_rating/models/{tournament_player.rb → rating/rating.rb} +4 -2
  29. data/lib/chgk_rating/models/{rating.rb → rating/team_rating.rb} +4 -5
  30. data/lib/chgk_rating/models/recap.rb +3 -1
  31. data/lib/chgk_rating/models/team.rb +9 -7
  32. data/lib/chgk_rating/models/tournament/player_tournament.rb +10 -0
  33. data/lib/chgk_rating/models/{tournament.rb → tournament/tournament.rb} +7 -5
  34. data/lib/chgk_rating/models/{tournament_team.rb → tournament/tournament_team.rb} +6 -4
  35. data/lib/chgk_rating/models/tournament/tournament_team_player.rb +10 -0
  36. data/lib/chgk_rating/models/{tournament_team_result.rb → tournament/tournament_team_result.rb} +3 -1
  37. data/lib/chgk_rating/request.rb +10 -9
  38. data/lib/chgk_rating/utils/snakecase.rb +9 -7
  39. data/lib/chgk_rating/utils/transformations.rb +42 -35
  40. data/lib/chgk_rating/version.rb +4 -2
  41. data/lib/chgk_rating.rb +18 -11
  42. data/lib/ext/date.rb +6 -8
  43. data/lib/ext/date_time.rb +4 -2
  44. data/lib/ext/uri.rb +6 -6
  45. metadata +95 -90
  46. data/spec/lib/chgk_rating/client_spec.rb +0 -208
  47. data/spec/lib/chgk_rating/collections/players_spec.rb +0 -45
  48. data/spec/lib/chgk_rating/collections/ratings_spec.rb +0 -25
  49. data/spec/lib/chgk_rating/collections/recaps_spec.rb +0 -21
  50. data/spec/lib/chgk_rating/collections/teams_spec.rb +0 -42
  51. data/spec/lib/chgk_rating/collections/tournament_players_spec.rb +0 -18
  52. data/spec/lib/chgk_rating/collections/tournament_team_results_spec.rb +0 -17
  53. data/spec/lib/chgk_rating/collections/tournament_teams_spec.rb +0 -60
  54. data/spec/lib/chgk_rating/collections/tournaments_spec.rb +0 -62
  55. data/spec/lib/chgk_rating/models/base_spec.rb +0 -34
  56. data/spec/lib/chgk_rating/models/player_spec.rb +0 -35
  57. data/spec/lib/chgk_rating/models/rating_spec.rb +0 -27
  58. data/spec/lib/chgk_rating/models/recap_spec.rb +0 -35
  59. data/spec/lib/chgk_rating/models/team_spec.rb +0 -89
  60. data/spec/lib/chgk_rating/models/tournament_player_spec.rb +0 -21
  61. data/spec/lib/chgk_rating/models/tournament_spec.rb +0 -92
  62. data/spec/lib/chgk_rating/models/tournament_team_result_spec.rb +0 -19
  63. data/spec/lib/chgk_rating/models/tournament_team_spec.rb +0 -36
  64. data/spec/lib/chgk_rating/utils/snakecase_spec.rb +0 -12
  65. data/spec/lib/chgk_rating/utils/transformations_spec.rb +0 -16
  66. data/spec/lib/chgk_rating_spec.rb +0 -5
  67. data/spec/lib/ext/date_spec.rb +0 -7
  68. data/spec/lib/ext/date_time_spec.rb +0 -11
  69. data/spec/lib/ext/uri_spec.rb +0 -7
  70. data/spec/spec_helper.rb +0 -13
  71. data/spec/support/shared_examples.rb +0 -63
  72. data/spec/support/test_client.rb +0 -6
  73. data/spec/support/vcr.rb +0 -11
@@ -1,11 +0,0 @@
1
- RSpec.describe DateTime do
2
- subject { DateTime.new(2018,01,24,16,58,34) }
3
-
4
- specify '#to_s_chgk' do
5
- expect(subject.to_s_chgk).to eq '2018-01-24 16:58:34'
6
- end
7
-
8
- specify '.parse_safely' do
9
- expect(described_class.parse_safely('2017-09-28 12:00:33').to_s).to eq('2017-09-28T12:00:33+00:00')
10
- end
11
- end
@@ -1,7 +0,0 @@
1
- RSpec.describe URI do
2
- specify '.parse_safely' do
3
- expect(described_class.parse_safely('http://example.com/test').to_s).to eq('http://example.com/test')
4
- expect(described_class.parse_safely('gibberish').to_s).to eq 'gibberish'
5
- expect(described_class.parse_safely(nil)).to be_nil
6
- end
7
- end
data/spec/spec_helper.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'simplecov'
2
- SimpleCov.start do
3
- add_filter "spec/"
4
- end
5
-
6
- require 'chgk_rating'
7
-
8
- # Support files
9
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
10
-
11
- RSpec.configure do |config|
12
- config.include TestClient
13
- end
@@ -1,63 +0,0 @@
1
- RSpec.shared_examples_for 'an array' do
2
- it { is_expected.to respond_to :to_a }
3
- end
4
-
5
- RSpec.shared_examples_for 'not a hash' do
6
- it { is_expected.not_to respond_to :to_h }
7
- it { expect( -> {subject.to_h} ).to raise_error(ChgkRating::Error::NotHashType).
8
- with_message('This is not a hash-like collection, so it cannot be converted to an ordinary hash.')}
9
- end
10
-
11
- RSpec.shared_examples_for 'not an array' do
12
- it { is_expected.not_to respond_to :to_a }
13
- it { expect( -> {subject.to_a} ).to raise_error(ChgkRating::Error::NotArrayType).
14
- with_message('This is not an array-like collection, so it cannot be converted to an ordinary array.')}
15
- end
16
-
17
- RSpec.shared_examples_for 'a hash' do
18
- it { is_expected.to respond_to :to_h }
19
- end
20
-
21
- RSpec.shared_examples_for 'tournament team player' do
22
- specify('#id') { expect(player.id).to eq '51249' }
23
- specify('#is_captain') { expect(player.is_captain).to eq true }
24
- specify('#is_base') { expect(player.is_base).to eq true }
25
- specify('#is_foreign') { expect(player.is_foreign).to eq false }
26
- end
27
-
28
- RSpec.shared_examples_for 'tournament team result' do
29
- specify('#result') { expect(team_result.result).to eq [false, false, false, false, true, true,
30
- true, false, false, true, false, false] }
31
- specify('#tour') { expect(team_result.tour).to eq 1 }
32
- end
33
-
34
- RSpec.shared_examples_for 'model without eager loading' do
35
- it 'should raise an EagerLoadingNotSupported error' do
36
- expect( -> { subject.eager_load! }).to raise_error(ChgkRating::Error::EagerLoadingNotSupported).
37
- with_message 'Eager loading is not supported for this resource.'
38
- end
39
- end
40
-
41
- RSpec.shared_examples_for 'model with eager loading' do
42
- it 'should not raise an EagerLoadingNotSupported error' do
43
- expect( -> { subject.eager_load! }).not_to raise_error
44
- end
45
- end
46
-
47
- RSpec.shared_examples_for 'model without lazy support' do
48
- it { is_expected.not_to respond_to(:lazy) }
49
-
50
- it 'should define NO_LAZY_SUPPORT constant' do
51
- expect(subject.class::NO_LAZY_SUPPORT).to eq true
52
- end
53
- end
54
-
55
- RSpec.shared_examples_for 'model with lazy support' do
56
- it { is_expected.to respond_to(:lazy) }
57
-
58
- it 'should not define NO_LAZY_SUPPORT constant' do
59
- klass = subject.class
60
- expect( -> { klass::NO_LAZY_SUPPORT }).to raise_error(NameError).
61
- with_message "uninitialized constant #{klass}::NO_LAZY_SUPPORT"
62
- end
63
- end
@@ -1,6 +0,0 @@
1
- module TestClient
2
- def test_client
3
- return @client if @client
4
- @client = ChgkRating.client
5
- end
6
- end
data/spec/support/vcr.rb DELETED
@@ -1,11 +0,0 @@
1
- require 'vcr'
2
-
3
- VCR.configure do |c|
4
- c.allow_http_connections_when_no_cassette = true
5
- c.ignore_hosts 'codeclimate.com'
6
- c.hook_into :faraday
7
- c.cassette_library_dir = File.join(File.dirname(__FILE__), '..', 'fixtures', 'vcr_cassettes')
8
- c.before_record do |i|
9
- i.response.body.force_encoding("UTF-8")
10
- end
11
- end