clash_of_clans_api 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/lib/clash_of_clans_api/models/achievement.rb +7 -7
  3. data/lib/clash_of_clans_api/models/base.rb +5 -9
  4. data/lib/clash_of_clans_api/models/builder_base_league.rb +2 -2
  5. data/lib/clash_of_clans_api/models/capital_league.rb +2 -2
  6. data/lib/clash_of_clans_api/models/chat_language.rb +3 -3
  7. data/lib/clash_of_clans_api/models/clan.rb +2 -2
  8. data/lib/clash_of_clans_api/models/clan_capital.rb +2 -2
  9. data/lib/clash_of_clans_api/models/clan_capital_district.rb +3 -3
  10. data/lib/clash_of_clans_api/models/clan_location.rb +3 -3
  11. data/lib/clash_of_clans_api/models/clan_war_league_clan.rb +5 -5
  12. data/lib/clash_of_clans_api/models/clan_war_league_clan_member.rb +3 -3
  13. data/lib/clash_of_clans_api/models/clan_war_league_group.rb +4 -4
  14. data/lib/clash_of_clans_api/models/clan_war_league_round.rb +1 -1
  15. data/lib/clash_of_clans_api/models/hero.rb +4 -4
  16. data/lib/clash_of_clans_api/models/hero_equipment.rb +4 -4
  17. data/lib/clash_of_clans_api/models/label.rb +3 -3
  18. data/lib/clash_of_clans_api/models/league.rb +3 -3
  19. data/lib/clash_of_clans_api/models/legend_season.rb +3 -3
  20. data/lib/clash_of_clans_api/models/legend_statistics.rb +4 -4
  21. data/lib/clash_of_clans_api/models/paginated_response.rb +2 -2
  22. data/lib/clash_of_clans_api/models/pagination_paging.rb +1 -1
  23. data/lib/clash_of_clans_api/models/player.rb +2 -2
  24. data/lib/clash_of_clans_api/models/player_house.rb +1 -1
  25. data/lib/clash_of_clans_api/models/player_house_element.rb +2 -2
  26. data/lib/clash_of_clans_api/models/spell.rb +4 -4
  27. data/lib/clash_of_clans_api/models/token.rb +5 -5
  28. data/lib/clash_of_clans_api/models/troop.rb +5 -5
  29. data/lib/clash_of_clans_api/models/war.rb +2 -2
  30. data/lib/clash_of_clans_api/models/war_attack.rb +6 -6
  31. data/lib/clash_of_clans_api/models/war_clan_member.rb +2 -2
  32. data/lib/clash_of_clans_api/models/war_league.rb +2 -2
  33. data/lib/clash_of_clans_api/token_client.rb +0 -2
  34. data/lib/clash_of_clans_api/version.rb +1 -1
  35. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fad47340e0073d7662ff5a74424a1bf8e469271914da83d69ea0abfbb7650607
4
- data.tar.gz: 6dfbe8e46d76a66d6fb4a62ee7fb998bab8436cf8a253de13a16c9d263aeb398
3
+ metadata.gz: 3ec05b82907166705220928be33463848e536b890e920eb023aff8b13a81ee4f
4
+ data.tar.gz: c9f2eeeef102ec3804aa35783e9add1d6cca3c813712497e903187c0e011f6d4
5
5
  SHA512:
6
- metadata.gz: e1deb56184c6517f8443924d54043e8e8bfb6e8956d0c8f82ead906fc46a67ef0117e762ac154928f8cde886ee919966eab306b2d78d2c80a6c444f01fc1ae74
7
- data.tar.gz: 33cac4957a5c6bfe30c9eb55deddcbc64027bc9091c36fe53ac095e78abd8b613f6f1ceb4cebd9301e9c7c2f0cd14b9cc24425fc2161b126ca79dc5c68130bed
6
+ metadata.gz: 915ed6c0f3a3ea43cf479ab834eccf524faef717682bcde0db1d3cc57c68989c245a18390184bbd19df950dde1b2ac4deb4da1fbbdbac193571ee24ec52a90d8
7
+ data.tar.gz: 56ab2cdd27e61a00a98f57c15a5bce647dd5e7136a80954051d1735df9929b2decd668eb6c819e4eba4141c5b49548a06da70e4ad6da0238cc61280b2185634f
@@ -3,13 +3,13 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class Achievement < Base
6
- property :name, 'name', required: true
7
- property :stars, 'stars', required: true
8
- property :value, 'value', required: true
9
- property :target, 'target', required: true
10
- property :info, 'info', required: true
11
- property :completion_info, 'completionInfo', required: true
12
- property :village, 'village', required: true
6
+ property :name, 'name', expected: true
7
+ property :stars, 'stars', expected: true
8
+ property :value, 'value', expected: true
9
+ property :target, 'target', expected: true
10
+ property :info, 'info', expected: true
11
+ property :completion_info, 'completionInfo', expected: true
12
+ property :village, 'village', expected: true
13
13
  end
14
14
  end
15
15
  end
@@ -9,8 +9,6 @@ module ClashOfClansApi
9
9
  def initialize(hash, client)
10
10
  @hash = hash
11
11
  @client = client
12
-
13
- validate!
14
12
  end
15
13
 
16
14
  def to_h
@@ -26,7 +24,7 @@ module ClashOfClansApi
26
24
  @registered_properties ||= {}
27
25
  end
28
26
 
29
- def property(method_name, key, type: nil, required: false, default: nil)
27
+ def property(method_name, key, type: nil, expected: false, default: nil)
30
28
  define_method(method_name) do
31
29
  deduced_type =
32
30
  case type
@@ -63,7 +61,7 @@ module ClashOfClansApi
63
61
 
64
62
  registered_properties[key] = {
65
63
  method_name: method_name,
66
- required: required,
64
+ expected: expected,
67
65
  default: default,
68
66
  type: type,
69
67
  }
@@ -84,14 +82,12 @@ module ClashOfClansApi
84
82
  @property_cache[method_name]
85
83
  end
86
84
 
87
- def validate!
85
+ def expected_properties?
88
86
  missing = self.class.registered_properties.reject do |field_name, properties|
89
- !properties[:required] || @hash.key?(field_name)
87
+ !properties[:expected] || @hash.key?(field_name)
90
88
  end
91
89
 
92
- if missing.any?
93
- raise InvalidDataError, "The following keys are required, but missing from the model data: #{missing.keys.map(&:inspect).join(', ')}"
94
- end
90
+ missing.empty?
95
91
  end
96
92
  end
97
93
  end
@@ -3,8 +3,8 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class BuilderBaseLeague < Base
6
- property :id, 'id', required: true
7
- property :name, 'name', required: true
6
+ property :id, 'id', expected: true
7
+ property :name, 'name', expected: true
8
8
  end
9
9
  end
10
10
  end
@@ -3,8 +3,8 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class CapitalLeague < Base
6
- property :id, 'id', required: true
7
- property :name, 'name', required: true
6
+ property :id, 'id', expected: true
7
+ property :name, 'name', expected: true
8
8
  end
9
9
  end
10
10
  end
@@ -3,9 +3,9 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class ChatLanguage < Base
6
- property :id, 'id', required: true
7
- property :name, 'name', required: true
8
- property :language_code, 'languageCode', required: true
6
+ property :id, 'id', expected: true
7
+ property :name, 'name', expected: true
8
+ property :language_code, 'languageCode', expected: true
9
9
  end
10
10
  end
11
11
  end
@@ -10,8 +10,8 @@ require_relative 'war_league'
10
10
  module ClashOfClansApi
11
11
  module Models
12
12
  class Clan < Base
13
- property :tag, 'tag', required: true
14
- property :name, 'name', required: true
13
+ property :tag, 'tag', expected: true
14
+ property :name, 'name', expected: true
15
15
  property :type, 'type'
16
16
  property :description, 'description'
17
17
  property :location, 'location', type: ClanLocation
@@ -4,8 +4,8 @@ require_relative 'clan_capital_district'
4
4
  module ClashOfClansApi
5
5
  module Models
6
6
  class ClanCapital < Base
7
- property :capital_hall_level, 'capitalHallLevel', required: true
8
- property :districts, 'districts', required: true, type: ClanCapitalDistrict
7
+ property :capital_hall_level, 'capitalHallLevel', expected: true
8
+ property :districts, 'districts', expected: true, type: ClanCapitalDistrict
9
9
  end
10
10
  end
11
11
  end
@@ -3,9 +3,9 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class ClanCapitalDistrict < Base
6
- property :id, 'id', required: true
7
- property :name, 'name', required: true
8
- property :district_hall_level, 'districtHallLevel', required: true
6
+ property :id, 'id', expected: true
7
+ property :name, 'name', expected: true
8
+ property :district_hall_level, 'districtHallLevel', expected: true
9
9
  end
10
10
  end
11
11
  end
@@ -3,9 +3,9 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class ClanLocation < Base
6
- property :id, 'id', required: true
7
- property :name, 'name', required: true
8
- property :country?, 'isCountry', required: true
6
+ property :id, 'id', expected: true
7
+ property :name, 'name', expected: true
8
+ property :country?, 'isCountry', expected: true
9
9
  end
10
10
  end
11
11
  end
@@ -5,11 +5,11 @@ require_relative 'icon_set'
5
5
  module ClashOfClansApi
6
6
  module Models
7
7
  class ClanWarLeagueClan < Base
8
- property :tag, 'tag', required: true
9
- property :name, 'name', required: true
10
- property :clan_level, 'clanLevel', required: true
11
- property :badge_urls, 'badgeUrls', required: true, type: IconSet
12
- property :members, 'members', required: true, type: ClanWarLeagueClanMember
8
+ property :tag, 'tag', expected: true
9
+ property :name, 'name', expected: true
10
+ property :clan_level, 'clanLevel', expected: true
11
+ property :badge_urls, 'badgeUrls', expected: true, type: IconSet
12
+ property :members, 'members', expected: true, type: ClanWarLeagueClanMember
13
13
  end
14
14
  end
15
15
  end
@@ -3,9 +3,9 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class ClanWarLeagueClanMember < Base
6
- property :tag, 'tag', required: true
7
- property :name, 'name', required: true
8
- property :town_hall_level, 'townHallLevel', required: true
6
+ property :tag, 'tag', expected: true
7
+ property :name, 'name', expected: true
8
+ property :town_hall_level, 'townHallLevel', expected: true
9
9
  end
10
10
  end
11
11
  end
@@ -5,10 +5,10 @@ require_relative 'clan_war_league_round'
5
5
  module ClashOfClansApi
6
6
  module Models
7
7
  class ClanWarLeagueGroup < Base
8
- property :state, 'state', required: true
9
- property :season, 'season', required: true
10
- property :clans, 'clans', required: true, type: ClanWarLeagueClan
11
- property :rounds, 'rounds', required: true, type: ClanWarLeagueRound
8
+ property :state, 'state', expected: true
9
+ property :season, 'season'
10
+ property :clans, 'clans', type: ClanWarLeagueClan
11
+ property :rounds, 'rounds', type: ClanWarLeagueRound
12
12
  end
13
13
  end
14
14
  end
@@ -3,7 +3,7 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class ClanWarLeagueRound < Base
6
- property :war_tags, 'warTags', required: true
6
+ property :war_tags, 'warTags', expected: true
7
7
 
8
8
  def prepared?
9
9
  war_tags.all? do |war_tag|
@@ -4,10 +4,10 @@ require_relative 'hero_equipment'
4
4
  module ClashOfClansApi
5
5
  module Models
6
6
  class Hero < Base
7
- property :name, 'name', required: true
8
- property :level, 'level', required: true
9
- property :max_level, 'maxLevel', required: true
10
- property :village, 'village', required: true
7
+ property :name, 'name', expected: true
8
+ property :level, 'level', expected: true
9
+ property :max_level, 'maxLevel', expected: true
10
+ property :village, 'village', expected: true
11
11
  property :equipment, 'equipment', type: HeroEquipment
12
12
  end
13
13
  end
@@ -3,10 +3,10 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class HeroEquipment < Base
6
- property :name, 'name', required: true
7
- property :level, 'level', required: true
8
- property :max_level, 'maxLevel', required: true
9
- property :village, 'village', required: true
6
+ property :name, 'name', expected: true
7
+ property :level, 'level', expected: true
8
+ property :max_level, 'maxLevel', expected: true
9
+ property :village, 'village', expected: true
10
10
  end
11
11
  end
12
12
  end
@@ -4,9 +4,9 @@ require_relative 'icon_set'
4
4
  module ClashOfClansApi
5
5
  module Models
6
6
  class Label < Base
7
- property :id, 'id', required: true
8
- property :name, 'name', required: true
9
- property :icon_urls, 'iconUrls', required: true, type: IconSet
7
+ property :id, 'id', expected: true
8
+ property :name, 'name', expected: true
9
+ property :icon_urls, 'iconUrls', expected: true, type: IconSet
10
10
  end
11
11
  end
12
12
  end
@@ -4,9 +4,9 @@ require_relative 'icon_set'
4
4
  module ClashOfClansApi
5
5
  module Models
6
6
  class League < Base
7
- property :id, 'id', required: true
8
- property :name, 'name', required: true
9
- property :icon_urls, 'iconUrls', required: true, type: IconSet
7
+ property :id, 'id', expected: true
8
+ property :name, 'name', expected: true
9
+ property :icon_urls, 'iconUrls', expected: true, type: IconSet
10
10
  end
11
11
  end
12
12
  end
@@ -3,9 +3,9 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class LegendSeason < Base
6
- property :id, 'id', required: false
7
- property :rank, 'rank', required: true
8
- property :trophies, 'trophies', required: true
6
+ property :id, 'id', expected: false
7
+ property :rank, 'rank', expected: true
8
+ property :trophies, 'trophies', expected: true
9
9
  end
10
10
  end
11
11
  end
@@ -4,10 +4,10 @@ require_relative 'legend_season'
4
4
  module ClashOfClansApi
5
5
  module Models
6
6
  class LegendStatistics < Base
7
- property :legend_trophies, 'legendTrophies', required: true
8
- property :previous_season, 'previousSeason', required: true, type: LegendSeason
9
- property :best_season, 'bestSeason', required: true, type: LegendSeason
10
- property :current_season, 'currentSeason', required: true, type: LegendSeason
7
+ property :legend_trophies, 'legendTrophies', expected: true
8
+ property :previous_season, 'previousSeason', expected: true, type: LegendSeason
9
+ property :best_season, 'bestSeason', expected: true, type: LegendSeason
10
+ property :current_season, 'currentSeason', expected: true, type: LegendSeason
11
11
  end
12
12
  end
13
13
  end
@@ -6,8 +6,8 @@ module ClashOfClansApi
6
6
  class PaginatedResponse < Base
7
7
  attr_accessor :item_type
8
8
 
9
- property :items, 'items', required: true, type: :item_type
10
- property :paging, 'paging', required: true, type: PaginationPaging
9
+ property :items, 'items', expected: true, type: :item_type
10
+ property :paging, 'paging', expected: true, type: PaginationPaging
11
11
 
12
12
  def initialize(item_type, hash, client)
13
13
  self.item_type = item_type
@@ -4,7 +4,7 @@ require_relative 'pagination_cursors'
4
4
  module ClashOfClansApi
5
5
  module Models
6
6
  class PaginationPaging < Base
7
- property :cursors, 'cursors', required: true, type: PaginationCursors
7
+ property :cursors, 'cursors', expected: true, type: PaginationCursors
8
8
  end
9
9
  end
10
10
  end
@@ -13,8 +13,8 @@ require_relative 'troop'
13
13
  module ClashOfClansApi
14
14
  module Models
15
15
  class Player < Base
16
- property :tag, 'tag', required: true
17
- property :name, 'name', required: true
16
+ property :tag, 'tag', expected: true
17
+ property :name, 'name', expected: true
18
18
  property :town_hall_level, 'townHallLevel'
19
19
  property :town_hall_weapon_level, 'townHallWeaponLevel'
20
20
  property :exp_level, 'expLevel'
@@ -4,7 +4,7 @@ require_relative 'player_house_element'
4
4
  module ClashOfClansApi
5
5
  module Models
6
6
  class PlayerHouse < Base
7
- property :elements, 'elements', type: PlayerHouseElement, required: true
7
+ property :elements, 'elements', type: PlayerHouseElement, expected: true
8
8
  end
9
9
  end
10
10
  end
@@ -3,8 +3,8 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class PlayerHouseElement < Base
6
- property :type, 'type', required: true
7
- property :id, 'id', required: true
6
+ property :type, 'type', expected: true
7
+ property :id, 'id', expected: true
8
8
  end
9
9
  end
10
10
  end
@@ -3,10 +3,10 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class Spell < Base
6
- property :name, 'name', required: true
7
- property :level, 'level', required: true
8
- property :max_level, 'maxLevel', required: true
9
- property :village, 'village', required: true
6
+ property :name, 'name', expected: true
7
+ property :level, 'level', expected: true
8
+ property :max_level, 'maxLevel', expected: true
9
+ property :village, 'village', expected: true
10
10
  end
11
11
  end
12
12
  end
@@ -3,16 +3,16 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class Token < Base
6
- property :id, 'id', required: true
6
+ property :id, 'id', expected: true
7
7
  property :developer_id, 'developerId'
8
8
  property :tier, 'tier'
9
- property :name, 'name', required: true
10
- property :description, 'description', required: true
9
+ property :name, 'name', expected: true
10
+ property :description, 'description', expected: true
11
11
  property :origins, 'origins'
12
12
  property :scopes, 'scopes'
13
- property :cidr_ranges, 'cidrRanges', required: true
13
+ property :cidr_ranges, 'cidrRanges', expected: true
14
14
  property :valid_until, 'validUntil'
15
- property :key, 'key', required: true
15
+ property :key, 'key', expected: true
16
16
 
17
17
  def revoke
18
18
  self.client.revoke_api_key(self.id)
@@ -3,11 +3,11 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class Troop < Base
6
- property :name, 'name', required: true
7
- property :level, 'level', required: true
8
- property :max_level, 'maxLevel', required: true
9
- property :village, 'village', required: true
10
- property :super_troop_is_active, 'superTroopIsActive', required: false, default: false
6
+ property :name, 'name', expected: true
7
+ property :level, 'level', expected: true
8
+ property :max_level, 'maxLevel', expected: true
9
+ property :village, 'village', expected: true
10
+ property :super_troop_is_active, 'superTroopIsActive', expected: false, default: false
11
11
  end
12
12
  end
13
13
  end
@@ -11,8 +11,8 @@ module ClashOfClansApi
11
11
  property :preparation_start_time, 'preparationStartTime', type: DateTime
12
12
  property :team_size, 'teamSize'
13
13
  property :attacks_per_member, 'attacksPerMember'
14
- property :clan, 'clan', required: true, type: WarClan
15
- property :opponent, 'opponent', required: true, type: WarClan
14
+ property :clan, 'clan', expected: true, type: WarClan
15
+ property :opponent, 'opponent', expected: true, type: WarClan
16
16
  end
17
17
  end
18
18
  end
@@ -3,12 +3,12 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class WarAttack < Base
6
- property :attacker_tag, 'attackerTag', required: true
7
- property :defender_tag, 'defenderTag', required: true
8
- property :stars, 'stars', required: true
9
- property :destruction_percentage, 'destructionPercentage', required: true
10
- property :order, 'order', required: true
11
- property :duration, 'duration', required: true
6
+ property :attacker_tag, 'attackerTag', expected: true
7
+ property :defender_tag, 'defenderTag', expected: true
8
+ property :stars, 'stars', expected: true
9
+ property :destruction_percentage, 'destructionPercentage', expected: true
10
+ property :order, 'order', expected: true
11
+ property :duration, 'duration', expected: true
12
12
  end
13
13
  end
14
14
  end
@@ -4,8 +4,8 @@ require_relative 'war_attack'
4
4
  module ClashOfClansApi
5
5
  module Models
6
6
  class WarClanMember < Base
7
- property :tag, 'tag', required: true
8
- property :name, 'name', required: true
7
+ property :tag, 'tag', expected: true
8
+ property :name, 'name', expected: true
9
9
  property :townhall_level, 'townhallLevel'
10
10
  property :map_position, 'mapPosition'
11
11
  property :attacks, 'attacks', type: WarAttack
@@ -3,8 +3,8 @@ require_relative 'base'
3
3
  module ClashOfClansApi
4
4
  module Models
5
5
  class WarLeague < Base
6
- property :id, 'id', required: true
7
- property :name, 'name', required: true
6
+ property :id, 'id', expected: true
7
+ property :name, 'name', expected: true
8
8
  end
9
9
  end
10
10
  end
@@ -48,8 +48,6 @@ module ClashOfClansApi
48
48
 
49
49
  def revoke_api_key(id)
50
50
  TokenApi.apikey_revoke(id: id, headers: @session_headers)
51
-
52
- true
53
51
  end
54
52
 
55
53
  def create_or_get_api_key_for_current_ipv4_address(name, description=name, overwrite: false)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ClashOfClansApi
4
- VERSION = '0.5.0'
4
+ VERSION = '0.6.0'
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clash_of_clans_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - expeehaa
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-04-06 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: api_frame
@@ -92,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
94
  requirements: []
95
- rubygems_version: 3.6.2
95
+ rubygems_version: 3.6.7
96
96
  specification_version: 4
97
97
  summary: Client library for interacting with the ClashOfClans API.
98
98
  test_files: []