File Coverage

blib/lib/WoW/Armory/Class/Character.pm
Criterion Covered Total %
statement 264 264 100.0
branch n/a
condition n/a
subroutine 88 88 100.0
pod n/a
total 352 352 100.0


line stmt bran cond sub pod time code
1             package WoW::Armory::Class::Character;
2              
3 2     2   2996 use strict;
  2         5  
  2         81  
4 2     2   12 use warnings;
  2         5  
  2         63  
5              
6 2     2   1286 use WoW::Armory::Class::Guild;
  2         6  
  2         24  
7              
8             ########################################################################
9             package WoW::Armory::Class::Character::Titles;
10              
11 2     2   153 use base 'WoW::Armory::Class';
  2         4  
  2         306  
12              
13 2         195 use constant FIELDS => [
14             'id', 'name', 'selected'
15 2     2   13 ];
  2         55  
16              
17             __PACKAGE__->mk_accessors;
18              
19             ########################################################################
20             package WoW::Armory::Class::Character::Talents::Talents::Spell;
21              
22 2     2   11 use base 'WoW::Armory::Class';
  2         3  
  2         452  
23              
24 2         158 use constant FIELDS => [
25             'castTime', 'cooldown', 'description', 'icon', 'id', 'name', 'powerCost',
26             'range', 'subtext'
27 2     2   13 ];
  2         3  
28              
29             __PACKAGE__->mk_accessors;
30              
31             ########################################################################
32             package WoW::Armory::Class::Character::Talents::Talents;
33              
34 2     2   12 use base 'WoW::Armory::Class';
  2         4  
  2         250  
35              
36 2         112 use constant FIELDS => [
37             'column', 'tier'
38 2     2   20 ];
  2         5  
39              
40 2         157 use constant BLESSED_FIELDS =>
41             {
42             'spell' => 'WoW::Armory::Class::Character::Talents::Talents::Spell',
43 2     2   12 };
  2         3  
44              
45             __PACKAGE__->mk_accessors;
46              
47             ########################################################################
48             package WoW::Armory::Class::Character::Talents::Spec;
49              
50 2     2   11 use base 'WoW::Armory::Class';
  2         4  
  2         443  
51              
52 2         158 use constant FIELDS => [
53             'backgroundImage', 'description', 'icon', 'name', 'order', 'role'
54 2     2   13 ];
  2         4  
55              
56             __PACKAGE__->mk_accessors;
57              
58             ########################################################################
59             package WoW::Armory::Class::Character::Talents::Glyphs::Glyph;
60              
61 2     2   12 use base 'WoW::Armory::Class';
  2         8  
  2         260  
62              
63 2         133 use constant FIELDS => [
64             'glyph', 'icon', 'item', 'name'
65 2     2   12 ];
  2         15  
66              
67             __PACKAGE__->mk_accessors;
68              
69             ########################################################################
70             package WoW::Armory::Class::Character::Talents::Glyphs;
71              
72 2     2   9 use base 'WoW::Armory::Class';
  2         6  
  2         343  
73              
74 2         120 use constant LIST_FIELDS =>
75             {
76             'major' => 'WoW::Armory::Class::Character::Talents::Glyphs::Glyph',
77             'minor' => 'WoW::Armory::Class::Character::Talents::Glyphs::Glyph',
78 2     2   11 };
  2         4  
79              
80             __PACKAGE__->mk_accessors;
81              
82             ########################################################################
83             package WoW::Armory::Class::Character::Talents;
84              
85 2     2   9 use base 'WoW::Armory::Class';
  2         3  
  2         248  
86              
87 2         129 use constant FIELDS => [
88             'calcGlyph', 'calcSpec', 'calcTalent', 'selected'
89 2     2   9 ];
  2         5  
90              
91 2         109 use constant BLESSED_FIELDS =>
92             {
93             'glyphs' => 'WoW::Armory::Class::Character::Talents::Glyphs',
94             'spec' => 'WoW::Armory::Class::Character::Talents::Spec',
95 2     2   12 };
  2         3  
96              
97 2         121 use constant LIST_FIELDS =>
98             {
99             'talents' => 'WoW::Armory::Class::Character::Talents::Talents',
100 2     2   11 };
  2         3  
101              
102             __PACKAGE__->mk_accessors;
103              
104             ########################################################################
105             package WoW::Armory::Class::Character::Stats;
106              
107 2     2   10 use base 'WoW::Armory::Class';
  2         2  
  2         394  
108              
109 2         150 use constant FIELDS => [
110             'agi', 'armor', 'attackPower', 'block', 'blockRating', 'crit', 'critRating',
111             'dodge', 'dodgeRating', 'expertiseRating', 'hasteRating', 'health', 'hitPercent',
112             'hitRating', 'int', 'mainHandDmgMax', 'mainHandDmgMin', 'mainHandDps',
113             'mainHandExpertise', 'mainHandSpeed', 'mana5', 'mana5Combat', 'mastery',
114             'masteryRating', 'offHandDmgMax', 'offHandDmgMin', 'offHandDps', 'offHandExpertise',
115             'offHandSpeed', 'parry', 'parryRating', 'power', 'powerType', 'pvpPower',
116             'pvpPowerRating', 'pvpResilience', 'pvpResilienceRating', 'rangedAttackPower',
117             'rangedCrit', 'rangedCritRating', 'rangedDmgMax', 'rangedDmgMin', 'rangedDps',
118             'rangedExpertise', 'rangedHitPercent', 'rangedHitRating', 'rangedSpeed',
119             'spellCrit', 'spellCritRating', 'spellHitPercent', 'spellHitRating', 'spellPen',
120             'spellPower', 'spr', 'sta', 'str'
121 2     2   12 ];
  2         3  
122              
123             __PACKAGE__->mk_accessors;
124              
125             ########################################################################
126             package WoW::Armory::Class::Character::Reputation;
127              
128 2     2   11 use base 'WoW::Armory::Class';
  2         4  
  2         255  
129              
130 2         235 use constant FIELDS => [
131             'id', 'max', 'name', 'standing', 'value'
132 2     2   11 ];
  2         3  
133              
134             __PACKAGE__->mk_accessors;
135              
136             ########################################################################
137             package WoW::Armory::Class::Character::Pvp::RatedBattlegrounds::Battlegrounds;
138              
139 2     2   10 use base 'WoW::Armory::Class';
  2         2  
  2         289  
140              
141 2         144 use constant FIELDS => [
142             'name', 'played', 'won'
143 2     2   11 ];
  2         4  
144              
145             __PACKAGE__->mk_accessors;
146              
147             ########################################################################
148             package WoW::Armory::Class::Character::Pvp::RatedBattlegrounds;
149              
150 2     2   10 use base 'WoW::Armory::Class';
  2         4  
  2         245  
151              
152 2         105 use constant FIELDS => [
153             'personalRating'
154 2     2   11 ];
  2         4  
155              
156 2         127 use constant LIST_FIELDS =>
157             {
158             'battlegrounds' => 'WoW::Armory::Class::Character::Pvp::RatedBattlegrounds::Battlegrounds',
159 2     2   10 };
  2         3  
160              
161             __PACKAGE__->mk_accessors;
162              
163             ########################################################################
164             package WoW::Armory::Class::Character::Pvp;
165              
166 2     2   9 use base 'WoW::Armory::Class';
  2         4  
  2         282  
167              
168 2         115 use constant FIELDS => [
169             'arenaTeams', 'totalHonorableKills'
170 2     2   17 ];
  2         3  
171              
172 2         153 use constant BLESSED_FIELDS =>
173             {
174             'ratedBattlegrounds' => 'WoW::Armory::Class::Character::Pvp::RatedBattlegrounds',
175 2     2   10 };
  2         4  
176              
177             __PACKAGE__->mk_accessors;
178              
179             ########################################################################
180             package WoW::Armory::Class::Character::Progression::Raids::Bosses;
181              
182 2     2   9 use base 'WoW::Armory::Class';
  2         2  
  2         352  
183              
184 2         264 use constant FIELDS => [
185             'heroicKills', 'id', 'name', 'normalKills'
186 2     2   12 ];
  2         4  
187              
188             __PACKAGE__->mk_accessors;
189              
190             ########################################################################
191             package WoW::Armory::Class::Character::Progression::Raids;
192              
193 2     2   17 use base 'WoW::Armory::Class';
  2         3  
  2         257  
194              
195 2         119 use constant FIELDS => [
196             'heroic', 'id', 'name', 'normal'
197 2     2   10 ];
  2         5  
198              
199 2         161 use constant LIST_FIELDS =>
200             {
201             'bosses' => 'WoW::Armory::Class::Character::Progression::Raids::Bosses',
202 2     2   11 };
  2         4  
203              
204             __PACKAGE__->mk_accessors;
205              
206             ########################################################################
207             package WoW::Armory::Class::Character::Progression;
208              
209 2     2   15 use base 'WoW::Armory::Class';
  2         4  
  2         515  
210              
211 2         153 use constant LIST_FIELDS =>
212             {
213             'raids' => 'WoW::Armory::Class::Character::Progression::Raids',
214 2     2   14 };
  2         10  
215              
216             __PACKAGE__->mk_accessors;
217              
218             ########################################################################
219             package WoW::Armory::Class::Character::Professions::Profession;
220              
221 2     2   11 use base 'WoW::Armory::Class';
  2         4  
  2         324  
222              
223 2         127 use constant FIELDS => [
224             'icon', 'id', 'max', 'name', 'rank', 'recipes'
225 2     2   84 ];
  2         10  
226              
227             __PACKAGE__->mk_accessors;
228              
229             ########################################################################
230             package WoW::Armory::Class::Character::Professions;
231              
232 2     2   18 use base 'WoW::Armory::Class';
  2         4  
  2         324  
233              
234 2         149 use constant LIST_FIELDS =>
235             {
236             'primary' => 'WoW::Armory::Class::Character::Professions::Profession',
237             'secondary' => 'WoW::Armory::Class::Character::Professions::Profession',
238 2     2   11 };
  2         3  
239              
240             __PACKAGE__->mk_accessors;
241              
242             ########################################################################
243             package WoW::Armory::Class::Character::Pets::Collected::Stats;
244              
245 2     2   11 use base 'WoW::Armory::Class';
  2         3  
  2         327  
246              
247 2         149 use constant FIELDS => [
248             'breedId', 'health', 'level', 'petQualityId', 'power', 'speciesId', 'speed'
249 2     2   13 ];
  2         3  
250              
251             __PACKAGE__->mk_accessors;
252              
253             ########################################################################
254             package WoW::Armory::Class::Character::Pets::Collected;
255              
256 2     2   12 use base 'WoW::Armory::Class';
  2         3  
  2         331  
257              
258 2         114 use constant FIELDS => [
259             'battlePetId', 'canBattle', 'creatureId', 'creatureName', 'icon', 'isFavorite',
260             'itemId', 'name', 'qualityId', 'spellId'
261 2     2   10 ];
  2         4  
262              
263 2         122 use constant BLESSED_FIELDS =>
264             {
265             'stats' => 'WoW::Armory::Class::Character::Pets::Collected::Stats',
266 2     2   11 };
  2         3  
267              
268             __PACKAGE__->mk_accessors;
269              
270             ########################################################################
271             package WoW::Armory::Class::Character::Pets;
272              
273 2     2   10 use base 'WoW::Armory::Class';
  2         4  
  2         376  
274              
275 2         119 use constant FIELDS => [
276             'numCollected', 'numNotCollected'
277 2     2   13 ];
  2         3  
278              
279 2         151 use constant LIST_FIELDS =>
280             {
281             'collected' => 'WoW::Armory::Class::Character::Pets::Collected',
282 2     2   11 };
  2         4  
283              
284             __PACKAGE__->mk_accessors;
285              
286             ########################################################################
287             package WoW::Armory::Class::Character::PetSlots;
288              
289 2     2   13 use base 'WoW::Armory::Class';
  2         10  
  2         347  
290              
291 2         165 use constant FIELDS => [
292             'abilities', 'battlePetId', 'isEmpty', 'isLocked', 'slot'
293 2     2   13 ];
  2         4  
294              
295             __PACKAGE__->mk_accessors;
296              
297             ########################################################################
298             package WoW::Armory::Class::Character::Mounts::Collected;
299              
300 2     2   12 use base 'WoW::Armory::Class';
  2         4  
  2         367  
301              
302 2         202 use constant FIELDS => [
303             'creatureId', 'icon', 'isAquatic', 'isFlying', 'isGround', 'isJumping',
304             'itemId', 'name', 'qualityId', 'spellId'
305 2     2   12 ];
  2         4  
306              
307             __PACKAGE__->mk_accessors;
308              
309             ########################################################################
310             package WoW::Armory::Class::Character::Mounts;
311              
312 2     2   13 use base 'WoW::Armory::Class';
  2         4  
  2         748  
313              
314 2         141 use constant FIELDS => [
315             'numCollected', 'numNotCollected'
316 2     2   15 ];
  2         4  
317              
318 2         154 use constant LIST_FIELDS =>
319             {
320             'collected' => 'WoW::Armory::Class::Character::Mounts::Collected',
321 2     2   10 };
  2         3  
322              
323             __PACKAGE__->mk_accessors;
324              
325             ########################################################################
326             package WoW::Armory::Class::Character::Items::Item::TooltipParams;
327              
328 2     2   11 use base 'WoW::Armory::Class';
  2         3  
  2         327  
329              
330 2         179 use constant FIELDS => [
331             'enchant', 'reforge'
332 2     2   11 ];
  2         5  
333              
334             __PACKAGE__->mk_accessors;
335              
336             ########################################################################
337             package WoW::Armory::Class::Character::Items::Item;
338              
339 2     2   10 use base 'WoW::Armory::Class';
  2         4  
  2         357  
340              
341 2         114 use constant FIELDS => [
342             'icon', 'id', 'name', 'quality'
343 2     2   11 ];
  2         4  
344              
345 2         223 use constant BLESSED_FIELDS =>
346             {
347             'tooltipParams' => 'WoW::Armory::Class::Character::Items::Item::TooltipParams',
348 2     2   11 };
  2         4  
349              
350             __PACKAGE__->mk_accessors;
351              
352             ########################################################################
353             package WoW::Armory::Class::Character::Items;
354              
355 2     2   10 use base 'WoW::Armory::Class';
  2         3  
  2         368  
356              
357 2         196 use constant FIELDS => [
358             'averageItemLevel', 'averageItemLevelEquipped'
359 2     2   10 ];
  2         10  
360              
361 2         247 use constant BLESSED_FIELDS =>
362             {
363             'back' => 'WoW::Armory::Class::Character::Items::Item',
364             'chest' => 'WoW::Armory::Class::Character::Items::Item',
365             'feet' => 'WoW::Armory::Class::Character::Items::Item',
366             'finger1' => 'WoW::Armory::Class::Character::Items::Item',
367             'finger2' => 'WoW::Armory::Class::Character::Items::Item',
368             'hands' => 'WoW::Armory::Class::Character::Items::Item',
369             'head' => 'WoW::Armory::Class::Character::Items::Item',
370             'legs' => 'WoW::Armory::Class::Character::Items::Item',
371             'mainHand' => 'WoW::Armory::Class::Character::Items::Item',
372             'neck' => 'WoW::Armory::Class::Character::Items::Item',
373             'shirt' => 'WoW::Armory::Class::Character::Items::Item',
374             'shoulder' => 'WoW::Armory::Class::Character::Items::Item',
375             'trinket1' => 'WoW::Armory::Class::Character::Items::Item',
376             'trinket2' => 'WoW::Armory::Class::Character::Items::Item',
377             'waist' => 'WoW::Armory::Class::Character::Items::Item',
378             'wrist' => 'WoW::Armory::Class::Character::Items::Item',
379 2     2   10 };
  2         4  
380              
381             __PACKAGE__->mk_accessors;
382              
383             ########################################################################
384             package WoW::Armory::Class::Character::HunterPets;
385              
386 2     2   10 use base 'WoW::Armory::Class';
  2         3  
  2         343  
387              
388 2         89 use constant FIELDS => [
389             'calcSpec', 'creature', 'familyId', 'familyName', 'name', 'selected', 'slot'
390 2     2   12 ];
  2         4  
391              
392 2         115 use constant BLESSED_FIELDS =>
393             {
394             'spec' => 'WoW::Armory::Class::Character::Talents::Spec',
395 2     2   11 };
  2         10  
396              
397             __PACKAGE__->mk_accessors;
398              
399             ########################################################################
400             package WoW::Armory::Class::Character::Guild;
401              
402 2     2   10 use base 'WoW::Armory::Class';
  2         3  
  2         356  
403              
404 2         111 use constant FIELDS => [
405             'achievementPoints', 'battlegroup', 'level', 'members', 'name', 'realm'
406 2     2   11 ];
  2         4  
407              
408 2         153 use constant BLESSED_FIELDS =>
409             {
410             'emblem' => 'WoW::Armory::Class::Guild::Emblem',
411 2     2   80 };
  2         3  
412              
413             __PACKAGE__->mk_accessors;
414              
415             ########################################################################
416             package WoW::Armory::Class::Character::Feed::Criteria;
417              
418 2     2   18 use base 'WoW::Armory::Class';
  2         3  
  2         332  
419              
420 2         118 use constant FIELDS => [
421             'description', 'id', 'max', 'orderIndex'
422 2     2   12 ];
  2         3  
423              
424             __PACKAGE__->mk_accessors;
425              
426             ########################################################################
427             package WoW::Armory::Class::Character::Feed::Achievement;
428              
429 2     2   10 use base 'WoW::Armory::Class';
  2         4  
  2         347  
430              
431 2         163 use constant FIELDS => [
432             'accountWide', 'description', 'factionId', 'icon', 'id', 'points', 'reward',
433             'title'
434 2     2   11 ];
  2         11  
435              
436 2         141 use constant LIST_FIELDS =>
437             {
438             'criteria' => 'WoW::Armory::Class::Character::Feed::Criteria',
439             'rewardItems' => 'WoW::Armory::Class::Character::Items::Item',
440 2     2   10 };
  2         4  
441              
442             __PACKAGE__->mk_accessors;
443              
444             ########################################################################
445             package WoW::Armory::Class::Character::Feed;
446              
447 2     2   12 use base 'WoW::Armory::Class';
  2         2  
  2         347  
448              
449 2         135 use constant FIELDS => [
450             'featOfStrength', 'itemId', 'name', 'quantity', 'timestamp', 'type'
451 2     2   19 ];
  2         4  
452              
453 2         209 use constant BLESSED_FIELDS =>
454             {
455             'achievement' => 'WoW::Armory::Class::Character::Feed::Achievement',
456             'criteria' => 'WoW::Armory::Class::Character::Feed::Criteria',
457 2     2   18 };
  2         4  
458              
459             __PACKAGE__->mk_accessors;
460              
461             ########################################################################
462             package WoW::Armory::Class::Character::Appearance;
463              
464 2     2   10 use base 'WoW::Armory::Class';
  2         4  
  2         392  
465              
466 2         134 use constant FIELDS => [
467             'faceVariation', 'featureVariation', 'hairColor', 'hairVariation', 'showCloak',
468             'showHelm', 'skinColor'
469 2     2   12 ];
  2         4  
470              
471             __PACKAGE__->mk_accessors;
472              
473             ########################################################################
474             package WoW::Armory::Class::Character::Achievements;
475              
476 2     2   12 use base 'WoW::Armory::Class';
  2         14  
  2         385  
477              
478 2         127 use constant FIELDS => [
479             'achievementsCompleted', 'achievementsCompletedTimestamp', 'criteria',
480             'criteriaCreated', 'criteriaQuantity', 'criteriaTimestamp'
481 2     2   13 ];
  2         3  
482              
483             __PACKAGE__->mk_accessors;
484              
485             ########################################################################
486             package WoW::Armory::Class::Character;
487              
488 2     2   10 use base 'WoW::Armory::Class';
  2         4  
  2         406  
489              
490 2         214 use constant FIELDS => [
491             'achievementPoints', 'battlegroup', 'calcClass', 'class', 'gender', 'lastModified',
492             'level', 'name', 'quests', 'race', 'realm', 'thumbnail'
493 2     2   13 ];
  2         4  
494              
495 2         276 use constant BLESSED_FIELDS =>
496             {
497             'achievements' => 'WoW::Armory::Class::Character::Achievements',
498             'appearance' => 'WoW::Armory::Class::Character::Appearance',
499             'guild' => 'WoW::Armory::Class::Character::Guild',
500             'items' => 'WoW::Armory::Class::Character::Items',
501             'mounts' => 'WoW::Armory::Class::Character::Mounts',
502             'pets' => 'WoW::Armory::Class::Character::Pets',
503             'professions' => 'WoW::Armory::Class::Character::Professions',
504             'progression' => 'WoW::Armory::Class::Character::Progression',
505             'pvp' => 'WoW::Armory::Class::Character::Pvp',
506             'stats' => 'WoW::Armory::Class::Character::Stats',
507 2     2   12 };
  2         4  
508              
509 2         193 use constant LIST_FIELDS =>
510             {
511             'feed' => 'WoW::Armory::Class::Character::Feed',
512             'hunterPets' => 'WoW::Armory::Class::Character::HunterPets',
513             'petSlots' => 'WoW::Armory::Class::Character::PetSlots',
514             'reputation' => 'WoW::Armory::Class::Character::Reputation',
515             'talents' => 'WoW::Armory::Class::Character::Talents',
516             'titles' => 'WoW::Armory::Class::Character::Titles',
517 2     2   11 };
  2         3  
518              
519             __PACKAGE__->mk_accessors;
520              
521             1;