renchap-wowr 0.5.0 → 0.5.1
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.
- data/VERSION.yml +2 -2
- data/lib/wowr/achievements.rb +143 -0
- metadata +27 -26
data/VERSION.yml
CHANGED
@@ -0,0 +1,143 @@
|
|
1
|
+
module Wowr
|
2
|
+
module Classes
|
3
|
+
class CharacterAchievementsInfo
|
4
|
+
attr_reader :latest_achievements, :categories
|
5
|
+
|
6
|
+
def initialize elem, api
|
7
|
+
@api = api
|
8
|
+
@latest_achievements = Array.new
|
9
|
+
@categories = Array.new
|
10
|
+
|
11
|
+
achievements = elem%'achievements'
|
12
|
+
summary = achievements%'summary'
|
13
|
+
|
14
|
+
# Get list of latest achievements
|
15
|
+
summary.search('achievement').each do |achievement|
|
16
|
+
@latest_achievements << CompletedAchievement.new(achievement)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Get the infos about categories completion
|
20
|
+
# They are ordered in same order as categories below
|
21
|
+
categories_completion = summary.search('category/c')
|
22
|
+
|
23
|
+
# Get the list of rootCategories
|
24
|
+
i = 0
|
25
|
+
achievements.search('rootCategories/category').each do |category|
|
26
|
+
elem = Hash.new
|
27
|
+
type = AchievementsCategoryDetails
|
28
|
+
elem['id'] = category['id']
|
29
|
+
elem['name'] = category['name']
|
30
|
+
completion = categories_completion[i]
|
31
|
+
elem['earned'] = completion['earned']
|
32
|
+
|
33
|
+
# If we have more informations
|
34
|
+
if completion['total']
|
35
|
+
type = AchievementsCategoryDetailsWithPoints
|
36
|
+
elem['total'] = completion['total']
|
37
|
+
elem['totalPoints'] = completion['totalPoints']
|
38
|
+
elem['earnedPoints'] = completion['earnedPoints']
|
39
|
+
end
|
40
|
+
new_cat = type.new(elem)
|
41
|
+
|
42
|
+
# Add subcategories
|
43
|
+
category.search('category').each do |subcategory|
|
44
|
+
subcat = AchievementsCategory.new subcategory
|
45
|
+
new_cat.add_subcategory subcat
|
46
|
+
end
|
47
|
+
|
48
|
+
@categories << new_cat
|
49
|
+
i = i+1
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
class Achievement
|
55
|
+
attr_reader :desc, :title, :category_id, :icon, :id, :points, :reward
|
56
|
+
def initialize achievement
|
57
|
+
@desc = achievement['desc']
|
58
|
+
@category_id = achievement['categoryId'].to_i
|
59
|
+
@icon = achievement['icon']
|
60
|
+
@id = achievement['id'].to_i
|
61
|
+
|
62
|
+
if achievement['points']
|
63
|
+
@points = achievement['points'].to_i
|
64
|
+
else
|
65
|
+
@points = nil
|
66
|
+
end
|
67
|
+
|
68
|
+
if achievement['reward']
|
69
|
+
@reward = achievement['reward']
|
70
|
+
else
|
71
|
+
@reward = nil
|
72
|
+
end
|
73
|
+
|
74
|
+
@title = achievement['title']
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
class CompletedAchievement < Achievement
|
79
|
+
attr_reader :date_completed
|
80
|
+
def initialize achievement
|
81
|
+
super(achievement)
|
82
|
+
@date_completed = achievement['dateCompleted']
|
83
|
+
begin
|
84
|
+
@date_completed = achievement[:dateCompleted] == "" ? nil : DateTime.parse(achievement[:dateCompleted])
|
85
|
+
rescue
|
86
|
+
@date_completed = achievement[:dateCompleted] == "" ? nil : achievement[:dateCompleted]
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
class AchievementsCategory
|
92
|
+
attr_reader :name
|
93
|
+
attr_reader :subcategories
|
94
|
+
attr_reader :id
|
95
|
+
attr_writer :parent
|
96
|
+
def initialize category
|
97
|
+
@name = category['name']
|
98
|
+
@id = category['id'].to_i if category['id']
|
99
|
+
@subcategories = Array.new
|
100
|
+
end
|
101
|
+
|
102
|
+
def add_subcategory category
|
103
|
+
@subcategories << category
|
104
|
+
category.parent = self
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
class AchievementsCategoryDetails < AchievementsCategory
|
109
|
+
attr_reader :earned
|
110
|
+
def initialize category
|
111
|
+
super(category)
|
112
|
+
@earned = category['earned'].to_i
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
class AchievementsCategoryDetailsWithPoints < AchievementsCategoryDetails
|
117
|
+
attr_reader :earned_points, :total, :total_points
|
118
|
+
def initialize category
|
119
|
+
super(category)
|
120
|
+
@earned_points = category['earnedPoints'].to_i
|
121
|
+
@total = category['total'].to_i
|
122
|
+
@total_points = category['totalPoints'].to_i
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
class AchievementsList
|
127
|
+
attr_reader :achievements
|
128
|
+
def initialize elem, api
|
129
|
+
@api = api
|
130
|
+
@achievements = Array.new
|
131
|
+
elem.search('achievement').each do |achievement|
|
132
|
+
if achievement['dateCompleted']
|
133
|
+
new_achievement = CompletedAchievement.new(achievement)
|
134
|
+
else
|
135
|
+
new_achievement = Achievement.new(achievement)
|
136
|
+
end
|
137
|
+
@achievements << new_achievement
|
138
|
+
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: renchap-wowr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Humphreys
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2009-
|
14
|
+
date: 2009-04-04 00:00:00 -07:00
|
15
15
|
default_executable:
|
16
16
|
dependencies: []
|
17
17
|
|
@@ -26,43 +26,44 @@ extra_rdoc_files:
|
|
26
26
|
files:
|
27
27
|
- VERSION.yml
|
28
28
|
- lib/wowr
|
29
|
-
- lib/wowr/arena_team.rb
|
30
29
|
- lib/wowr/calendar.rb
|
31
|
-
- lib/wowr/character.rb
|
32
|
-
- lib/wowr/dungeon.rb
|
33
30
|
- lib/wowr/exceptions.rb
|
34
|
-
- lib/wowr/
|
35
|
-
- lib/wowr/
|
31
|
+
- lib/wowr/dungeon.rb
|
32
|
+
- lib/wowr/arena_team.rb
|
33
|
+
- lib/wowr/character.rb
|
34
|
+
- lib/wowr/achievements.rb
|
36
35
|
- lib/wowr/guild.rb
|
37
36
|
- lib/wowr/guild_bank.rb
|
37
|
+
- lib/wowr/general.rb
|
38
|
+
- lib/wowr/extensions.rb
|
38
39
|
- lib/wowr/item.rb
|
39
40
|
- lib/wowr.rb
|
40
|
-
- test/wowr_arena_team_test.rb
|
41
|
-
- test/wowr_character_test.rb
|
42
|
-
- test/wowr_dungeon_test.rb
|
43
|
-
- test/wowr_guild_test.rb
|
44
|
-
- test/wowr_item_test.rb
|
45
|
-
- test/wowr_test.rb
|
46
41
|
- test/xml
|
47
|
-
- test/xml/
|
48
|
-
- test/xml/arena_team_single.xml
|
49
|
-
- test/xml/armory-search.xml
|
42
|
+
- test/xml/dungeonStrings.xml
|
50
43
|
- test/xml/armory_search.xml
|
51
|
-
- test/xml/benedictt.xml
|
52
|
-
- test/xml/character-reputation.xml
|
53
|
-
- test/xml/character-sheet.xml
|
54
|
-
- test/xml/character-skills.xml
|
55
44
|
- test/xml/character-talents.xml
|
45
|
+
- test/xml/itemSearch.xml
|
56
46
|
- test/xml/character_info.xml
|
57
|
-
- test/xml/
|
58
|
-
- test/xml/
|
59
|
-
- test/xml/dungeonStrings.xml
|
47
|
+
- test/xml/arena_team_single.xml
|
48
|
+
- test/xml/character-reputation.xml
|
60
49
|
- test/xml/example.xml
|
61
|
-
- test/xml/guild-info.xml
|
62
|
-
- test/xml/item-info.xml
|
63
50
|
- test/xml/item-tooltip.xml
|
64
51
|
- test/xml/item_search.xml
|
65
|
-
- test/xml/
|
52
|
+
- test/xml/character-sheet.xml
|
53
|
+
- test/xml/benedictt.xml
|
54
|
+
- test/xml/armory-search.xml
|
55
|
+
- test/xml/item-info.xml
|
56
|
+
- test/xml/arena_team_search.xml
|
57
|
+
- test/xml/character-skills.xml
|
58
|
+
- test/xml/character_search.xml
|
59
|
+
- test/xml/guild-info.xml
|
60
|
+
- test/xml/dungeons.xml
|
61
|
+
- test/wowr_item_test.rb
|
62
|
+
- test/wowr_dungeon_test.rb
|
63
|
+
- test/wowr_character_test.rb
|
64
|
+
- test/wowr_arena_team_test.rb
|
65
|
+
- test/wowr_guild_test.rb
|
66
|
+
- test/wowr_test.rb
|
66
67
|
- README
|
67
68
|
has_rdoc: true
|
68
69
|
homepage: http://wowr.rubyforge.org/
|