wot_api 1.2.1 → 1.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ffa449157b0fdfd8d84ca7ada8d0d4a0d4a08fe1
4
- data.tar.gz: cb02cf8efa4b49d91af1b5fe6c63ae205f57c95b
3
+ metadata.gz: 465ca78b685225af5587bfab32cee9ac93555cb5
4
+ data.tar.gz: 77075ce7dd3a01d805091958041709fbd6f098f8
5
5
  SHA512:
6
- metadata.gz: d9c4997b0996b74fb6f282f9232a0091676070878eb16e9d864493091a026722b6b91a9754e1b9b68bc075ecfc97f01baa1a9b2242ceffcc88509e0143d9661a
7
- data.tar.gz: dcbfbadf8e5594167fb446ec4edbfab2d4fb6be35716c474268286baf94da0dbebc7697ecdb4e4c7a9e9811dcd1ccb016f5e77d17af0c54b9422d33bd1eaff82
6
+ metadata.gz: 2c1c510ed773ecafef541de6ac8f6db19eaced474f3a0f215b6d51e58a537b70edace9463e4b66e49f34b02f4cbd35e407cc561d982f0b84fbe1b8b3e7a11c39
7
+ data.tar.gz: 327698d41f512e033d6b0f3c78d4a08986fed8a3aab4686d6594cd0d42b837c06788346dd283abe192a14a159daae1eb47af2c25a1b62d572f0bb68d8a36e09c
data/README.md CHANGED
@@ -51,6 +51,12 @@ Which wraps the '/wot/account/list' endpoint, with 'search' params and in the :r
51
51
 
52
52
  Will return an array or hash with the results, or throw an error with a message on a failure.
53
53
 
54
+ For endpoints that do not start with '/wot/' you can use a method like such:
55
+
56
+ WotApi.wgn_clans_list(search: 'bananas')
57
+
58
+ to use /wgn/clans/list instead of /wot/clans/list
59
+
54
60
  NOTE: Version 1.2.0 removes the need for all api methods to be called with "WotApi::Base.method", instead can just use "WotApi.method" for less keystrokes. However, the existing methods are still available at WotApi::Base for compatibility.
55
61
 
56
62
  ## Clan member resources
@@ -1,3 +1,3 @@
1
1
  module WotApi
2
- VERSION = "1.2.1"
2
+ VERSION = "1.2.2"
3
3
  end
@@ -28,7 +28,7 @@ module WotApi
28
28
  def wot_api_post(method_sym, params)
29
29
  params ||= {}
30
30
  endpoint = method_to_endpoint(method_sym)
31
- region = params.delete(:region).to_sym rescue get_default_region
31
+ region = !params[:region].nil? ? params.delete(:region).to_sym : get_default_region
32
32
  set_base_uri(region)
33
33
  begin
34
34
  response = merged_post(endpoint, region, params)
@@ -40,7 +40,7 @@ module WotApi
40
40
 
41
41
  def wot_web_get(endpoint, params)
42
42
  params ||= {}
43
- region = params.delete(:region).to_sym rescue get_default_region
43
+ region = !params[:region].nil? ? params.delete(:region).to_sym : get_default_region
44
44
  set_base_uri(region, true)
45
45
  begin
46
46
  return self.get(endpoint, params).parsed_response
@@ -50,13 +50,14 @@ module WotApi
50
50
  end
51
51
 
52
52
  def valid_endpoint?(method_sym)
53
- !(method_sym.to_s =~ /^([^_]*)_([^_]*)$/).nil?
53
+ !(method_sym.to_s =~ /^([^_]+)_([^_]+)$/).nil? || !(method_sym.to_s =~ /^([^_]+)_([^_]+)_([^_]+)$/).nil?
54
54
  end
55
55
 
56
56
  private
57
57
 
58
58
  def method_to_endpoint(method_sym)
59
- "/wot/" + method_sym.to_s.gsub('_','/') + "/"
59
+ method_sym = ('wot_' + method_sym.to_s).to_sym if method_sym.to_s.count('_') == 1
60
+ "/" + method_sym.to_s.gsub('_','/') + "/"
60
61
  end
61
62
 
62
63
  def set_base_uri(region, web=false)
data/spec/wot_api_spec.rb CHANGED
@@ -41,9 +41,19 @@ describe WotApi do
41
41
  WotApi.fake_method
42
42
  end
43
43
 
44
- it "calls WotApi::Wrapper.wot_api_post with method symbol and parameters" do
45
- expect(WotApi::Wrapper).to receive(:wot_api_post).with(:fake_method, {hi: true})
46
- WotApi.fake_method(hi: true)
44
+ context "with a two-part method name" do
45
+ it "calls WotApi::Wrapper.wot_api_post with method symbol and parameters" do
46
+ expect(WotApi::Wrapper).to receive(:wot_api_post).with(:fake_method, {hi: true})
47
+ WotApi.fake_method(hi: true)
48
+ end
49
+ end
50
+
51
+ context "with a three-part method name" do
52
+ it "calls WotApi::Wrapper.wot_api_post with method symbol and parameters" do
53
+ allow(WotApi::Wrapper).to receive(:valid_endpoint?).with(:quite_fake_method).and_return(true)
54
+ expect(WotApi::Wrapper).to receive(:wot_api_post).with(:quite_fake_method, {hi: true})
55
+ WotApi.quite_fake_method(hi: true)
56
+ end
47
57
  end
48
58
  end
49
59
 
data/spec/wrapper_spec.rb CHANGED
@@ -30,10 +30,20 @@ describe WotApi::Wrapper do
30
30
  FakeWeb.register_uri(:post, "https://api.worldoftanks.com/wot/thing/stuff/", :response => File.join(File.dirname(__FILE__), 'fixtures', "success.json"))
31
31
  WotApi.config({'na' => '123456'})
32
32
  end
33
- it "raises WotApi::ResponseError" do
33
+ it "returns an array" do
34
34
  expect(WotApi::Wrapper.wot_api_post(:thing_stuff, {})).to be_an Array
35
35
  end
36
36
  end
37
+
38
+ context "with a valid endpoint on a different path header" do
39
+ before(:example) do
40
+ FakeWeb.register_uri(:post, "https://api.worldoftanks.com/wgn/misc/etc/", :response => File.join(File.dirname(__FILE__), 'fixtures', "success.json"))
41
+ WotApi.config({'na' => '123456'})
42
+ end
43
+ it "returns an array" do
44
+ expect(WotApi::Wrapper.wot_api_post(:wgn_misc_etc, {})).to be_an Array
45
+ end
46
+ end
37
47
  end
38
48
 
39
49
  describe ".wot_web_get" do
@@ -62,6 +72,14 @@ describe WotApi::Wrapper do
62
72
  it "returns true for endponts like prefix _underscore_ suffix" do
63
73
  expect(WotApi::Wrapper.valid_endpoint?(:test_things)).to eq true
64
74
  end
75
+ it "returns true for three-part endpoints" do
76
+ expect(WotApi::Wrapper.valid_endpoint?(:what_ever_dude)).to eq true
77
+ end
78
+ it "returns false for other stuff" do
79
+ expect(WotApi::Wrapper.valid_endpoint?(:things)).to eq false
80
+ expect(WotApi::Wrapper.valid_endpoint?(:stuff_blah_things_and)).to eq false
81
+ expect(WotApi::Wrapper.valid_endpoint?(:whee_)).to eq false
82
+ end
65
83
  end
66
84
 
67
85
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wot_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jesse Cantara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-14 00:00:00.000000000 Z
11
+ date: 2015-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler