binarybeast 0.0.2.pre → 0.1.3.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +57 -8
- data/lib/binarybeast.rb +26 -198
- data/lib/binarybeast/team.rb +4 -0
- data/lib/binarybeast/tourney.rb +238 -0
- data/lib/binarybeast/version.rb +1 -1
- data/spec/binarybeast_spec.rb +4 -1
- data/spec/team_spec.rb +6 -0
- data/spec/tourney_spec.rb +20 -13
- metadata +6 -2
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Binarybeast
|
2
2
|
|
3
|
-
|
3
|
+
This is a Ruby Gem to access the BinaryBeast.com API. It was extracted from the [Gamkoi.com](http://www.gamkoi.com) Source Code and was written by Crispin Schäffler
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -18,12 +18,61 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
21
|
+
@tourney = Binarybeast::Tourney.new
|
22
22
|
|
23
|
-
|
23
|
+
there are several options you can use when creating a tourney:
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
25
|
+
:title => String
|
26
|
+
:description => String
|
27
|
+
:public => Integer
|
28
|
+
:gamecode => String
|
29
|
+
:typeid => Integer
|
30
|
+
:elimination => Integer
|
31
|
+
:teammode => Integer
|
32
|
+
:groupcount => Integer
|
33
|
+
:teamsfromgroup => Integer
|
34
|
+
:location => String
|
35
|
+
:maxteams => Integer
|
36
|
+
:replayuploads => Integer
|
37
|
+
:replaydownloads => Integer
|
38
|
+
:autostart => Integer
|
39
|
+
:returndata => Integer
|
40
|
+
|
41
|
+
however, only :title => String is required or :tourneyid => String if you want to load an existing tournament.
|
42
|
+
|
43
|
+
## Create a new Tournament on BinaryBeast
|
44
|
+
|
45
|
+
@tourney = Binarybeast::Tourney.new(:title => "Test Tournament", :description => "This comes from a ruby gem accessing your api.")
|
46
|
+
@tourney.create
|
47
|
+
|
48
|
+
## Fetching a existing Tournament from BinaryBeast
|
49
|
+
|
50
|
+
@tourney = Binarybeast::Tourney.new(:tourneyid => "xSC21212194")
|
51
|
+
@tourney.load
|
52
|
+
|
53
|
+
## Current implemented Functions
|
54
|
+
|
55
|
+
This is a pre release of the gem soon to be. Current functions include
|
56
|
+
|
57
|
+
.new
|
58
|
+
.create
|
59
|
+
.update
|
60
|
+
.load
|
61
|
+
.delete
|
62
|
+
.setBuild
|
63
|
+
.setConfirmation
|
64
|
+
.start
|
65
|
+
|
66
|
+
more to come soon....
|
67
|
+
|
68
|
+
## Some stuff you should know
|
69
|
+
|
70
|
+
The BinaryBeast API sends back JSON from every request. However, if you use this gem we catch the JSON Data and proccess it. If you want to have a direct access to the API you can go with something like this:
|
71
|
+
|
72
|
+
@tourney = Binarybeast::Tourney.new(:title => "Test")
|
73
|
+
response = @tourney.create(:force => true)
|
74
|
+
|
75
|
+
the :force => true tells the function to give you the callback from the binarybeast directly. The response is now a parsed hash, so this will work
|
76
|
+
|
77
|
+
response["Result"]
|
78
|
+
=> 200
|
data/lib/binarybeast.rb
CHANGED
@@ -1,14 +1,11 @@
|
|
1
1
|
require "HTTParty"
|
2
|
-
Dir[File.dirname(__FILE__) + '/binarybeast/*.rb'].each do |file|
|
3
|
-
require file
|
4
|
-
end
|
5
2
|
|
6
3
|
# Binarybeast
|
7
4
|
# Module
|
8
5
|
# ---------------------
|
9
|
-
# has 1 variable called
|
6
|
+
# has 1 variable called api_key, this is your api_key. the default is the api_key from gamkoi.com
|
10
7
|
# Example
|
11
|
-
# Binarybeast.
|
8
|
+
# Binarybeast.api_key = "12345"
|
12
9
|
# => "12345"
|
13
10
|
# ---------------------
|
14
11
|
# does contain all the classes that interact with binarybeast api.
|
@@ -19,204 +16,35 @@ module Binarybeast
|
|
19
16
|
base_uri 'https://binarybeast.com/api'
|
20
17
|
# Set HTTParty standard format to JSON, its standard what binarybeast api returns.
|
21
18
|
format :json
|
22
|
-
# Default
|
23
|
-
@@
|
19
|
+
# Default api_key, this one is taken from my personal account.
|
20
|
+
@@api_key = "3c8955130c6e1406420d6202649651fe.50c9faa593f9c6.00530099"
|
24
21
|
|
25
|
-
#
|
26
|
-
|
27
|
-
|
22
|
+
# Autoload Tourney Class when needed
|
23
|
+
autoload :Tourney, 'binarybeast/tourney'
|
24
|
+
# Autoload Team Class when needed
|
25
|
+
autoload :Team, 'binarybeast/team'
|
26
|
+
|
27
|
+
# Getter for api_key Variable
|
28
|
+
def self.api_key
|
29
|
+
@@api_key
|
28
30
|
end
|
29
31
|
|
30
|
-
# Setter for
|
31
|
-
def self.
|
32
|
-
@@
|
33
|
-
end
|
34
|
-
|
35
|
-
# Tourney
|
36
|
-
# Class
|
37
|
-
# ---------------
|
38
|
-
# This is the Tourney class. It will be used to most. It gives you a brand new Tourney object to call methods on.
|
39
|
-
# Example:
|
40
|
-
# tourney = Binarybeast::Tourney.new("Gamkoi Test")
|
41
|
-
# ---------------
|
42
|
-
# gives you a tourney object
|
43
|
-
|
44
|
-
class Tourney
|
45
|
-
include HTTParty
|
46
|
-
base_uri 'https://binarybeast.com/api'
|
47
|
-
format :json
|
48
|
-
attr_accessor :apikey, :tourneyid, :title, :publish, :gamecode, :typeid, :elimination, :teammode, :groupcount, :teamsfromgroup, :datestart, :location, :maxteams, :replayuploads, :replaydownloads, :description, :returndata
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
# Constructor
|
53
|
-
# Method
|
54
|
-
# ----------------
|
55
|
-
# all tourney attributes can be given here. The Name parameter is needed, all else is optional.
|
56
|
-
# Example:
|
57
|
-
# Tourney.new(:title => "Gamkoi DevCup")
|
58
|
-
# ----------------
|
59
|
-
|
60
|
-
def initialize(options={:title => "Gamkoi DevTest"})
|
61
|
-
self.tourneyid = options[:tourneyid] if options[:tourneyid]
|
62
|
-
options[:title] ? self.title = options[:title] : self.title = "Test"
|
63
|
-
options[:public] ? self.publish = options[:public] : self.publish = 0
|
64
|
-
options[:gamecode] ? self.gamecode = options[:gamecode] : self.gamecode = ""
|
65
|
-
options[:typeid] ? self.typeid = options[:typeid] : self.typeid = 0
|
66
|
-
options[:elimination] ? self.elimination = options[:elimination] : self.elimination = 1
|
67
|
-
options[:teammode] ? self.teammode = options[:teammode] : self.teammode = 1
|
68
|
-
options[:groupcount] ? self.groupcount = options[:groupcount] : self.groupcount = 1
|
69
|
-
options[:teamsfromgroup] ? self.teamsfromgroup = options[:teamsfromgroup] : self.teamsfromgroup = 2
|
70
|
-
options[:datestart] ? self.datestart = options[:datestart] : self.datestart = nil
|
71
|
-
options[:location] ? self.location = options[:location] : self.location = ""
|
72
|
-
options[:maxteams] ? self.maxteams = options[:maxteams] : self.maxteams = 16
|
73
|
-
options[:replayuploads] ? self.replayuploads = options[:replayuploads] : self.replayuploads = 1
|
74
|
-
options[:replaydownloads] ? self.replaydownloads = options[:replaydownloads] : self.replaydownloads = 1
|
75
|
-
options[:description] ? self.description = options[:description] : self.description = ""
|
76
|
-
options[:returndata] ? self.returndata = options[:returndata] : self.returndata = 0
|
77
|
-
options[:apikey] ? self.apikey = options[:apikey] : self.apikey = Binarybeast.apikey
|
78
|
-
end
|
79
|
-
|
80
|
-
|
81
|
-
# Update
|
82
|
-
# Method
|
83
|
-
# ----------------
|
84
|
-
# Pushes the attributes from the object to the binarybeast api. Pushes updates from object to Binarybeast
|
85
|
-
# Example:
|
86
|
-
# @tourney = Binarybeast::Tourney.new(:title => "lol")
|
87
|
-
# @tourney.update
|
88
|
-
# ----------------
|
89
|
-
|
90
|
-
def update(options={:force => false})
|
91
|
-
response = self.class.get("", :query => {:TourneyID => self.tourneyid, :APIKey => self.apikey, :APIService => "Tourney.TourneyUpdate.Settings",
|
92
|
-
:Title => self.title, :Public => self.publish, :GameCode => self.gamecode,
|
93
|
-
:TypeID => self.typeid, :Elimination => self.elimination,
|
94
|
-
:TeamMode => self.teammode, :GroupCount => self.groupcount,
|
95
|
-
:TeamsFromGroup => self.teamsfromgroup, :DateStart => self.datestart,
|
96
|
-
:Location => self.location, :MaxTeams => self.maxteams, :ReplayUploads => self.replayuploads,
|
97
|
-
:ReplayDownloads => self.replaydownloads, :Description => self.description, :ReturnData => self.returndata})
|
98
|
-
options[:force] ? response : response["Result"] == 200 ? true : false
|
99
|
-
end
|
100
|
-
|
101
|
-
# Create
|
102
|
-
# Method
|
103
|
-
# ----------------
|
104
|
-
# Creates the tournament object at binarybeast. You want to call this once after setting up your local Tourney object.
|
105
|
-
# Example:
|
106
|
-
# @tourney = Binarybeast::Tourny.new
|
107
|
-
# @tourney.title = "Blabla"
|
108
|
-
# @tourney.description = "Changing some attributes locally..."
|
109
|
-
# @tourney.create
|
110
|
-
# ----------------
|
111
|
-
|
112
|
-
def create(options={:force => false})
|
113
|
-
response = self.class.get("", :query => {:APIKey => self.apikey, :APIService => "Tourney.TourneyCreate.Create",
|
114
|
-
:Title => self.title, :Public => self.publish, :GameCode => self.gamecode,
|
115
|
-
:TypeID => self.typeid, :Elimination => self.elimination,
|
116
|
-
:TeamMode => self.teammode, :GroupCount => self.groupcount,
|
117
|
-
:TeamsFromGroup => self.teamsfromgroup, :DateStart => self.datestart,
|
118
|
-
:Location => self.location, :MaxTeams => self.maxteams, :ReplayUploads => self.replayuploads,
|
119
|
-
:ReplayDownloads => self.replaydownloads, :Description => self.description, :ReturnData => self.returndata})
|
120
|
-
self.tourneyid = response["TourneyID"] if response["Result"] == 200
|
121
|
-
options[:force] ? response : response["Result"] == 200 ? true : false
|
122
|
-
end
|
123
|
-
|
124
|
-
# Delete
|
125
|
-
# Method
|
126
|
-
# ----------------
|
127
|
-
# Deletes the tourney object from binarybeast. Does not delete the tourney object itself locally.
|
128
|
-
# Example:
|
129
|
-
# @tourney = Binarybeast::Tourney.new(:title => "Test")
|
130
|
-
# @tourney.create
|
131
|
-
# @tourney.delete
|
132
|
-
# ----------------
|
133
|
-
|
134
|
-
def delete(options={:force => false})
|
135
|
-
response = self.class.get("", :query => {:APIKey => self.apikey, :APIService => "Tourney.TourneyDelete.Delete", :TourneyID => self.tourneyid})
|
136
|
-
options[:force] ? response : response["Result"] == 200 ? true : false
|
137
|
-
end
|
138
|
-
|
139
|
-
# Start
|
140
|
-
# Method
|
141
|
-
# ----------------
|
142
|
-
# Starts the object tourney on binarybeast.
|
143
|
-
# Example:
|
144
|
-
# @tourney = Binarybeast::Tourney.new(:title => "test")
|
145
|
-
# @tourney.create
|
146
|
-
# @tourney.start
|
147
|
-
# ----------------
|
148
|
-
|
149
|
-
def start(options={:force => false})
|
150
|
-
options[:force] ? force = true : force = false
|
151
|
-
options[:seeding] ? seeding = options[:seeding] : seeding = "random"
|
152
|
-
options[:teams] ? teams = options[:teams] : teams = nil
|
153
|
-
response = self.class.get("", :query => {:APIKey => self.apikey, :APIService => "Tourney.TourneyStart.Start", :Seeding => seeding, :Teams => teams})
|
154
|
-
options[:force] ? response : response["Result"] == 200 ? true : false
|
155
|
-
end
|
156
|
-
|
157
|
-
# Load
|
158
|
-
# Method
|
159
|
-
# ----------------
|
160
|
-
# Loads the information of a binarybeast tourney and saving it in the object. Pulling information - inverse of update
|
161
|
-
# Example:
|
162
|
-
# @tourney = Binarybeast::Tourney.new(:tourneyid => "xSC21212194")
|
163
|
-
# @tourney.load
|
164
|
-
# ----------------
|
165
|
-
|
166
|
-
def load(options={:force => false})
|
167
|
-
response = self.class.get("", :query => {:APIKey => self.apikey, :APIService => "Tourney.TourneyLoad.Info", :TourneyID => self.tourneyid})
|
168
|
-
return response if options[:force]
|
169
|
-
if response["Result"] == 200
|
170
|
-
self.title = response["TourneyInfo"]["Title"]
|
171
|
-
self.publish = response["TourneyInfo"]["Public"]
|
172
|
-
self.gamecode = response["TourneyInfo"]["GameCode"]
|
173
|
-
self.typeid = response["TourneyInfo"]["TypeID"]
|
174
|
-
self.elimination = response["TourneyInfo"]["Elimination"]
|
175
|
-
self.teammode = response["TourneyInfo"]["TeamMode"]
|
176
|
-
self.groupcount = response["TourneyInfo"]["GroupCount"]
|
177
|
-
self.teamsfromgroup = response["TourneyInfo"]["TeamsFromGroup"]
|
178
|
-
self.datestart = response["TourneyInfo"]["DateStart"]
|
179
|
-
self.location = response["TourneyInfo"]["Location"]
|
180
|
-
self.maxteams = response["TourneyInfo"]["MaxTeams"]
|
181
|
-
self.replayuploads = response["TourneyInfo"]["ReplayUploads"]
|
182
|
-
self.replaydownloads = response["TourneyInfo"]["ReplayDownloads"]
|
183
|
-
self.description = response["TourneyInfo"]["Description"]
|
184
|
-
self.returndata = response["TourneyInfo"]["ReturnData"]
|
185
|
-
return true
|
186
|
-
else
|
187
|
-
return false
|
188
|
-
end
|
189
|
-
end
|
190
|
-
|
191
|
-
# setBuilding
|
192
|
-
# Method
|
193
|
-
# ----------------
|
194
|
-
# Sets the status of the tourney correlating to the object to: Status: Building
|
195
|
-
# Example:
|
196
|
-
# @tourney = Binarybeast::Tourney.new
|
197
|
-
# @tourney.setBuilding
|
198
|
-
# ----------------
|
199
|
-
|
200
|
-
def setBuilding(options={:force => false})
|
201
|
-
response = self.class.get("", :query => {:APIKey => self.apikey, :APIService => "Tourney.TourneySetStatus.Building", :TourneyID => self.tourneyid})
|
202
|
-
options[:force] ? response : response["Result"] == 200 ? true : false
|
203
|
-
end
|
204
|
-
|
205
|
-
# setConfirmation
|
206
|
-
# Method
|
207
|
-
# ----------------
|
208
|
-
# Sets the status of the tourney correlating to the object to: Status: Confirmation
|
209
|
-
# Example:
|
210
|
-
# @tourney = Binarybeast::Tourney.new
|
211
|
-
# @tourney.setConfirmation
|
212
|
-
# ----------------
|
32
|
+
# Setter for api_key Variable
|
33
|
+
def self.api_key=(api_key)
|
34
|
+
@@api_key=api_key
|
35
|
+
end
|
213
36
|
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
37
|
+
# Call
|
38
|
+
# Method
|
39
|
+
# ------------
|
40
|
+
# Raw Call Method for those who want to make raw calls on the API of Binarybeast. APIKey will be taken from the module variable
|
41
|
+
# Example:
|
42
|
+
# tourney = Binarybeast.call(:APIService => "Tourney.TourneyCreate.Create", :title => "Test")
|
43
|
+
# ------------
|
218
44
|
|
45
|
+
def self.call(options={})
|
46
|
+
options.merge!({:APIKey => @@api_key})
|
47
|
+
return self.get("", :query => options)
|
219
48
|
end
|
220
|
-
# END Class Tourney
|
221
49
|
|
222
50
|
end
|
@@ -0,0 +1,238 @@
|
|
1
|
+
module Binarybeast
|
2
|
+
# Tourney
|
3
|
+
# Class
|
4
|
+
# ---------------
|
5
|
+
# This is the Tourney class. It will be used to most. It gives you a brand new Tourney object to call methods on.
|
6
|
+
# Example:
|
7
|
+
# tourney = Binarybeast::Tourney.new("Gamkoi Test")
|
8
|
+
# ---------------
|
9
|
+
# gives you a tourney object
|
10
|
+
|
11
|
+
class Tourney
|
12
|
+
include HTTParty
|
13
|
+
base_uri 'https://binarybeast.com/api'
|
14
|
+
format :json
|
15
|
+
attr_accessor :api_key, :id, :title, :publish, :game_code, :type_id, :elimination, :team_mode, :group_count, :teams_from_group, :date_start, :location, :max_teams, :replay_uploads, :replay_downloads, :description, :return_data
|
16
|
+
|
17
|
+
# Tourney Eigenclass
|
18
|
+
# Eigenclass
|
19
|
+
# ----------------
|
20
|
+
# provides some functionality in order to allow certain things before creating a tourney.
|
21
|
+
# ----------------
|
22
|
+
|
23
|
+
class << self
|
24
|
+
include HTTParty
|
25
|
+
format :json
|
26
|
+
|
27
|
+
# Load
|
28
|
+
# Method
|
29
|
+
# ----------------
|
30
|
+
# Loads a tourney from binarybeast and returns an tourney object.
|
31
|
+
# Example:
|
32
|
+
# @tourney = Binarybest::Tourney.load(:id => "xSC21212194")
|
33
|
+
# ----------------
|
34
|
+
|
35
|
+
def load(options={:force => false})
|
36
|
+
options[:id] ? id = options[:id] : id = "xSC21212194"
|
37
|
+
options[:force] ? force = options[:force] : force = false
|
38
|
+
response = self.get('https://binarybeast.com/api', :query => {:APIKey => Binarybeast.api_key, :APIService => "Tourney.TourneyLoad.Info", :TourneyID => id})
|
39
|
+
if response["Result"] == 200
|
40
|
+
return response if force
|
41
|
+
tourney = Binarybeast::Tourney.new( :id => id,
|
42
|
+
:title => response["TourneyInfo"]["Title"],
|
43
|
+
:publish => response["TourneyInfo"]["Public"],
|
44
|
+
:game_code => response["TourneyInfo"]["GameCode"],
|
45
|
+
:type_id => response["TourneyInfo"]["TypeID"],
|
46
|
+
:elimination => response["TourneyInfo"]["Elimination"],
|
47
|
+
:team_mode => response["TourneyInfo"]["TeamMode"],
|
48
|
+
:group_count => response["TourneyInfo"]["GroupCount"],
|
49
|
+
:teams_from_group => response["TourneyInfo"]["TeamsFromGroup"],
|
50
|
+
:date_start => response["TourneyInfo"]["DateStart"],
|
51
|
+
:location => response["TourneyInfo"]["Location"],
|
52
|
+
:max_teams => response["TourneyInfo"]["MaxTeams"],
|
53
|
+
:replay_uploads => response["TourneyInfo"]["ReplayUploads"],
|
54
|
+
:replay_downloads => response["TourneyInfo"]["ReplayDownloads"],
|
55
|
+
:description => response["TourneyInfo"]["Description"],
|
56
|
+
:return_data => response["TourneyInfo"]["ReturnData"],
|
57
|
+
:api_key => Binarybeast.api_key)
|
58
|
+
return tourney
|
59
|
+
else
|
60
|
+
return false
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# END EIGENCLASS
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
# Constructor
|
70
|
+
# Method
|
71
|
+
# ----------------
|
72
|
+
# all tourney attributes can be given here. The title parameter is needed, all else is optional.
|
73
|
+
# Example:
|
74
|
+
# Binarybeast::Tourney.new(:title => "Gamkoi DevCup")
|
75
|
+
# ----------------
|
76
|
+
|
77
|
+
def initialize(options={:title => "Gamkoi DevTest"})
|
78
|
+
self.id = options[:id] if options[:id]
|
79
|
+
options[:title] ? self.title = options[:title] : self.title = "Test"
|
80
|
+
options[:public] ? self.publish = options[:public] : self.publish = 0
|
81
|
+
options[:game_code] ? self.game_code = options[:game_code] : self.game_code = ""
|
82
|
+
options[:type_id] ? self.type_id = options[:type_id] : self.type_id = 0
|
83
|
+
options[:elimination] ? self.elimination = options[:elimination] : self.elimination = 1
|
84
|
+
options[:team_mode] ? self.team_mode = options[:team_mode] : self.team_mode = 1
|
85
|
+
options[:group_count] ? self.group_count = options[:group_count] : self.group_count = 1
|
86
|
+
options[:teams_from_group] ? self.teams_from_group = options[:teams_from_group] : self.teams_from_group = 2
|
87
|
+
options[:date_start] ? self.date_start = options[:date_start] : self.date_start = nil
|
88
|
+
options[:location] ? self.location = options[:location] : self.location = ""
|
89
|
+
options[:max_teams] ? self.max_teams = options[:max_teams] : self.max_teams = 16
|
90
|
+
options[:replay_uploads] ? self.replay_uploads = options[:replay_uploads] : self.replay_uploads = 1
|
91
|
+
options[:replay_downloads] ? self.replay_downloads = options[:replay_downloads] : self.replay_downloads = 1
|
92
|
+
options[:description] ? self.description = options[:description] : self.description = ""
|
93
|
+
options[:return_data] ? self.return_data = options[:return_data] : self.return_data = 0
|
94
|
+
options[:api_key] ? self.api_key = options[:api_key] : self.api_key = Binarybeast.api_key
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
# Update
|
99
|
+
# Method
|
100
|
+
# ----------------
|
101
|
+
# Pushes the attributes from the object to the binarybeast api. Pushes updates from object to Binarybeast
|
102
|
+
# Example:
|
103
|
+
# @tourney = Binarybeast::Tourney.new(:title => "lol")
|
104
|
+
# @tourney.update
|
105
|
+
# ----------------
|
106
|
+
|
107
|
+
def update(options={:force => false})
|
108
|
+
response = self.class.get("", :query => {:id => self.id, :APIKey => self.api_key, :APIService => "Tourney.TourneyUpdate.Settings",
|
109
|
+
:Title => self.title, :Public => self.publish, :game_code => self.game_code,
|
110
|
+
:type_id => self.type_id, :Elimination => self.elimination,
|
111
|
+
:team_mode => self.team_mode, :group_count => self.group_count,
|
112
|
+
:teams_from_group => self.teams_from_group, :date_start => self.date_start,
|
113
|
+
:Location => self.location, :max_teams => self.max_teams, :replay_uploads => self.replay_uploads,
|
114
|
+
:replay_downloads => self.replay_downloads, :Description => self.description, :return_data => self.return_data})
|
115
|
+
options[:force] ? response : response["Result"] == 200 ? true : false
|
116
|
+
end
|
117
|
+
|
118
|
+
# Create
|
119
|
+
# Method
|
120
|
+
# ----------------
|
121
|
+
# Creates the tournament object at binarybeast. You want to call this once after setting up your local Tourney object.
|
122
|
+
# Example:
|
123
|
+
# @tourney = Binarybeast::Tourny.new
|
124
|
+
# @tourney.title = "Blabla"
|
125
|
+
# @tourney.description = "Changing some attributes locally..."
|
126
|
+
# @tourney.create
|
127
|
+
# ----------------
|
128
|
+
|
129
|
+
def create(options={:force => false})
|
130
|
+
response = self.class.get("", :query => {:APIKey => self.api_key, :APIService => "Tourney.TourneyCreate.Create",
|
131
|
+
:Title => self.title, :Public => self.publish, :GameCode => self.game_code,
|
132
|
+
:TypeID => self.type_id, :Elimination => self.elimination,
|
133
|
+
:TeamMode => self.team_mode, :GroupCount => self.group_count,
|
134
|
+
:TeamsFromGroup => self.teams_from_group, :DateStart => self.date_start,
|
135
|
+
:Location => self.location, :MaxTeams => self.max_teams, :ReplayUploads => self.replay_uploads,
|
136
|
+
:ReplayDownloads => self.replay_downloads, :Description => self.description, :ReturnData => self.return_data})
|
137
|
+
self.id = response["TourneyID"] if response["Result"] == 200
|
138
|
+
options[:force] ? response : response["Result"] == 200 ? true : false
|
139
|
+
end
|
140
|
+
|
141
|
+
# Delete
|
142
|
+
# Method
|
143
|
+
# ----------------
|
144
|
+
# Deletes the tourney object from binarybeast. Does not delete the tourney object itself locally.
|
145
|
+
# Example:
|
146
|
+
# @tourney = Binarybeast::Tourney.new(:title => "Test")
|
147
|
+
# @tourney.create
|
148
|
+
# @tourney.delete
|
149
|
+
# ----------------
|
150
|
+
|
151
|
+
def delete(options={:force => false})
|
152
|
+
response = self.class.get("", :query => {:APIKey => self.api_key, :APIService => "Tourney.TourneyDelete.Delete", :TourneyID => self.id})
|
153
|
+
options[:force] ? response : response["Result"] == 200 ? true : false
|
154
|
+
end
|
155
|
+
|
156
|
+
# Start
|
157
|
+
# Method
|
158
|
+
# ----------------
|
159
|
+
# Starts the object tourney on binarybeast.
|
160
|
+
# Example:
|
161
|
+
# @tourney = Binarybeast::Tourney.new(:title => "test")
|
162
|
+
# @tourney.create
|
163
|
+
# @tourney.start
|
164
|
+
# ----------------
|
165
|
+
|
166
|
+
def start(options={:force => false})
|
167
|
+
options[:force] ? force = true : force = false
|
168
|
+
options[:seeding] ? seeding = options[:seeding] : seeding = "random"
|
169
|
+
options[:teams] ? teams = options[:teams] : teams = nil
|
170
|
+
response = self.class.get("", :query => {:APIKey => self.api_key, :APIService => "Tourney.TourneyStart.Start", :Seeding => seeding, :Teams => teams, :TourneyID => self.id})
|
171
|
+
options[:force] ? response : response["Result"] == 200 ? true : false
|
172
|
+
end
|
173
|
+
|
174
|
+
# Load
|
175
|
+
# Method
|
176
|
+
# ----------------
|
177
|
+
# Loads the information of a binarybeast tourney and saving it in the object. Pulling information - inverse of update
|
178
|
+
# Example:
|
179
|
+
# @tourney = Binarybeast::Tourney.new(:id => "xSC21212194")
|
180
|
+
# @tourney.load
|
181
|
+
# ----------------
|
182
|
+
|
183
|
+
def load(options={:force => false})
|
184
|
+
response = self.class.get("", :query => {:APIKey => self.api_key, :APIService => "Tourney.TourneyLoad.Info", :TourneyID => self.id})
|
185
|
+
return response if options[:force]
|
186
|
+
if response["Result"] == 200
|
187
|
+
self.title = response["TourneyInfo"]["Title"]
|
188
|
+
self.publish = response["TourneyInfo"]["Public"]
|
189
|
+
self.game_code = response["TourneyInfo"]["GameCode"]
|
190
|
+
self.type_id = response["TourneyInfo"]["TypeID"]
|
191
|
+
self.elimination = response["TourneyInfo"]["Elimination"]
|
192
|
+
self.team_mode = response["TourneyInfo"]["TeamMode"]
|
193
|
+
self.group_count = response["TourneyInfo"]["GroupCount"]
|
194
|
+
self.teams_from_group = response["TourneyInfo"]["TeamsFromGroup"]
|
195
|
+
self.date_start = response["TourneyInfo"]["DateStart"]
|
196
|
+
self.location = response["TourneyInfo"]["Location"]
|
197
|
+
self.max_teams = response["TourneyInfo"]["MaxTeams"]
|
198
|
+
self.replay_uploads = response["TourneyInfo"]["ReplayUploads"]
|
199
|
+
self.replay_downloads = response["TourneyInfo"]["ReplayDownloads"]
|
200
|
+
self.description = response["TourneyInfo"]["Description"]
|
201
|
+
self.return_data = response["TourneyInfo"]["ReturnData"]
|
202
|
+
return true
|
203
|
+
else
|
204
|
+
return false
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
# setBuilding
|
209
|
+
# Method
|
210
|
+
# ----------------
|
211
|
+
# Sets the status of the tourney correlating to the object to: Status: Building
|
212
|
+
# Example:
|
213
|
+
# @tourney = Binarybeast::Tourney.new
|
214
|
+
# @tourney.setBuilding
|
215
|
+
# ----------------
|
216
|
+
|
217
|
+
def setBuilding(options={:force => false})
|
218
|
+
response = self.class.get("", :query => {:APIKey => self.api_key, :APIService => "Tourney.TourneySetStatus.Building", :TourneyID => self.id})
|
219
|
+
options[:force] ? response : response["Result"] == 200 ? true : false
|
220
|
+
end
|
221
|
+
|
222
|
+
# setConfirmation
|
223
|
+
# Method
|
224
|
+
# ----------------
|
225
|
+
# Sets the status of the tourney correlating to the object to: Status: Confirmation
|
226
|
+
# Example:
|
227
|
+
# @tourney = Binarybeast::Tourney.new
|
228
|
+
# @tourney.setConfirmation
|
229
|
+
# ----------------
|
230
|
+
|
231
|
+
def setConfirmation(options={:force => false})
|
232
|
+
response = self.class.get("", :query => {:APIKey => self.api_key, :APIService => "Tourney.TourneySetStatus.Confirmation", :TourneyID => self.id})
|
233
|
+
options[:force] ? response : response["Result"] == 200 ? true : false
|
234
|
+
end
|
235
|
+
|
236
|
+
end
|
237
|
+
# END Class Tourney
|
238
|
+
end
|
data/lib/binarybeast/version.rb
CHANGED
data/spec/binarybeast_spec.rb
CHANGED
@@ -2,6 +2,9 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Binarybeast do
|
4
4
|
it "must have apikey variable" do
|
5
|
-
Binarybeast.
|
5
|
+
Binarybeast.api_key.should == "3c8955130c6e1406420d6202649651fe.50c9faa593f9c6.00530099"
|
6
|
+
end
|
7
|
+
it "should have a raw call method" do
|
8
|
+
Binarybeast.should respond_to(:call)
|
6
9
|
end
|
7
10
|
end
|
data/spec/team_spec.rb
ADDED
data/spec/tourney_spec.rb
CHANGED
@@ -4,6 +4,13 @@ describe Binarybeast::Tourney do
|
|
4
4
|
before :all do
|
5
5
|
@tourney = Binarybeast::Tourney.new(:title => "Gamkoi DevTest Ruby", :description => "This is a tourney created via the Gamkoi.com ruby gem.")
|
6
6
|
end
|
7
|
+
describe "load" do
|
8
|
+
it "should load from eigenclass" do
|
9
|
+
tourney = Binarybeast::Tourney.load(:id => "xSC21212194")
|
10
|
+
tourney.should be_an_instance_of Binarybeast::Tourney
|
11
|
+
tourney.title.should eq("Gamkoi Dev Dummy")
|
12
|
+
end
|
13
|
+
end
|
7
14
|
describe "new" do
|
8
15
|
it "takes one to all parameters and returns an tourney object" do
|
9
16
|
@tourney.should be_an_instance_of Binarybeast::Tourney
|
@@ -16,22 +23,22 @@ describe Binarybeast::Tourney do
|
|
16
23
|
end
|
17
24
|
it "should respond to all attributes" do
|
18
25
|
@tourney.should respond_to(:title)
|
19
|
-
@tourney.should respond_to(:
|
26
|
+
@tourney.should respond_to(:id)
|
20
27
|
@tourney.should respond_to(:publish)
|
21
|
-
@tourney.should respond_to(:
|
22
|
-
@tourney.should respond_to(:
|
28
|
+
@tourney.should respond_to(:game_code)
|
29
|
+
@tourney.should respond_to(:type_id)
|
23
30
|
@tourney.should respond_to(:elimination)
|
24
|
-
@tourney.should respond_to(:
|
25
|
-
@tourney.should respond_to(:
|
26
|
-
@tourney.should respond_to(:
|
27
|
-
@tourney.should respond_to(:
|
31
|
+
@tourney.should respond_to(:team_mode)
|
32
|
+
@tourney.should respond_to(:group_count)
|
33
|
+
@tourney.should respond_to(:teams_from_group)
|
34
|
+
@tourney.should respond_to(:date_start)
|
28
35
|
@tourney.should respond_to(:location)
|
29
|
-
@tourney.should respond_to(:
|
30
|
-
@tourney.should respond_to(:
|
31
|
-
@tourney.should respond_to(:
|
36
|
+
@tourney.should respond_to(:max_teams)
|
37
|
+
@tourney.should respond_to(:replay_uploads)
|
38
|
+
@tourney.should respond_to(:replay_downloads)
|
32
39
|
@tourney.should respond_to(:description)
|
33
|
-
@tourney.should respond_to(:
|
34
|
-
@tourney.should respond_to(:
|
40
|
+
@tourney.should respond_to(:return_data)
|
41
|
+
@tourney.should respond_to(:api_key)
|
35
42
|
end
|
36
43
|
end
|
37
44
|
describe "update" do
|
@@ -77,7 +84,7 @@ describe Binarybeast::Tourney do
|
|
77
84
|
@tourney.should respond_to(:load)
|
78
85
|
end
|
79
86
|
it "should load a tourney and set attributes" do
|
80
|
-
tourney = Binarybeast::Tourney.new(:
|
87
|
+
tourney = Binarybeast::Tourney.new(:id => "xSC21212194")
|
81
88
|
tourney.load
|
82
89
|
tourney.title.should eq("Gamkoi Dev Dummy")
|
83
90
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: binarybeast
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.3.pre
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -89,9 +89,12 @@ files:
|
|
89
89
|
- Rakefile
|
90
90
|
- binarybeast.gemspec
|
91
91
|
- lib/binarybeast.rb
|
92
|
+
- lib/binarybeast/team.rb
|
93
|
+
- lib/binarybeast/tourney.rb
|
92
94
|
- lib/binarybeast/version.rb
|
93
95
|
- spec/binarybeast_spec.rb
|
94
96
|
- spec/spec_helper.rb
|
97
|
+
- spec/team_spec.rb
|
95
98
|
- spec/tourney_spec.rb
|
96
99
|
homepage: ''
|
97
100
|
licenses: []
|
@@ -120,4 +123,5 @@ summary: Ruby gem to access the binary beast api.
|
|
120
123
|
test_files:
|
121
124
|
- spec/binarybeast_spec.rb
|
122
125
|
- spec/spec_helper.rb
|
126
|
+
- spec/team_spec.rb
|
123
127
|
- spec/tourney_spec.rb
|