dotapedia 0.0.1b → 0.0.2b

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/lib/dotapedia.rb +28 -19
  4. metadata +8 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e15df7e668bc349982fc621b1ed6f4ccedcb46bf9cd43917018665b1d0cda6f6
4
- data.tar.gz: d0aff35be74550174b862d2af629c58188b1c8c8b8916e709348518118d12b2a
3
+ metadata.gz: 1489a797d210c6972d94d8c9c80e54360c319bfdb44f0a60db9db0ee7d332aa7
4
+ data.tar.gz: 3de6517b9ceb5619a3ffeda65964d0e268d6c21500ce86d38ee6c6844ef0a33e
5
5
  SHA512:
6
- metadata.gz: b982fa24987a6cc95ac5425f57204540734e6e8e14bccdf5164f71830ec985386b8f16ebcf5d06e963c09baf2840d2170aa3f639ee04c24b0738dbb4817fbeb4
7
- data.tar.gz: 309a4cc5599d6631dc80deab634c7e4986b3eb05a1c89205c70e785455e054871a9d2867f2d9ae4b830aa85a8b8fa9ff2b29a68243c9856f5d634e70ba816399
6
+ metadata.gz: 00455df946e3bd0e871d2079d385820407b20c6ee70a6a3b84e620d091a69b7fac410f73dec42ace100471980ba54094e7bbef501b8795b621ce2388e685508d
7
+ data.tar.gz: 14ea247f2dbf1ea27a436ff9a18b7c2236ca846518496eff244ec247a90abac52e95ba7b58ac6b2ac6552a732ad0b5c1a624aaeed0eee990d91f015b20acfe52
@@ -0,0 +1 @@
1
+ 2.5.3
@@ -1,32 +1,35 @@
1
1
  class Dotapedia
2
2
  require "net/http"
3
3
  require "json"
4
+ require "active_record"
4
5
  require File.expand_path(File.dirname(__FILE__) + "/dota_object")
5
6
 
6
7
  def initialize(base_url: "https://api.opendota.com/api")
7
8
  @base_url = base_url
8
9
  end
9
10
 
10
- def teams(query = {})
11
- request = api_request('/teams')
12
- json_data = request[:json]
13
- struct_name = 'Team'
14
- create_dota_object_struct(struct_name, json_data[0].keys)
15
- result = create_struct(struct_name, json_data)
16
- filter_struct(result, query)
17
- result
18
- end
19
-
20
- def pro_players(query = {})
21
- request = api_request('/proPlayers')
22
- json_data = request[:json]
23
- struct_name = 'ProPlayer'
24
- create_dota_object_struct(struct_name, json_data[0].keys)
25
- result = create_struct(struct_name, json_data)
26
- filter_struct(result, query)
27
- result
11
+ method_names = [
12
+ :teams,
13
+ :pro_players,
14
+ :pro_matches,
15
+ :heroes,
16
+ :distributions,
17
+ :live
18
+ ].freeze
19
+
20
+ method_names.each do |method_name|
21
+ define_method method_name do |query = {}|
22
+ endpoint = camelcase(method_name.to_s)
23
+ request = api_request("/#{endpoint}")
24
+ json_data = request[:json]
25
+ struct_name = method_name.to_s.singularize.camelize
26
+ create_dota_object_struct(struct_name, json_data[0].keys)
27
+ result = create_struct(struct_name, json_data)
28
+ filter_struct(result, query)
29
+ result
30
+ end
28
31
  end
29
-
32
+
30
33
  def request(url)
31
34
  api_request(url)
32
35
  end
@@ -84,4 +87,10 @@ class Dotapedia
84
87
  data
85
88
  end
86
89
  end
90
+
91
+ def camelcase(string)
92
+ string = string.underscore.camelize
93
+ string[0] = string[0].downcase
94
+ string
95
+ end
87
96
  end
metadata CHANGED
@@ -1,26 +1,26 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dotapedia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1b
4
+ version: 0.0.2b
5
5
  platform: ruby
6
6
  authors:
7
7
  - Irfandi Achmad
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-21 00:00:00.000000000 Z
11
+ date: 2019-01-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Dota 2 api sdk for opendota.com
14
- email: irfandiofficial32@gmail.com
13
+ description:
14
+ email:
15
15
  executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
+ - ".ruby-version"
19
20
  - lib/dota_object.rb
20
21
  - lib/dotapedia.rb
21
- homepage: http://rubygems.org/gems/dotapedia
22
- licenses:
23
- - MIT
22
+ homepage:
23
+ licenses: []
24
24
  metadata: {}
25
25
  post_install_message:
26
26
  rdoc_options: []
@@ -41,5 +41,5 @@ rubyforge_project:
41
41
  rubygems_version: 2.7.6
42
42
  signing_key:
43
43
  specification_version: 4
44
- summary: Dotapedia[beta]
44
+ summary: Dota 2 api client sdk for opendota.com
45
45
  test_files: []