ivapi 1.1.1 → 1.1.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 +4 -4
- data/Gemfile +4 -4
- data/README.md +5 -5
- data/ivapi.gemspec +6 -5
- data/lib/ivapi.rb +2 -3
- data/lib/ivapi/configuration.rb +1 -2
- data/lib/ivapi/default.rb +3 -3
- data/lib/ivapi/response/raise_error.rb +2 -5
- data/lib/ivapi/response/rename_keys.rb +18 -14
- data/lib/ivapi/version.rb +1 -1
- data/spec/ivapi/client_spec.rb +5 -9
- metadata +34 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36b8caa71c8c90b8859c0b4997cf66402b283fa7
|
4
|
+
data.tar.gz: fe5992ef9ab6d93f82d94b858e7cfdbff8ef8599
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f74ff49ba94ba64da6ea041a3fe91392187ece35ea400769c512cf86252fae18f15cfb06ba7c49f628680e4dfc6eafd44b2570f38e790b79383e76ff3a9507c
|
7
|
+
data.tar.gz: 154ee0a59ccddb3e053a6818343aad2c44b8141ac9c3f13f62a7cf70820e51e736c479d525a8ad64b187c14f972687bba7612ace1b68883275225cb9b3d80cdc
|
data/Gemfile
CHANGED
@@ -4,11 +4,11 @@ gem 'rake'
|
|
4
4
|
|
5
5
|
group :test do
|
6
6
|
gem 'json', '~> 1.8.1', platforms: [:jruby]
|
7
|
-
gem 'rspec', '~> 3.
|
8
|
-
gem 'simplecov', '~> 0.
|
7
|
+
gem 'rspec', '~> 3.1.0'
|
8
|
+
gem 'simplecov', '~> 0.9.0', require: false
|
9
9
|
gem 'webmock', '~> 1.18.0'
|
10
|
-
gem 'coveralls', '~> 0.7.
|
11
|
-
gem 'guard-rspec', '~> 4.
|
10
|
+
gem 'coveralls', '~> 0.7.1', require: false
|
11
|
+
gem 'guard-rspec', '~> 4.3.1'
|
12
12
|
end
|
13
13
|
|
14
14
|
gemspec
|
data/README.md
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem which helps to communicate with Interneto vizija [http://iv.lt][iv.lt] ([http://dedikuoti.lt][dedikuoti.lt]) API.
|
4
4
|
|
5
|
-
[][coveralls]
|
9
|
-
[][codeclimate]
|
5
|
+
[][rubygems]
|
6
|
+
[][travis]
|
7
|
+
[][gemnasium]
|
8
|
+
[][coveralls]
|
9
|
+
[][codeclimate]
|
10
10
|
|
11
11
|
## Installation
|
12
12
|
|
data/ivapi.gemspec
CHANGED
@@ -12,17 +12,18 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.homepage = 'https://github.com/jpalumickas/ivapi/'
|
13
13
|
gem.license = 'MIT'
|
14
14
|
|
15
|
-
gem.files = `git ls-files`.split(
|
16
|
-
gem.executables = gem.files.grep(%r{^bin/})
|
15
|
+
gem.files = `git ls-files -z`.split("\x0")
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ['lib']
|
19
19
|
|
20
|
-
gem.add_development_dependency 'bundler', '~> 1.0'
|
21
20
|
gem.add_dependency 'addressable', '~> 2.3'
|
22
21
|
gem.add_dependency 'faraday', '~> 0.9.0'
|
23
22
|
gem.add_dependency 'faraday_middleware', '~> 0.9.1'
|
24
|
-
gem.add_dependency 'hashie', '~> 3.
|
25
|
-
gem.add_dependency 'multi_json', '~> 1.
|
23
|
+
gem.add_dependency 'hashie', '~> 3.3'
|
24
|
+
gem.add_dependency 'multi_json', '~> 1.10'
|
25
|
+
gem.add_development_dependency 'bundler', '~> 1.5'
|
26
|
+
gem.add_development_dependency 'rake', '~> 10.0'
|
26
27
|
|
27
28
|
gem.version = Ivapi::VERSION
|
28
29
|
end
|
data/lib/ivapi.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'ivapi/client'
|
2
2
|
require 'ivapi/default'
|
3
3
|
require 'pry'
|
4
|
+
|
4
5
|
module Ivapi
|
5
6
|
extend Ivapi::Configuration
|
6
7
|
|
7
8
|
class << self
|
8
|
-
|
9
9
|
def client
|
10
10
|
unless defined?(@client) && @client.same_options?(options)
|
11
11
|
@client = Ivapi::Client.new(options)
|
@@ -20,7 +20,7 @@ module Ivapi
|
|
20
20
|
|
21
21
|
def respond_to?(method_name, include_private = false)
|
22
22
|
client.respond_to?(method_name, include_private) || super
|
23
|
-
|
23
|
+
end if RUBY_VERSION < '1.9'
|
24
24
|
|
25
25
|
private
|
26
26
|
|
@@ -28,7 +28,6 @@ module Ivapi
|
|
28
28
|
return super unless client.respond_to?(method_name)
|
29
29
|
client.send(method_name, *args, &block)
|
30
30
|
end
|
31
|
-
|
32
31
|
end
|
33
32
|
end
|
34
33
|
|
data/lib/ivapi/configuration.rb
CHANGED
@@ -3,7 +3,6 @@ require 'ivapi/version'
|
|
3
3
|
|
4
4
|
module Ivapi
|
5
5
|
module Configuration
|
6
|
-
|
7
6
|
attr_accessor :server_id, :user_agent, :connection_options,
|
8
7
|
:web_endpoint, :api_endpoint
|
9
8
|
attr_writer :username, :password
|
@@ -31,7 +30,7 @@ module Ivapi
|
|
31
30
|
end
|
32
31
|
self
|
33
32
|
end
|
34
|
-
|
33
|
+
alias_method :setup, :reset!
|
35
34
|
|
36
35
|
def configure
|
37
36
|
yield self
|
data/lib/ivapi/default.rb
CHANGED
@@ -4,7 +4,6 @@ require 'ivapi/response/rename_keys'
|
|
4
4
|
require 'ivapi/version'
|
5
5
|
|
6
6
|
module Ivapi
|
7
|
-
|
8
7
|
# Default configuration options for {Client}
|
9
8
|
module Default
|
10
9
|
# Default API endpoint
|
@@ -23,23 +22,24 @@ module Ivapi
|
|
23
22
|
# Default Faraday middleware stack
|
24
23
|
MIDDLEWARE = RACK_BUILDER_CLASS.new do |builder|
|
25
24
|
builder.request :json
|
25
|
+
|
26
26
|
builder.use Ivapi::Response::RaiseError
|
27
27
|
builder.use FaradayMiddleware::FollowRedirects
|
28
28
|
builder.use FaradayMiddleware::Mashify
|
29
29
|
builder.use Ivapi::Response::RenameKeys
|
30
30
|
builder.use FaradayMiddleware::ParseJson
|
31
|
+
|
31
32
|
builder.adapter Faraday.default_adapter
|
32
33
|
end
|
33
34
|
|
34
35
|
class << self
|
35
|
-
|
36
36
|
# Configuration options
|
37
37
|
# @return [Hash]
|
38
38
|
def options
|
39
39
|
Hash[Ivapi::Configuration.keys.map { |key| [key, send(key)] }]
|
40
40
|
end
|
41
41
|
|
42
|
-
|
42
|
+
# Default GitHub username for Basic Auth from ENV
|
43
43
|
# @return [String]
|
44
44
|
def username
|
45
45
|
ENV['IVAPI_USERNAME']
|
@@ -4,17 +4,14 @@ require 'ivapi/error'
|
|
4
4
|
module Ivapi
|
5
5
|
# Faraday response middleware
|
6
6
|
module Response
|
7
|
-
|
8
7
|
# This class raises an exception based HTTP status codes returned
|
9
8
|
# by the API.
|
10
9
|
class RaiseError < Faraday::Response::Middleware
|
11
|
-
|
12
10
|
private
|
13
11
|
|
14
12
|
def on_complete(response)
|
15
|
-
|
16
|
-
|
17
|
-
end
|
13
|
+
error = Ivapi::Error.from_response(response)
|
14
|
+
fail error if error
|
18
15
|
end
|
19
16
|
end
|
20
17
|
end
|
@@ -4,9 +4,7 @@ module Ivapi
|
|
4
4
|
# Faraday response middleware
|
5
5
|
module Response
|
6
6
|
class RenameKeys < Faraday::Response::Middleware
|
7
|
-
UNUSED_KEYS =
|
8
|
-
'ac_', 'us_', 'bo_', 'or_', 'se_', 'ta_', 'in_'
|
9
|
-
].freeze
|
7
|
+
UNUSED_KEYS = %w(ac_ us_ bo_ or_ se_ ta_ in_).freeze
|
10
8
|
|
11
9
|
private
|
12
10
|
|
@@ -16,23 +14,29 @@ module Ivapi
|
|
16
14
|
|
17
15
|
def rename_keys(input)
|
18
16
|
if input.is_a?(Hash)
|
19
|
-
|
20
|
-
input.map do |key, value|
|
21
|
-
if value.is_a?(Hash)
|
22
|
-
value = rename_keys(value)
|
23
|
-
elsif value.is_a?(Array)
|
24
|
-
value = value.map { |v| rename_keys(v) }
|
25
|
-
end
|
26
|
-
|
27
|
-
new[key.gsub(Regexp.union(UNUSED_KEYS), '')] = value
|
28
|
-
end
|
29
|
-
new
|
17
|
+
rename_keys_from_hash(input)
|
30
18
|
elsif input.is_a?(Array)
|
31
19
|
input.map { |value| rename_keys(value) }
|
32
20
|
else
|
33
21
|
input
|
34
22
|
end
|
35
23
|
end
|
24
|
+
|
25
|
+
def rename_keys_from_hash(input)
|
26
|
+
new_hash = {}
|
27
|
+
|
28
|
+
input.map do |key, value|
|
29
|
+
if value.is_a?(Hash)
|
30
|
+
value = rename_keys(value)
|
31
|
+
elsif value.is_a?(Array)
|
32
|
+
value = value.map { |v| rename_keys(v) }
|
33
|
+
end
|
34
|
+
|
35
|
+
new_hash[key.gsub(Regexp.union(UNUSED_KEYS), '')] = value
|
36
|
+
end
|
37
|
+
|
38
|
+
new_hash
|
39
|
+
end
|
36
40
|
end
|
37
41
|
end
|
38
42
|
end
|
data/lib/ivapi/version.rb
CHANGED
data/spec/ivapi/client_spec.rb
CHANGED
@@ -2,6 +2,10 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Ivapi::Client do
|
4
4
|
|
5
|
+
after(:each) do
|
6
|
+
Ivapi.reset!
|
7
|
+
end
|
8
|
+
|
5
9
|
it 'works with basic auth and password' do
|
6
10
|
url = 'https://api.iv.lt/json.php?nick=foo&password=bar&command=version'
|
7
11
|
|
@@ -13,15 +17,12 @@ describe Ivapi::Client do
|
|
13
17
|
end
|
14
18
|
|
15
19
|
describe 'authentication' do
|
16
|
-
after(:each) do
|
17
|
-
Ivapi.reset!
|
18
|
-
end
|
19
|
-
|
20
20
|
it 'should possible to authenticate with configure' do
|
21
21
|
Ivapi.configure do |config|
|
22
22
|
config.username = 'foo'
|
23
23
|
config.password = 'bar'
|
24
24
|
end
|
25
|
+
|
25
26
|
expect(Ivapi.client).to be_authenticated
|
26
27
|
end
|
27
28
|
|
@@ -37,10 +38,6 @@ describe Ivapi::Client do
|
|
37
38
|
end
|
38
39
|
|
39
40
|
describe 'setting server id from client' do
|
40
|
-
before(:each) do
|
41
|
-
Ivapi.reset!
|
42
|
-
end
|
43
|
-
|
44
41
|
it 'should not have server id' do
|
45
42
|
client = Ivapi::Client.new(username: 'foo', password: 'bar')
|
46
43
|
expect(client.server_id).to be_nil
|
@@ -54,7 +51,6 @@ describe Ivapi::Client do
|
|
54
51
|
|
55
52
|
describe 'manualy setting server id' do
|
56
53
|
before(:each) do
|
57
|
-
Ivapi.reset!
|
58
54
|
Ivapi.configure do |config|
|
59
55
|
config.username = 'foo'
|
60
56
|
config.password = 'bar'
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ivapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justas Palumickas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: addressable
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,28 +58,56 @@ dependencies:
|
|
72
58
|
requirements:
|
73
59
|
- - "~>"
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version: '3.
|
61
|
+
version: '3.3'
|
76
62
|
type: :runtime
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
66
|
- - "~>"
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version: '3.
|
68
|
+
version: '3.3'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: multi_json
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
73
|
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: '1.
|
75
|
+
version: '1.10'
|
90
76
|
type: :runtime
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
80
|
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: '1.
|
82
|
+
version: '1.10'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: bundler
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.5'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.5'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rake
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '10.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '10.0'
|
97
111
|
description: " Gem which helps to communicate with http://www.iv.lt API. "
|
98
112
|
email: jpalumickas@gmail.com
|
99
113
|
executables: []
|