ivapi 1.1.8 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4692c06d81569ff3af2fe27ed0e1d1e2719a56b0
4
- data.tar.gz: 934264090ba0f3a6fc8a2523722230bbf9543883
3
+ metadata.gz: d008082f8c773dd3f3f66aa9bb48fd3037e8fe26
4
+ data.tar.gz: 28dc6501628a7791fc3fea617454ed3b2daf4024
5
5
  SHA512:
6
- metadata.gz: 5e63c2e853e52cec1d0d3ac84067d332c60ad8f93639ff9eaf302c337009b3c40df2b3f79d5b9714d6f8f7c16744cb122683da3057b119b61f51e4459cf240a6
7
- data.tar.gz: 7521a9abadb42ea469918045e3ed8829df7ac2d06469e92bae146a3836344bcf36d9adae406863519917498388c525ea0fb2b91acfbb96bf0b8eda41a96bac70
6
+ metadata.gz: aa22c23d0d8e6208626d83d90325d1d55f4db7f01e09652cb442cee9a3962f3a2a8bfd97f3f8b42004c4b63e8750a4a8cb4ed9e3ac177419a2c876d4ebb70378
7
+ data.tar.gz: d1ef174c626c1469cb8c39238d1e64b14624c531b824df48215fb576a43e6da1275f7a39f71206aa539fe4932dd01de96a1a0271ee867c5092489f7a5893fce7
data/.hound.yml ADDED
@@ -0,0 +1,2 @@
1
+ ruby:
2
+ config_file: .rubocop.yml
data/.travis.yml CHANGED
@@ -3,23 +3,24 @@ sudo: false
3
3
  before_install:
4
4
  - gem install bundler
5
5
 
6
+ after_success:
7
+ - bundle exec codeclimate-test-reporter
8
+
6
9
  bundler_args: --without development
7
10
 
8
11
  language: ruby
9
12
 
10
13
  rvm:
11
- - 1.9.3
12
14
  - 2.0.0
13
15
  - 2.1.0
14
16
  - 2.2.0
15
17
  - 2.3.0
16
18
  - ruby-head
17
- - jruby-19mode
18
19
  - jruby-head
19
- - rbx
20
+ - rbx-2
20
21
 
21
22
  matrix:
22
23
  allow_failures:
23
24
  - rvm: ruby-head
24
25
  - rvm: jruby-head
25
- - rvm: rbx
26
+ - rvm: rbx-2
data/Gemfile CHANGED
@@ -1,13 +1,21 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ group :development do
4
+ gem 'guard-rspec', '~> 4.7.3'
5
+ end
6
+
3
7
  group :test do
4
8
  gem 'codeclimate-test-reporter', require: false
5
- gem 'coveralls', '~> 0.8.13', require: false
6
- gem 'guard-rspec', '~> 4.6.5'
9
+ gem 'coveralls', '~> 0.8.16', require: false
7
10
  gem 'rake' # We need a rake gem for Travis CI.
8
- gem 'rspec', '~> 3.4.0'
9
- gem 'simplecov', '~> 0.11.2', require: false
10
- gem 'webmock', '~> 1.24.3'
11
+ gem 'rspec', '~> 3.5.0'
12
+ gem 'simplecov', '~> 0.12', require: false
13
+ gem 'webmock', '~> 2.1.0'
14
+ end
15
+
16
+ platforms :rbx do
17
+ gem 'psych'
18
+ gem 'rubysl', '~> 2.0'
11
19
  end
12
20
 
13
21
  gemspec
data/README.md CHANGED
@@ -68,7 +68,6 @@ Ivapi.server.information
68
68
  This library aims to support and is [tested against][travis] the following Ruby
69
69
  implementations:
70
70
 
71
- * Ruby 1.9.3
72
71
  * Ruby 2.0.0
73
72
  * Ruby 2.1.0
74
73
  * Ruby 2.2.0
@@ -8,7 +8,7 @@ module Ivapi
8
8
  params = { command: 'account_info' }
9
9
  get('/json.php', params)
10
10
  end
11
- alias_method :info, :information
11
+ alias info information
12
12
 
13
13
  # Get account orders.
14
14
  #
@@ -0,0 +1,18 @@
1
+ module Ivapi
2
+ class Client
3
+ class Hosting < Base
4
+ attr_reader :hosting_id
5
+
6
+ def initialize(client, hosting_id)
7
+ super(client)
8
+ @hosting_id = hosting_id
9
+ end
10
+
11
+ def information
12
+ params = { command: 'hosting_info', id: hosting_id }
13
+ get('/json.php', params)
14
+ end
15
+ alias info information
16
+ end
17
+ end
18
+ end
@@ -15,7 +15,7 @@ module Ivapi
15
15
  params = { command: 'server_info', id: server_id }
16
16
  get('/json.php', params)
17
17
  end
18
- alias_method :info, :information
18
+ alias info information
19
19
 
20
20
  # Get server tasks.
21
21
  #
@@ -123,6 +123,18 @@ module Ivapi
123
123
  get('/json.php', params)
124
124
  end
125
125
 
126
+ # Reverse PTR record change for additional IP.
127
+ #
128
+ # options - The Hash options (default: {}):
129
+ # :ip - The String of additional IP.
130
+ # :domain - The String of reverse PTR.
131
+ #
132
+ # Returns the Hash of new ptr info.
133
+ def ptr(options = {})
134
+ params = options.merge(command: 'server_ptr', id: server_id)
135
+ get('/json.php', params)
136
+ end
137
+
126
138
  # Send command to change server plan.
127
139
  #
128
140
  # options - The Hash options (default: {}):
@@ -146,7 +158,7 @@ module Ivapi
146
158
  params = { command: 'server_domain', id: server_id, domain: domain }
147
159
  get('/json.php', params)
148
160
  end
149
- alias_method :hostname, :domain
161
+ alias hostname domain
150
162
  end
151
163
  end
152
164
  end
data/lib/ivapi/client.rb CHANGED
@@ -3,6 +3,7 @@ require 'ivapi/authentication'
3
3
 
4
4
  require 'ivapi/client/base'
5
5
  require 'ivapi/client/account'
6
+ require 'ivapi/client/hosting'
6
7
  require 'ivapi/client/server'
7
8
 
8
9
  module Ivapi
@@ -25,6 +26,10 @@ module Ivapi
25
26
  Ivapi::Client::Account.new(self)
26
27
  end
27
28
 
29
+ def hosting(hosting_id = @hosting_id)
30
+ Ivapi::Client::Hosting.new(self, hosting_id)
31
+ end
32
+
28
33
  def server(server_id = @server_id)
29
34
  Ivapi::Client::Server.new(self, server_id)
30
35
  end
@@ -3,18 +3,19 @@ require 'ivapi/version'
3
3
 
4
4
  module Ivapi
5
5
  module Configuration
6
- attr_accessor :server_id, :user_agent, :connection_options,
7
- :web_endpoint, :api_endpoint, :username, :password
6
+ attr_accessor :username, :password, :user_agent, :connection_options,
7
+ :web_endpoint, :api_endpoint, :server_id, :hosting_id
8
8
 
9
9
  def self.keys
10
10
  @keys ||= [
11
11
  :api_endpoint,
12
- :server_id,
13
12
  :username,
14
13
  :middleware,
15
14
  :password,
16
15
  :user_agent,
17
- :connection_options
16
+ :connection_options,
17
+ :server_id,
18
+ :hosting_id
18
19
  ]
19
20
  end
20
21
 
@@ -30,7 +31,7 @@ module Ivapi
30
31
  end
31
32
  self
32
33
  end
33
- alias_method :setup, :reset!
34
+ alias setup reset!
34
35
 
35
36
  private
36
37
 
data/lib/ivapi/default.rb CHANGED
@@ -42,6 +42,10 @@ module Ivapi
42
42
  nil
43
43
  end
44
44
 
45
+ def hosting_id
46
+ nil
47
+ end
48
+
45
49
  # Default middleware stack for Faraday::Connection
46
50
  # from {MIDDLEWARE}
47
51
  # @return [String]
data/lib/ivapi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ivapi
2
- VERSION = '1.1.8'.freeze
2
+ VERSION = '1.2.0'.freeze
3
3
  end
data/lib/ivapi.rb CHANGED
@@ -19,6 +19,10 @@ module Ivapi
19
19
  return super unless client.respond_to?(method_name)
20
20
  client.send(method_name, *args, &block)
21
21
  end
22
+
23
+ def respond_to_missing?(method_name, include_private = false)
24
+ client.respond_to?(method_name, include_private)
25
+ end
22
26
  end
23
27
  end
24
28
 
@@ -0,0 +1,3 @@
1
+ {
2
+ "id":"1"
3
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "ip": "1.2.3.4",
3
+ "domain": "example.com"
4
+ }
@@ -22,6 +22,10 @@ describe Ivapi::Client::Account do
22
22
  it 'should return account name' do
23
23
  expect(@info.name).to eq('Name Surname')
24
24
  end
25
+
26
+ it 'has alias info' do
27
+ expect(Ivapi.account.info).to eq(Ivapi.account.information)
28
+ end
25
29
  end
26
30
 
27
31
  describe 'account credits' do
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Ivapi::Client::Server do
4
+ before do
5
+ Ivapi.configure do |config|
6
+ config.username = 'foo'
7
+ config.password = 'bar'
8
+ config.hosting_id = 1
9
+ end
10
+ end
11
+
12
+ after do
13
+ Ivapi.reset!
14
+ end
15
+
16
+ describe '#information' do
17
+ let(:info) { Ivapi.hosting.information }
18
+
19
+ before do
20
+ stub_command('hosting_info', id: 1)
21
+ .to_return(json_response('hosting_info.json'))
22
+ end
23
+
24
+ it 'has alias info method' do
25
+ expect(Ivapi.hosting.info).to eq(info)
26
+ end
27
+
28
+ it 'has correct id' do
29
+ expect(info.id).to eq('1')
30
+ end
31
+ end
32
+ end
@@ -137,6 +137,18 @@ describe Ivapi::Client::Server do
137
137
  end
138
138
  end
139
139
 
140
+ describe '#ptr' do
141
+ let(:ptr) { Ivapi.server.ptr(ip: '1.2.3.4', domain: 'example.com') }
142
+ before do
143
+ stub_command('server_ptr', id: 3, ip: '1.2.3.4', domain: 'example.com')
144
+ .to_return(json_response('server_ptr.json'))
145
+ end
146
+
147
+ it 'has correct domain' do
148
+ expect(ptr.domain).to eq('example.com')
149
+ end
150
+ end
151
+
140
152
  describe 'change server plan' do
141
153
  before(:each) do
142
154
  stub_command('server_change', id: 3)
data/spec/ivapi_spec.rb CHANGED
@@ -1,10 +1,9 @@
1
1
  require 'spec_helper'
2
+
2
3
  describe Ivapi do
3
- # describe '.respond_to?' do
4
- # it 'is true if method exists' do
5
- # expect(Ivapi.respond_to?(:new, true)).to eq(true)
6
- # end
7
- # end
4
+ it 'responds to config' do
5
+ expect(Ivapi.respond_to?(:configure)).to be_truthy
6
+ end
8
7
 
9
8
  # describe '.new' do
10
9
  # it 'is a Ivapi::Client' do
data/spec/spec_helper.rb CHANGED
@@ -1,11 +1,9 @@
1
1
  require 'simplecov'
2
2
  require 'coveralls'
3
- require 'codeclimate-test-reporter'
4
3
 
5
4
  SimpleCov.formatters = [
6
5
  SimpleCov::Formatter::HTMLFormatter,
7
- Coveralls::SimpleCov::Formatter,
8
- CodeClimate::TestReporter::Formatter
6
+ Coveralls::SimpleCov::Formatter
9
7
  ]
10
8
 
11
9
  SimpleCov.start
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ivapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.8
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justas Palumickas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-16 00:00:00.000000000 Z
11
+ date: 2016-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -115,6 +115,7 @@ extensions: []
115
115
  extra_rdoc_files: []
116
116
  files:
117
117
  - ".gitignore"
118
+ - ".hound.yml"
118
119
  - ".rspec"
119
120
  - ".rubocop.yml"
120
121
  - ".travis.yml"
@@ -130,6 +131,7 @@ files:
130
131
  - lib/ivapi/client.rb
131
132
  - lib/ivapi/client/account.rb
132
133
  - lib/ivapi/client/base.rb
134
+ - lib/ivapi/client/hosting.rb
133
135
  - lib/ivapi/client/server.rb
134
136
  - lib/ivapi/configuration.rb
135
137
  - lib/ivapi/default.rb
@@ -142,6 +144,7 @@ files:
142
144
  - spec/fixtures/account_info.json
143
145
  - spec/fixtures/account_orders.json
144
146
  - spec/fixtures/account_services.json
147
+ - spec/fixtures/hosting_info.json
145
148
  - spec/fixtures/server_change.json
146
149
  - spec/fixtures/server_domain.json
147
150
  - spec/fixtures/server_firewall.json
@@ -149,12 +152,14 @@ files:
149
152
  - spec/fixtures/server_graphs.json
150
153
  - spec/fixtures/server_info.json
151
154
  - spec/fixtures/server_os.json
155
+ - spec/fixtures/server_ptr.json
152
156
  - spec/fixtures/server_reboot.json
153
157
  - spec/fixtures/server_recreate.json
154
158
  - spec/fixtures/server_reset_password.json
155
159
  - spec/fixtures/server_tasks.json
156
160
  - spec/fixtures/version.json
157
161
  - spec/ivapi/client/account_spec.rb
162
+ - spec/ivapi/client/hosting_spec.rb
158
163
  - spec/ivapi/client/server_spec.rb
159
164
  - spec/ivapi/client_spec.rb
160
165
  - spec/ivapi/error_spec.rb
@@ -181,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
186
  requirements:
182
187
  - Interneto Vizija allow to use API only on them servers.
183
188
  rubyforge_project:
184
- rubygems_version: 2.6.3
189
+ rubygems_version: 2.5.2
185
190
  signing_key:
186
191
  specification_version: 4
187
192
  summary: Ruby wrapper for working with Interneto Vizija API.
@@ -191,6 +196,7 @@ test_files:
191
196
  - spec/fixtures/account_info.json
192
197
  - spec/fixtures/account_orders.json
193
198
  - spec/fixtures/account_services.json
199
+ - spec/fixtures/hosting_info.json
194
200
  - spec/fixtures/server_change.json
195
201
  - spec/fixtures/server_domain.json
196
202
  - spec/fixtures/server_firewall.json
@@ -198,12 +204,14 @@ test_files:
198
204
  - spec/fixtures/server_graphs.json
199
205
  - spec/fixtures/server_info.json
200
206
  - spec/fixtures/server_os.json
207
+ - spec/fixtures/server_ptr.json
201
208
  - spec/fixtures/server_reboot.json
202
209
  - spec/fixtures/server_recreate.json
203
210
  - spec/fixtures/server_reset_password.json
204
211
  - spec/fixtures/server_tasks.json
205
212
  - spec/fixtures/version.json
206
213
  - spec/ivapi/client/account_spec.rb
214
+ - spec/ivapi/client/hosting_spec.rb
207
215
  - spec/ivapi/client/server_spec.rb
208
216
  - spec/ivapi/client_spec.rb
209
217
  - spec/ivapi/error_spec.rb