ivapi 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Gem Version](
|
6
|
-
[![Build Status](
|
7
|
-
[![Dependency Status](
|
8
|
-
[![Coverage Status](http://img.shields.io/coveralls/jpalumickas/ivapi/master.svg)][coveralls]
|
9
|
-
[![Code Climate](http://img.shields.io/codeclimate/github/jpalumickas/ivapi.svg)][codeclimate]
|
5
|
+
[![Gem Version](http://img.shields.io/gem/v/ivapi.svg?style=flat)][rubygems]
|
6
|
+
[![Build Status](http://img.shields.io/travis/jpalumickas/ivapi.svg?style=flat)][travis]
|
7
|
+
[![Dependency Status](http://img.shields.io/gemnasium/jpalumickas/ivapi.svg?style=flat)][gemnasium]
|
8
|
+
[![Coverage Status](http://img.shields.io/coveralls/jpalumickas/ivapi/master.svg?style=flat)][coveralls]
|
9
|
+
[![Code Climate](http://img.shields.io/codeclimate/github/jpalumickas/ivapi.svg?style=flat)][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: []
|