runescape 0.0.0 → 0.0.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.
- checksums.yaml +4 -4
- data/README.md +17 -0
- data/lib/oldschool/hiscores/hiscores.rb +83 -0
- data/lib/oldschool/hiscores/minigame.rb +66 -0
- data/lib/oldschool/hiscores/skill.rb +129 -0
- data/lib/oldschool/player.rb +222 -0
- data/lib/runescape.rb +7 -6
- metadata +11 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03e73aa20edf6f3e65584526fd82f0a87639d4ab1808000c7c377f851ce120c7
|
4
|
+
data.tar.gz: 5078e079d337185be49b6426ec7ad9033e66fe7b07dcdb5c4fd7def4631a4a27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b41c109913580ab72f5bd11d7ea9eef50a92ae1fff9de58c24ff64331622020668fe5f1ee8e1ed423c8831a9558fbd4e060c433d3df004d3aa36780aa5b64e9
|
7
|
+
data.tar.gz: 2c12a835f048d34068fa160c4ab4984830fe5083c238fc0e91aff5506f924574f4b09766017c78dfaa3e1815a11bc86ee78563a7615dd2949cf6743ec92b3247
|
data/README.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# runescape
|
2
|
+
[](https://badge.fury.io/rb/runescape)
|
3
|
+
[](https://travis-ci.com/marcellosabino/runescape)
|
4
|
+
[](https://codecov.io/gh/marcellosabino/runescape)
|
5
|
+
|
6
|
+
A Ruby Gem that provides useful methods for RuneScape related applications.
|
7
|
+
|
8
|
+
# Installation
|
9
|
+
```
|
10
|
+
gem install runescape
|
11
|
+
```
|
12
|
+
|
13
|
+
# Documentation
|
14
|
+
TODO
|
15
|
+
|
16
|
+
# License
|
17
|
+
MIT
|
@@ -0,0 +1,83 @@
|
|
1
|
+
module OldSchool
|
2
|
+
##
|
3
|
+
# :nodoc:
|
4
|
+
module HiScores
|
5
|
+
MODES = {
|
6
|
+
default: 'https://secure.runescape.com/m=hiscore_oldschool/',
|
7
|
+
ironman: 'http://services.runescape.com/m=hiscore_oldschool_ironman/',
|
8
|
+
ultimate: 'http://services.runescape.com/m=hiscore_oldschool_ultimate/',
|
9
|
+
hardcore: 'http://services.runescape.com/m=hiscore_oldschool_hardcore_ironman/',
|
10
|
+
deadman: 'http://services.runescape.com/m=hiscore_oldschool_deadman/',
|
11
|
+
seasonal: 'http://services.runescape.com/m=hiscore_oldschool_seasonal/',
|
12
|
+
tournament: 'http://services.runescape.com/m=hiscore_oldschool_tournament/'
|
13
|
+
}.freeze
|
14
|
+
|
15
|
+
RESOURCE = {
|
16
|
+
stats: 'index_lite.ws?player='
|
17
|
+
}.freeze
|
18
|
+
|
19
|
+
SKILLS = %i[
|
20
|
+
overall attack defence strength
|
21
|
+
hitpoints ranged prayer magic
|
22
|
+
cooking woodcutting fletching fishing
|
23
|
+
firemaking crafting smithing mining
|
24
|
+
herblore agility thieving slayer
|
25
|
+
farming runecraft hunter construction
|
26
|
+
].freeze
|
27
|
+
|
28
|
+
MEMBER_SKILLS = %i[
|
29
|
+
fletching herblore agility thieving
|
30
|
+
slayer farming hunter construction
|
31
|
+
].freeze
|
32
|
+
|
33
|
+
COMBAT_SKILLS = %i[
|
34
|
+
attack defence strength hitpoints
|
35
|
+
ranged prayer magic
|
36
|
+
].freeze
|
37
|
+
|
38
|
+
MINIGAMES = %i[
|
39
|
+
bh_hunter bh_rogue
|
40
|
+
clue_all clue_easy clue_medium clue_hard clue_elite clue_master
|
41
|
+
].freeze
|
42
|
+
|
43
|
+
MINIGAMES_SAFE = %i[
|
44
|
+
clue_all clue_easy clue_medium
|
45
|
+
clue_hard clue_elite clue_master
|
46
|
+
].freeze
|
47
|
+
|
48
|
+
HUMAN_NAME = {
|
49
|
+
overall: 'Overall',
|
50
|
+
attack: 'Attack',
|
51
|
+
defence: 'Defence',
|
52
|
+
strength: 'Strength',
|
53
|
+
hitpoints: 'Hitpoints',
|
54
|
+
ranged: 'Ranged',
|
55
|
+
prayer: 'Prayer',
|
56
|
+
magic: 'Magic',
|
57
|
+
cooking: 'Cooking',
|
58
|
+
woodcutting: 'Woodcutting',
|
59
|
+
fletching: 'Fletching',
|
60
|
+
fishing: 'Fishing',
|
61
|
+
firemaking: 'Firemaking',
|
62
|
+
crafting: 'Crafting',
|
63
|
+
smithing: 'Smithing',
|
64
|
+
mining: 'Mining',
|
65
|
+
herblore: 'Herblore',
|
66
|
+
agility: 'Agility',
|
67
|
+
thieving: 'Thieving',
|
68
|
+
slayer: 'Slayer',
|
69
|
+
farming: 'Farming',
|
70
|
+
runecraft: 'Runecraft',
|
71
|
+
hunter: 'Hunter',
|
72
|
+
construction: 'Construction'
|
73
|
+
}.freeze
|
74
|
+
|
75
|
+
##
|
76
|
+
# @note The symbol must be a valid skill or minigame
|
77
|
+
# @return [String] the human readable name for a given symbol
|
78
|
+
# @return ["Undefined"] if the given symbol is invalid
|
79
|
+
def self.human_name_for(symbol)
|
80
|
+
HUMAN_NAME[symbol] || 'Undefined'
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require_relative 'hiscores'
|
2
|
+
|
3
|
+
module OldSchool
|
4
|
+
module HiScores # :nodoc:
|
5
|
+
##
|
6
|
+
# Represents a Minigame in OldSchool Runescape
|
7
|
+
class Minigame
|
8
|
+
# @return [String] The name of this minigame
|
9
|
+
attr_reader :name
|
10
|
+
# @return [Symbol] The symbol of this minigame
|
11
|
+
attr_reader :symbol
|
12
|
+
# @return [Number] The rank of this minigame on the HiScores
|
13
|
+
attr_reader :rank
|
14
|
+
# @return [Number] The score of this minigame on the HiScores
|
15
|
+
attr_reader :score
|
16
|
+
|
17
|
+
##
|
18
|
+
# Creates a new Minigame instance
|
19
|
+
#
|
20
|
+
# @see OldSchool::HiScores::MINIGAMES Complete list of OldSchool Minigames
|
21
|
+
#
|
22
|
+
# @param symbol [Symbol] the symbol of the minigame
|
23
|
+
# @param rank [Number] the rank of the minigame on the HiScores
|
24
|
+
# @param score [Number] the score of the minigame on the HiScores
|
25
|
+
def initialize(symbol, rank = 0, score = 0)
|
26
|
+
@symbol = symbol
|
27
|
+
@name = HiScores.human_name_for symbol
|
28
|
+
@rank = rank
|
29
|
+
@score = score
|
30
|
+
end
|
31
|
+
|
32
|
+
##
|
33
|
+
# Determines if this minigame is safe
|
34
|
+
#
|
35
|
+
# A minigame is safe if when you die while doing
|
36
|
+
# the minigame, you don't lose your items.
|
37
|
+
#
|
38
|
+
# @example Bounty Hunter you lose items on death
|
39
|
+
# minigame = OldSchool::HiScores::Minigame.new :bh_hunter
|
40
|
+
# minigame.safe? #=> false
|
41
|
+
# @note You can die during Clue Scrolls, but their intents are
|
42
|
+
# not PVP or even combat related, so clue scrolls are listed
|
43
|
+
# as safe.
|
44
|
+
# @return [true] if the minigame is classified as safe
|
45
|
+
# @return [false] if the minigame is classified as dangerous
|
46
|
+
def safe?
|
47
|
+
HiScores::MINIGAMES_SAFE.include? @symbol
|
48
|
+
end
|
49
|
+
|
50
|
+
##
|
51
|
+
# Determines if this minigame is dangerous
|
52
|
+
#
|
53
|
+
# A minigame is dangerous if you lose items when you die
|
54
|
+
#
|
55
|
+
# @example Bounty Hunter Rogue is a dangerous minigame
|
56
|
+
# minigame = OldSchool::HiScores::Minigame.new :bh_rogue
|
57
|
+
# minigame.dangerous? #=> true
|
58
|
+
#
|
59
|
+
# @note This is the inverse of #safe?
|
60
|
+
# @see #safe?
|
61
|
+
def dangerous?
|
62
|
+
!safe?
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
require_relative 'hiscores'
|
2
|
+
|
3
|
+
module OldSchool
|
4
|
+
module HiScores
|
5
|
+
##
|
6
|
+
# Represents a Skill in OldSchool Runescape
|
7
|
+
class Skill
|
8
|
+
##
|
9
|
+
# @example
|
10
|
+
# attack = OldSchool::HiScores::Skill.new :attack
|
11
|
+
# attack.name #=> "Attack"
|
12
|
+
# @return [String] The name of this Skill
|
13
|
+
attr_reader :name
|
14
|
+
# @return [Symbol] The of this Skill
|
15
|
+
attr_reader :symbol
|
16
|
+
# @return [Number] The rank of this Skill on the HiScores
|
17
|
+
attr_reader :rank
|
18
|
+
# @return [Number] The level of this Skill on the HiScores
|
19
|
+
attr_reader :level
|
20
|
+
# @return [Number] The experience of this Skill on the HiScores
|
21
|
+
attr_reader :experience
|
22
|
+
|
23
|
+
##
|
24
|
+
# Creates a new instance of a Skill
|
25
|
+
#
|
26
|
+
# @param symbol [Symbol] the Symbol of this Skill
|
27
|
+
# @param rank [Number] the rank on the HiScores in this Skill
|
28
|
+
# @param level [Number] the level in this Skill
|
29
|
+
# @param experience [Number] the total number of experience in this Skill
|
30
|
+
def initialize(symbol, rank = 0, level = 1, experience = 0)
|
31
|
+
@symbol = symbol
|
32
|
+
@name = HiScores.human_name_for symbol
|
33
|
+
@rank = rank
|
34
|
+
@level = level
|
35
|
+
@experience = experience
|
36
|
+
end
|
37
|
+
|
38
|
+
##
|
39
|
+
# Determines if this Skill affects a Player's combat level
|
40
|
+
#
|
41
|
+
# @example Attack affects combat level
|
42
|
+
# skill = OldSchool::HiScores::Skill.new :attack
|
43
|
+
# skill.combat? #=> true
|
44
|
+
# @example Farming doesn't affect combat level
|
45
|
+
# skill = OldSchool::HiScores::Skill.new :farming
|
46
|
+
# skill.combat? #=> false
|
47
|
+
#
|
48
|
+
# @see #noncombat?
|
49
|
+
#
|
50
|
+
# @return [true] if this skill affects a player's combat level
|
51
|
+
# @return [false] if this skill does not affect a player's combat level
|
52
|
+
def combat?
|
53
|
+
HiScores::COMBAT_SKILLS.include? @symbol
|
54
|
+
end
|
55
|
+
|
56
|
+
##
|
57
|
+
# Determines if this Skill will not affect a Player's combat level
|
58
|
+
#
|
59
|
+
# @example Farming doesn't affect combat level
|
60
|
+
# skill = OldSchool::HiScores::Skill.new :farming
|
61
|
+
# skill.noncombat? #=> true
|
62
|
+
# @example Attack affects combat level
|
63
|
+
# skill = OldSchool::HiScores::Skill.new :attack
|
64
|
+
# skill.noncombat? #=> false
|
65
|
+
#
|
66
|
+
# @note This is the inverse of #combat?
|
67
|
+
# @see #combat?
|
68
|
+
# @see #skiller_friendly?
|
69
|
+
#
|
70
|
+
# @return [true] if this skill does not affect a Player's combat level
|
71
|
+
# @return [false] if this skill affects a Player's combat level
|
72
|
+
def noncombat?
|
73
|
+
!combat?
|
74
|
+
end
|
75
|
+
|
76
|
+
##
|
77
|
+
# Determines if this Skill will not affect a Player's combat level
|
78
|
+
#
|
79
|
+
# @note This is an alias for #noncombat?
|
80
|
+
# @see #noncombat?
|
81
|
+
# @see #combat?
|
82
|
+
def skiller_friendly?
|
83
|
+
noncombat?
|
84
|
+
end
|
85
|
+
|
86
|
+
##
|
87
|
+
# Determines if this is a member's only skill
|
88
|
+
#
|
89
|
+
# @example Slayer is a member's only skill
|
90
|
+
# skill = OldSchool::HiScores::Skill.new :slayer
|
91
|
+
# skill.member? #=> true
|
92
|
+
# @example Woodcutting is a free to play skill
|
93
|
+
# skill = OldSchool::HiScores::Skill.new :woodcutting
|
94
|
+
# skill.member? #=> false
|
95
|
+
#
|
96
|
+
# @return [true] if this is a member's only skill
|
97
|
+
# @return [false] if this is free to play
|
98
|
+
def member?
|
99
|
+
HiScores::MEMBER_SKILLS.include? @symbol
|
100
|
+
end
|
101
|
+
|
102
|
+
##
|
103
|
+
# Determines if this is a free to play skill
|
104
|
+
#
|
105
|
+
# @example Woodcutting is a free to play skill
|
106
|
+
# skill = OldSchool::HiScores::Skill.new :woodcutting
|
107
|
+
# skill.free? #=> true
|
108
|
+
# @example Slayer is a member's only skill
|
109
|
+
# skill = OldSchool::HiScores::Skill.new :slayer
|
110
|
+
# skill.free? #=> false
|
111
|
+
#
|
112
|
+
# @return [true] if this skill is free to play
|
113
|
+
# @return [false] if this skill is member's only
|
114
|
+
def free?
|
115
|
+
!member?
|
116
|
+
end
|
117
|
+
|
118
|
+
##
|
119
|
+
# Determines if this is a free to play skill
|
120
|
+
#
|
121
|
+
# @note This is an alias for #free?
|
122
|
+
# @see #free?
|
123
|
+
# @see #member?
|
124
|
+
def nonmember?
|
125
|
+
free?
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -0,0 +1,222 @@
|
|
1
|
+
require 'csv'
|
2
|
+
require 'open-uri'
|
3
|
+
require_relative 'hiscores/hiscores'
|
4
|
+
require_relative 'hiscores/minigame'
|
5
|
+
require_relative 'hiscores/skill'
|
6
|
+
|
7
|
+
##
|
8
|
+
# Module representing all things OldSchool
|
9
|
+
module OldSchool
|
10
|
+
##
|
11
|
+
# Represents a single player on OldSchool
|
12
|
+
class Player
|
13
|
+
# @return [Symbol] the mode of the Player
|
14
|
+
attr_reader :mode
|
15
|
+
# @return [String] the Player's username
|
16
|
+
attr_reader :username
|
17
|
+
##
|
18
|
+
# @example Extract Skill information from a Player
|
19
|
+
# player = OldSchool::Player.new 'ruby'
|
20
|
+
# player.skills[:overall].level #=> 1232
|
21
|
+
# player.skills[:hunter] #=> OldSchool::HiScores::Skill
|
22
|
+
# player.skills[:hunter].level #=> 72
|
23
|
+
# player.skills[:hunter].experience #=> 780_000
|
24
|
+
# player.skills[:hunter].rank #=> 131_232
|
25
|
+
# player.skills #=> Hash of all Skills
|
26
|
+
#
|
27
|
+
# @see OldSchool::HiScores::SKILLS List of all possible Skill Symbols
|
28
|
+
#
|
29
|
+
# @return [Hash<Symbol, OldSchool::HiScores::Skill>] a Hash containing
|
30
|
+
# all of the Player's skill information as it stands on the HiScores
|
31
|
+
attr_reader :skills
|
32
|
+
##
|
33
|
+
# @example Extract Minigame information from a Player
|
34
|
+
# player = OldSchool::Player.new 'ruby'
|
35
|
+
# player.minigames[:bh_hunter].score #=> 1_344
|
36
|
+
# player.minigames[:bh_rogue].score #=> 900
|
37
|
+
# player.minigames[:clue_all].rank #=> 10_333
|
38
|
+
# player.minigames[:clue_elite].rank #=> 90_232
|
39
|
+
# player.minigames #=> Hash of all Minigames
|
40
|
+
#
|
41
|
+
# @see OldSchool::HiScores::MINIGAMES List of all possible Minigame Symbols
|
42
|
+
# @return [Hash<Symbol, OldSchool::HiScores::Minigame>] a Hash containing
|
43
|
+
# all of the Player's minigame information as it stands on the HiScores
|
44
|
+
attr_reader :minigames
|
45
|
+
|
46
|
+
##
|
47
|
+
# Creates a new Player object
|
48
|
+
#
|
49
|
+
# Creates a new player object with the specified
|
50
|
+
# username
|
51
|
+
#
|
52
|
+
# @example Create a new OldSchool Player
|
53
|
+
# player = OldSchool::Player.new 'ruby'
|
54
|
+
# player.mode #=> :default
|
55
|
+
# player.username #=> "ruby"
|
56
|
+
# @example Create a new Ironman Player
|
57
|
+
# player = OldSchool::Player.new 'ruby', :ironman
|
58
|
+
# player.mode #=> :ironman
|
59
|
+
# player.username #=> "ruby"
|
60
|
+
#
|
61
|
+
# @see OldSchool::HiScores::MODES List of all available game modes
|
62
|
+
#
|
63
|
+
# @param username [String] the username of the Player
|
64
|
+
# @param mode [Symbol] the mode of the Player, such as
|
65
|
+
# :default, :ironman, :ultimate, :hardcore, :deadman etc.
|
66
|
+
def initialize(username, mode = :default)
|
67
|
+
@username = username
|
68
|
+
@mode = mode
|
69
|
+
@csv = nil
|
70
|
+
|
71
|
+
generate_hs_stats
|
72
|
+
end
|
73
|
+
|
74
|
+
##
|
75
|
+
# Determines if this Player was/is a member
|
76
|
+
#
|
77
|
+
# This method determines that a Player is a member
|
78
|
+
# if they have any experience in any of their member's
|
79
|
+
# only skills. Some members, for example, do not have
|
80
|
+
# experience in any of their member's only skills.
|
81
|
+
#
|
82
|
+
# @example For a Player with experience in a member's only skill
|
83
|
+
# member = OldSchool::Player.new 'member'
|
84
|
+
# member.member? #=> true
|
85
|
+
# @example For a Player with no experience in a member's only skill
|
86
|
+
# f2p_player = OldSchool::Player.new 'f2p guy'
|
87
|
+
# f2p_player.member? #=> false
|
88
|
+
#
|
89
|
+
# @note There is a certain level of inaccuracy using this
|
90
|
+
# method, since this method determines a Player is a member
|
91
|
+
# if they have experience in their member's only skills.
|
92
|
+
#
|
93
|
+
# @return [true] if this Player has experience in any member only skill
|
94
|
+
# @return [false] if this Player has no experience in any member only skill
|
95
|
+
def member?
|
96
|
+
@skills.each do |_, skill|
|
97
|
+
return true if skill.experience > 0 && skill.member?
|
98
|
+
end
|
99
|
+
false
|
100
|
+
end
|
101
|
+
|
102
|
+
##
|
103
|
+
# Determines if this Player is a F2P Player
|
104
|
+
#
|
105
|
+
# This method dermines that a Player is F2P if they do not
|
106
|
+
# have any experience in their member's only skills.
|
107
|
+
#
|
108
|
+
# @example For a player with no experience in a member's only skill
|
109
|
+
# f2p = OldSchool::Player.new 'f2p'
|
110
|
+
# f2p.free? #=> true
|
111
|
+
# @example For a Player with experience in a member's only skill
|
112
|
+
# member = OldSchool::Player.new 'member'
|
113
|
+
# member.free? #=> false
|
114
|
+
#
|
115
|
+
# @note This method is the inverse of #member?
|
116
|
+
# @see #member?
|
117
|
+
#
|
118
|
+
# @return [true] if this Player has no experience in any member only skill
|
119
|
+
# @return [false] if this Player has experience in any member only skill
|
120
|
+
def free?
|
121
|
+
!member?
|
122
|
+
end
|
123
|
+
|
124
|
+
##
|
125
|
+
# An alias for #free?
|
126
|
+
# @see #free?
|
127
|
+
def nonmember?
|
128
|
+
free?
|
129
|
+
end
|
130
|
+
|
131
|
+
##
|
132
|
+
# Determines if this Player is a skiller
|
133
|
+
#
|
134
|
+
# This method determines that a Player is a skiller by
|
135
|
+
# ensuring that the player has no combat-oriented skills
|
136
|
+
# over the level of 1 (with the exception of 10 hitpoints).
|
137
|
+
#
|
138
|
+
# @example For a level 3 skiller
|
139
|
+
# skiller = OldSchool::Player.new 'skiller'
|
140
|
+
# skiller.skiller? #=> true
|
141
|
+
# @example For a Player who has > 1 in any combat skill
|
142
|
+
# main = OldSchool::Player.new 'main'
|
143
|
+
# main.skiller? #=> false
|
144
|
+
#
|
145
|
+
# @return [true] if the player is classified as a skiller
|
146
|
+
# @return [false] if the player is not classified as a skiller
|
147
|
+
def skiller?
|
148
|
+
skiller = true
|
149
|
+
@skills.each do |_, skill|
|
150
|
+
next if skill.symbol == :hitpoints && skill.level <= 10
|
151
|
+
|
152
|
+
skiller = false if skill.combat? && skill.level > 1
|
153
|
+
end
|
154
|
+
skiller
|
155
|
+
end
|
156
|
+
|
157
|
+
##
|
158
|
+
# Determines if this player is not a skiller
|
159
|
+
#
|
160
|
+
# @example For a level 3 skiller
|
161
|
+
# skiller = OldSchool::Player.new 'skiller'
|
162
|
+
# skiller.nonskiller? #=> false
|
163
|
+
# @example For a Player who has > 1 in any combat skill
|
164
|
+
# main = OldSchool::Player.new 'main'
|
165
|
+
# main.nonskiller? #=> true
|
166
|
+
#
|
167
|
+
# @note This is the inverse of #skiller?
|
168
|
+
# @see #skiller?
|
169
|
+
#
|
170
|
+
# @return [true] if the player is not classified as a skiller
|
171
|
+
# @return [false] if the player is classified as a skiller
|
172
|
+
def nonskiller?
|
173
|
+
!skiller?
|
174
|
+
end
|
175
|
+
|
176
|
+
private
|
177
|
+
|
178
|
+
def open_and_read(url)
|
179
|
+
open(url, &:read)
|
180
|
+
end
|
181
|
+
|
182
|
+
def csv_data
|
183
|
+
mode = HiScores::MODES[@mode]
|
184
|
+
resource = HiScores::RESOURCE[:stats] + @username
|
185
|
+
url = mode + resource
|
186
|
+
|
187
|
+
@csv = CSV.parse(open_and_read(url)).map { |r| r.map(&:to_i) }
|
188
|
+
end
|
189
|
+
|
190
|
+
def generate_hs_stats
|
191
|
+
csv_data if @csv.nil?
|
192
|
+
|
193
|
+
generate_skills
|
194
|
+
generate_minigames
|
195
|
+
end
|
196
|
+
|
197
|
+
def generate_skills
|
198
|
+
@skills = {}
|
199
|
+
skills_arr = HiScores::SKILLS
|
200
|
+
|
201
|
+
@csv.each_with_index do |row, i|
|
202
|
+
break if i >= HiScores::SKILLS.length
|
203
|
+
|
204
|
+
@skills[HiScores::SKILLS[i]] = HiScores::Skill.new(
|
205
|
+
skills_arr[i], row[0], row[1], row[2]
|
206
|
+
)
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
def generate_minigames
|
211
|
+
@minigames = {}
|
212
|
+
minigames_arr = HiScores::MINIGAMES
|
213
|
+
range = @skills.length..@skills.length + HiScores::MINIGAMES.length - 1
|
214
|
+
|
215
|
+
range.each_with_index do |val, i|
|
216
|
+
@minigames[HiScores::MINIGAMES[i]] = HiScores::Minigame.new(
|
217
|
+
minigames_arr[i], @csv[val][0], @csv[val][1]
|
218
|
+
)
|
219
|
+
end
|
220
|
+
end
|
221
|
+
end
|
222
|
+
end
|
data/lib/runescape.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
-
##
|
2
|
-
# A Ruby Gem that provides useful methods for RuneScape related applications.
|
3
|
-
#
|
4
|
-
# @author Marcello Sabino <marcello.github@gmail.com>
|
5
|
-
module Runescape
|
6
|
-
|
1
|
+
##
|
2
|
+
# A Ruby Gem that provides useful methods for RuneScape related applications.
|
3
|
+
#
|
4
|
+
# @author Marcello Sabino <marcello.github@gmail.com>
|
5
|
+
module Runescape
|
6
|
+
VERSION = '0.0.1'.freeze
|
7
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: runescape
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Marcello Sabino
|
7
|
+
- Marcello A. Sabino
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A Ruby Gem that provides useful methods for RuneScape related applications.
|
14
14
|
email: marcello.github@gmail.com
|
@@ -16,6 +16,11 @@ executables: []
|
|
16
16
|
extensions: []
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
|
+
- README.md
|
20
|
+
- lib/oldschool/hiscores/hiscores.rb
|
21
|
+
- lib/oldschool/hiscores/minigame.rb
|
22
|
+
- lib/oldschool/hiscores/skill.rb
|
23
|
+
- lib/oldschool/player.rb
|
19
24
|
- lib/runescape.rb
|
20
25
|
homepage: https://github.com/marcellosabino/runescape
|
21
26
|
licenses:
|
@@ -29,16 +34,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
29
34
|
requirements:
|
30
35
|
- - ">="
|
31
36
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
37
|
+
version: 2.2.0
|
33
38
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
34
39
|
requirements:
|
35
40
|
- - ">="
|
36
41
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
42
|
+
version: 1.8.11
|
38
43
|
requirements: []
|
39
44
|
rubyforge_project:
|
40
45
|
rubygems_version: 2.7.6
|
41
46
|
signing_key:
|
42
47
|
specification_version: 4
|
43
|
-
summary: A Ruby Gem that provides useful methods for RuneScape
|
48
|
+
summary: A Ruby Gem that provides useful methods for RuneScape related applications
|
44
49
|
test_files: []
|