dotapedia 0.0.1b → 0.0.2b

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.
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: []