rbglitch 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.
@@ -0,0 +1,27 @@
1
+ require 'rbglitch/achievements_api'
2
+ require 'rbglitch/auctions_api'
3
+ require 'rbglitch/auth_api'
4
+ require 'rbglitch/avatar_api'
5
+ require 'rbglitch/calendar_api'
6
+ require 'rbglitch/locations_api'
7
+ require 'rbglitch/players_api'
8
+ require 'rbglitch/skills_api'
9
+
10
+
11
+ # The glue holding everything together.
12
+ class GlitchAPI
13
+
14
+ attr_reader :achievements, :auctions, :auth, :avatar, :calendar, :locations
15
+ attr_reader :players, :skills
16
+
17
+ def initialize(player_token = '')
18
+ @achievements = RBGlitch::AchievementsAPI.new(player_token)
19
+ @auctions = RBGlitch::AuctionsAPI.new(player_token)
20
+ @auth = RBGlitch::AuthAPI.new(player_token)
21
+ @avatar = RBGlitch::AvatarAPI.new(player_token)
22
+ @calendar = RBGlitch::CalendarAPI.new(player_token)
23
+ @locations = RBGlitch::LocationsAPI.new(player_token)
24
+ @players = RBGlitch::PlayersAPI.new(player_token)
25
+ @skills = RBGlitch::SkillsAPI.new(player_token)
26
+ end
27
+ end
@@ -0,0 +1,20 @@
1
+ require 'rbglitch/base_api'
2
+
3
+ module RBGlitch
4
+ class AchievementsAPI < BaseAPI
5
+ def get_path(subpath)
6
+ return "/achievements.#{subpath}"
7
+ end
8
+
9
+ def list_all(page=1, per_page=10)
10
+ params = {
11
+ 'page' => page,
12
+ 'per_page' => per_page
13
+ }
14
+
15
+ send('listAll', params)
16
+ end
17
+
18
+ private :get_path
19
+ end
20
+ end
@@ -0,0 +1,35 @@
1
+ require 'rbglitch/base_api'
2
+
3
+ module RBGlitch
4
+ class AuctionsAPI < BaseAPI
5
+ def get_path(subpath)
6
+ return "/auctions.#{subpath}"
7
+ end
8
+
9
+ def list(category='', defs=0, page=1, per_page=10)
10
+ params = {
11
+ 'defs' => defs,
12
+ 'page' => page,
13
+ 'per_page' => per_page
14
+ }
15
+
16
+ unless category == ''
17
+ params['category'] = category
18
+ end
19
+
20
+ send('list', params)
21
+ end
22
+
23
+ def create(stack_tsid, count, cost)
24
+ params = {
25
+ 'stack_tsid' => stack_tsid,
26
+ 'count' => count,
27
+ 'cost' => cost,
28
+ 'oauth_token' => @player_token
29
+ }
30
+ send('create', params)
31
+ end
32
+
33
+ private :get_path
34
+ end
35
+ end
@@ -0,0 +1,19 @@
1
+ require 'rbglitch/base_api'
2
+
3
+ module RBGlitch
4
+ class AuthAPI < BaseAPI
5
+ def get_path(subpath)
6
+ return "/auth.#{subpath}"
7
+ end
8
+
9
+ def check(page=1, per_page=10)
10
+ params = {
11
+ 'oauth_token' => @player_token
12
+ }
13
+
14
+ send('check', params)
15
+ end
16
+
17
+ private :get_path
18
+ end
19
+ end
@@ -0,0 +1,18 @@
1
+ require 'rbglitch/base_api'
2
+
3
+ module RBGlitch
4
+ class AvatarAPI < BaseAPI
5
+ def get_path(subpath)
6
+ return "/avatar.#{subpath}"
7
+ end
8
+
9
+ def get_details
10
+ params = {
11
+ 'oauth_token' => @player_token
12
+ }
13
+ send('getDetails', params)
14
+ end
15
+
16
+ private :get_path
17
+ end
18
+ end
@@ -0,0 +1,37 @@
1
+ require 'json'
2
+ require 'net/http'
3
+
4
+ module RBGlitch
5
+ # The base class from which all the other API things extend.
6
+ class BaseAPI
7
+ def initialize(player_token = '')
8
+ @api_base = 'api.glitch.com'
9
+ @player_token = player_token
10
+ end
11
+
12
+ def get_path
13
+ end
14
+
15
+ # Build out a proper get request, with the parameters and everything.
16
+ def build_request(subpath, params)
17
+ subpath = "/simple" + get_path(subpath)
18
+ r = Net::HTTP::Get.new(subpath)
19
+ r.set_form_data(params)
20
+ # Fancy dancing cause Net::HTTP doesn't support native GET params. FFF.
21
+ r = Net::HTTP::Get.new(subpath + '?' + r.body)
22
+ return r
23
+ end
24
+
25
+ # Where most of the heavy lifting happens. Build the request based on the
26
+ # api call, then send it.
27
+ def send(subpath, params)
28
+ http = Net::HTTP.new(@api_base)
29
+ request = build_request(subpath, params)
30
+
31
+ response = http.request(request)
32
+ return JSON.parse(response.body)
33
+ end
34
+
35
+ private :build_request, :get_path, :send
36
+ end
37
+ end
@@ -0,0 +1,20 @@
1
+ require 'rbglitch/base_api'
2
+
3
+ module RBGlitch
4
+ class CalendarAPI < BaseAPI
5
+ def get_path(subpath)
6
+ return "/calendar.#{subpath}"
7
+ end
8
+
9
+ def get_holidays(page=1, per_page=10)
10
+ params = {
11
+ 'page' => page,
12
+ 'per_page' => per_page
13
+ }
14
+
15
+ send('getHolidays', params)
16
+ end
17
+
18
+ private :get_path
19
+ end
20
+ end
@@ -0,0 +1,30 @@
1
+ require 'rbglitch/base_api'
2
+
3
+ module RBGlitch
4
+ class LocationsAPI < BaseAPI
5
+ def get_path(subpath)
6
+ return "/locations.#{subpath}"
7
+ end
8
+
9
+ def get_hubs
10
+ params = {}
11
+ send('getHubs', params)
12
+ end
13
+
14
+ def get_streets(hub_id)
15
+ params = {
16
+ 'hub_id' => hub_id
17
+ }
18
+ send('getStreets', params)
19
+ end
20
+
21
+ def street_info(street_tsid)
22
+ params = {
23
+ 'street_tsid' => street_tsid
24
+ }
25
+ send('streetInfo', params)
26
+ end
27
+
28
+ private :get_path
29
+ end
30
+ end
@@ -0,0 +1,62 @@
1
+ require 'rbglitch/base_api'
2
+
3
+ module RBGlitch
4
+ class PlayersAPI < BaseAPI
5
+ def get_path(subpath)
6
+ return "/players.#{subpath}"
7
+ end
8
+
9
+ def full_info(player_tsid, viewer_tsid='')
10
+ params = {
11
+ 'player_tsid' => player_tsid
12
+ }
13
+ unless viewer_tsid == ''
14
+ params['viewer_tsid'] = viewer_tsid
15
+ end
16
+ send('fullInfo', params)
17
+ end
18
+
19
+ def get_animations(player_tsid)
20
+ params = {
21
+ 'player_tsid' => player_tsid
22
+ }
23
+ send('getAnimations', params)
24
+ end
25
+
26
+ def get_clothing(player_tsid)
27
+ params = {
28
+ 'player_tsid' => player_tsid
29
+ }
30
+ send('getClothing', params)
31
+ end
32
+
33
+ def info
34
+ params = {
35
+ 'oauth_token' => @player_token
36
+ }
37
+ send('info', params)
38
+ end
39
+
40
+ def inventory(defs = 0)
41
+ params = {
42
+ 'oauth_token' => @player_token
43
+ }
44
+ if defs == 1
45
+ params['defs'] = 1
46
+ end
47
+
48
+ send('inventory', params)
49
+ end
50
+
51
+ def stats
52
+ params = {
53
+ 'oauth_token' => @player_token
54
+ }
55
+ send('stats', params)
56
+ end
57
+
58
+
59
+
60
+ private :get_path
61
+ end
62
+ end
@@ -0,0 +1,57 @@
1
+ require 'rbglitch/base_api'
2
+
3
+ module RBGlitch
4
+ class SkillsAPI < BaseAPI
5
+ def get_path(subpath)
6
+ return "/skills.#{subpath}"
7
+ end
8
+
9
+ def get_info(skill_id, skill_class)
10
+ params = {
11
+ 'skill_id' => skill_id,
12
+ 'skill_class' => skill_class
13
+ }
14
+ send('getInfo', params)
15
+ end
16
+
17
+ def learn(skill_id, skill_class)
18
+ params = {
19
+ 'oauth_token' => @player_token,
20
+ 'skill_id' => skill_id,
21
+ 'skill_class' => skill_class
22
+ }
23
+ send('learn', params)
24
+ end
25
+
26
+ def list_all(page=1, per_page=10)
27
+ params = {
28
+ 'page' => page,
29
+ 'per_page' => per_page
30
+ }
31
+ send('listAll', params)
32
+ end
33
+
34
+ def list_available
35
+ params = {
36
+ 'oauth_token' => @player_token
37
+ }
38
+ send('listAvailable', params)
39
+ end
40
+
41
+ def list_learned
42
+ params = {
43
+ 'oauth_token' => @player_token
44
+ }
45
+ send('listLearned', params)
46
+ end
47
+
48
+ def list_learning
49
+ params = {
50
+ 'oauth_token' => @player_token
51
+ }
52
+ send('listLearning', params)
53
+ end
54
+
55
+ private :get_path
56
+ end
57
+ end
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rbglitch
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Alex Kuang
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-11-28 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json
16
+ requirement: &70274369404460 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70274369404460
25
+ description: ! " A thin ruby wrapper around the Glitch game API. This code is more
26
+ likely to be\n updated by me than pyglitch, since I'm more likely to be playing
27
+ around with it\n and maybe building a few random apps in my quest for Ruby proficiency.\n\n
28
+ \ API docs can be found here: http://developer.glitch.com/api/\n\n Check github
29
+ for more detailed docs.\n"
30
+ email:
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - lib/rbglitch/achievements_api.rb
36
+ - lib/rbglitch/auctions_api.rb
37
+ - lib/rbglitch/auth_api.rb
38
+ - lib/rbglitch/avatar_api.rb
39
+ - lib/rbglitch/base_api.rb
40
+ - lib/rbglitch/calendar_api.rb
41
+ - lib/rbglitch/locations_api.rb
42
+ - lib/rbglitch/players_api.rb
43
+ - lib/rbglitch/skills_api.rb
44
+ - lib/rbglitch.rb
45
+ homepage:
46
+ licenses: []
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ requirements: []
64
+ rubyforge_project:
65
+ rubygems_version: 1.8.10
66
+ signing_key:
67
+ specification_version: 3
68
+ summary: Ruby bindings for the Glitch game API
69
+ test_files: []