captainteemo 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "captainteemo"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "captainteemo"
7
+ s.version = LoL::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Ahmet Abdi"]
10
+ s.email = ["ahmetabdi@gmail.com"]
11
+ s.homepage = "http://rubygems.org/gems/captainteemo"
12
+ s.summary = %q{A Ruby wrapper for league of legends information, API from http://api.captainteemo.com/_docs/index.php}
13
+ s.description = %q{Wrapper for http://api.captainteemo.com/_docs/index.php}
14
+ s.rubyforge_project = "captainteemo"
15
+ s.files = [
16
+ "captainteemo.gemspec",
17
+ "lib/captainteemo.rb",
18
+ "lib/captainteemo/api.rb",
19
+ "lib/captainteemo/player.rb",
20
+ "lib/captainteemo/resource.rb",
21
+ "lib/captainteemo/search.rb"
22
+ ]
23
+ s.test_files = [ ]
24
+ s.require_paths = ["lib"]
25
+ s.add_dependency('httparty')
26
+ end
@@ -0,0 +1,17 @@
1
+ module LoL
2
+ class Api
3
+ include HTTParty
4
+ base_uri 'http://api.captainteemo.com/'
5
+ format :json
6
+ headers 'Accept' => 'application/json'
7
+
8
+ def self.config
9
+ @@config
10
+ end
11
+
12
+ def self.key(api_key)
13
+ @@config = { :api_key => api_key }
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,69 @@
1
+ module LoL
2
+ class Player < Resource
3
+ has_resource 'player', :plural => 'players'
4
+
5
+ @@fields = [
6
+ :accountId,
7
+ :summonerId,
8
+ :name,
9
+ :icon,
10
+ :internalName,
11
+ :level
12
+ ]
13
+
14
+ @@fields.each do |field|
15
+ attr_accessor field
16
+ end
17
+
18
+ #Returns observer metadata and information if
19
+ #String Summoner on String Platform is playing a valid game.
20
+ def self.ingame(platform, name, conditions={})
21
+ search = LoL::Search.new("/#{self.endpoints[:singular]}/#{platform.to_s}/#{name.to_s}/ingame")
22
+ search.fetch_resource
23
+ end
24
+
25
+ #Returns last 10 matches (order is random) for String Summoner on String Platform.
26
+ def self.recent_games(platform, name, conditions={})
27
+ search = LoL::Search.new("/#{self.endpoints[:singular]}/#{platform.to_s}/#{name.to_s}/recent_games")
28
+ search.fetch_resource
29
+ end
30
+
31
+ #Returns lifetime influence point gains for String Summoner on String Platform.
32
+ def self.influence_points(platform, name, conditions={})
33
+ search = LoL::Search.new("/#{self.endpoints[:singular]}/#{platform.to_s}/#{name.to_s}/influence_points")
34
+ search.fetch_resource['data']
35
+ end
36
+
37
+ #Returns runepages for String Summoner on String Platform.
38
+ def self.runes(platform, name, conditions={})
39
+ search = LoL::Search.new("/#{self.endpoints[:singular]}/#{platform.to_s}/#{name.to_s}/runes")
40
+ search.fetch_resource
41
+ end
42
+
43
+ #Returns mastery pages for String Summoner on String Platform.
44
+ def self.mastery(platform, name, conditions={})
45
+ search = LoL::Search.new("/#{self.endpoints[:singular]}/#{platform.to_s}/#{name.to_s}/mastery")
46
+ search.fetch_resource
47
+ end
48
+
49
+ #Returns Season 3 Leagues info (internally Pojo).
50
+ def self.leagues(platform, name, conditions={})
51
+ search = LoL::Search.new("/#{self.endpoints[:singular]}/#{platform.to_s}/#{name.to_s}/leagues")
52
+ search.fetch_resource
53
+ end
54
+
55
+ #Returns all teams (and team match history) player is a member of.
56
+ def self.teams(platform, name, conditions={})
57
+ search = LoL::Search.new("/#{self.endpoints[:singular]}/#{platform.to_s}/#{name.to_s}/teams")
58
+ search.fetch_resource
59
+ end
60
+
61
+ #Returns player commendation (internally Kudos).
62
+ def self.honor(platform, name, conditions={})
63
+ search = LoL::Search.new("/#{self.endpoints[:singular]}/#{platform.to_s}/#{name.to_s}/honor")
64
+ search.fetch_resource
65
+ end
66
+
67
+
68
+ end
69
+ end
@@ -0,0 +1,41 @@
1
+ module LoL
2
+ class Resource
3
+ @@endpoints = {}
4
+ @@endpoint_id = {}
5
+
6
+ def self.has_resource(singular=nil, opts={})
7
+ @@endpoints[self.name.downcase] = {
8
+ :singular => singular.nil? ? "#{self.name.downcase}" : singular,
9
+ :plural => opts[:plural].nil? ? "#{self.name.downcase}s" : opts[:plural]
10
+ }
11
+ @@endpoint_id[self.name.downcase] = opts[:id].nil? ? "" : "#{opts[:id]}-"
12
+ end
13
+
14
+ def self.endpoints
15
+ @@endpoints[self.name.downcase]
16
+ end
17
+
18
+ def self.endpoint_id
19
+ @@endpoint_id[self.name.downcase]
20
+ end
21
+
22
+ def self.search(platform, query)
23
+ search = LoL::Search.new
24
+ search.resource("#{self.endpoints[:singular]}")
25
+ search.query(platform, query)
26
+ self.new(search.fetch)
27
+ end
28
+
29
+ class << self
30
+ alias_method :find, :search
31
+ end
32
+
33
+ def initialize(attributes={})
34
+ attributes.each do |key, value|
35
+ if self.respond_to?(key.to_sym)
36
+ self.instance_variable_set("@#{key}", value)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,40 @@
1
+ module LoL
2
+ class Search
3
+ def initialize(resource=nil)
4
+ @params = {}
5
+ @resource = resource.nil? ? '/player/euw/' : resource
6
+ self
7
+ end
8
+
9
+ def query(platform, query)
10
+ @platform = "#{platform}/"
11
+ @query = "#{query}"
12
+ self
13
+ end
14
+
15
+ def resource(resource)
16
+ if resource == 'player' then
17
+ @resource = '/player/'
18
+ end
19
+ self
20
+ end
21
+
22
+ #Sends back main data
23
+ def fetch()
24
+ fetch_response['data']
25
+ end
26
+
27
+ #Send back whole response
28
+ def fetch_response
29
+ response = Api.get(@resource + @platform + @query)
30
+ response.to_hash
31
+ end
32
+
33
+ #Send back whole response
34
+ def fetch_resource
35
+ response = Api.get(@resource)
36
+ response.to_hash
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,24 @@
1
+ require 'rubygems'
2
+ require 'httparty'
3
+
4
+ ["api","search","resource"].each do |inc|
5
+ require File.join(File.dirname(__FILE__), "captainteemo", inc)
6
+ end
7
+
8
+ ["player"].each do |inc|
9
+ require File.join(File.dirname(__FILE__), "captainteemo", inc)
10
+ end
11
+
12
+ module LoL
13
+ VERSION = "0.0.1"
14
+ end
15
+
16
+ #@search = LoL::Search.new
17
+ #@search.resource('player')
18
+ #@search.query('skrillux')
19
+ #puts @search.fetch
20
+
21
+ #@player = LoL::Player.find("euw", "skrillux")
22
+ #puts @player.name
23
+
24
+ #puts LoL::Player.runes("euw", "skrillux")
metadata ADDED
@@ -0,0 +1,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: captainteemo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ahmet Abdi
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-04-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: httparty
16
+ requirement: !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: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ description: Wrapper for http://api.captainteemo.com/_docs/index.php
31
+ email:
32
+ - ahmetabdi@gmail.com
33
+ executables: []
34
+ extensions: []
35
+ extra_rdoc_files: []
36
+ files:
37
+ - captainteemo.gemspec
38
+ - lib/captainteemo.rb
39
+ - lib/captainteemo/api.rb
40
+ - lib/captainteemo/player.rb
41
+ - lib/captainteemo/resource.rb
42
+ - lib/captainteemo/search.rb
43
+ homepage: http://rubygems.org/gems/captainteemo
44
+ licenses: []
45
+ post_install_message:
46
+ rdoc_options: []
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ! '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ requirements: []
62
+ rubyforge_project: captainteemo
63
+ rubygems_version: 1.8.24
64
+ signing_key:
65
+ specification_version: 3
66
+ summary: A Ruby wrapper for league of legends information, API from http://api.captainteemo.com/_docs/index.php
67
+ test_files: []