smart_vk_api 1.0.0 → 1.1.0
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/CHANGELOG.md +53 -0
- data/README.md +1 -0
- data/lib/smart_vk_api/call.rb +5 -2
- data/lib/smart_vk_api/configuration.rb +7 -0
- data/lib/smart_vk_api/constants.rb +1 -0
- data/lib/smart_vk_api/methods.rb +29 -0
- data/lib/smart_vk_api/version.rb +1 -1
- data/lib/smart_vk_api.rb +44 -0
- data/spec/call_spec.rb +65 -39
- data/spec/methods_spec.rb +69 -0
- data/spec/smart_vk_api_spec.rb +37 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc114237623563fcc0840b489143865529dc4353
|
4
|
+
data.tar.gz: 9d1c7c33d2a3da851e6d21db9d7245506b92dfc5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 586a88970465808274559974e6a2d267caa5e8d980676451075a19ebab55688475cbd001e06f83e7b0b0728a46e64349dc5528fd04763c2efb10f21610be9aef
|
7
|
+
data.tar.gz: 50b3e36b5f5a8c420274b1927962dbb378451757f5eaeb5a32a862a5767ca64fd3d30463dd5e25a810e68872fd61ecfd107bc8caa19a663a7fb9e03a4e0ddb10
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
|
2
|
+
## Версия 1.1.0
|
3
|
+
|
4
|
+
* Добавлена возможность вызывать методы API, используя обычные методы Ruby.
|
5
|
+
|
6
|
+
Пример:
|
7
|
+
|
8
|
+
```ruby
|
9
|
+
vk = SmartVkApi::VK.new
|
10
|
+
vk.users.get
|
11
|
+
```
|
12
|
+
|
13
|
+
* Добавлена возможность задать конфигурацию для обращений к API.
|
14
|
+
|
15
|
+
Пример:
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
SmartVkApi.configure do |conf|
|
19
|
+
conf.access_token = '7a6fa4dff77a228eeda56603'
|
20
|
+
end
|
21
|
+
```
|
22
|
+
|
23
|
+
При этом токены, которые записаны в конфиг, будут автоматически использованы, если в методы не передано другого значения:
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
SmartVkApi.configure do |conf|
|
27
|
+
conf.access_token = '7a6fa4dff77a228eeda56603'
|
28
|
+
end
|
29
|
+
vk = SmartVkApi::VK.new
|
30
|
+
vk.access_token # => 7a6fa4dff77a228eeda56603
|
31
|
+
```
|
32
|
+
|
33
|
+
Но можно также передать более специфичный конфиг, если это требуется:
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
SmartVkApi.configure do |conf|
|
37
|
+
conf.access_token = '7a6fa4dff77a228eeda56603'
|
38
|
+
end
|
39
|
+
config = SmartVkApi::Configuration.new
|
40
|
+
config.access_token = '36fb063aa7f0ad997b5f96e91fd362857b'
|
41
|
+
vk = SmartVkApi::VK.new(config)
|
42
|
+
vk.access_token # => 36fb063aa7f0ad997b5f96e91fd362857b
|
43
|
+
```
|
44
|
+
|
45
|
+
* Добавлена возможность прямого вызова API через метод модуля:
|
46
|
+
|
47
|
+
Пример:
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
SmartVkApi.call('users.get', :user_ids => 'kimrgrey') # [{:uid=>3710412, :first_name=>"Сергей", :last_name=>"Цветков", :hidden=>1}]
|
51
|
+
```
|
52
|
+
|
53
|
+
Чтобы посомотреть предыдущие изменения, пожалуйста, откройте соответствующий релиз - [v1.0.0](https://github.com/kimrgrey/smart_vk_api/tree/v1.0.0)
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# SmartVkApi
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/smart_vk_api)
|
3
4
|
[](https://travis-ci.org/kimrgrey/smart_vk_api)
|
4
5
|
[](https://codeclimate.com/github/kimrgrey/smart_vk_api)
|
5
6
|
|
data/lib/smart_vk_api/call.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
module SmartVkApi
|
2
2
|
module Call
|
3
|
-
def call(method_name,
|
4
|
-
params = options.last if options && options.last.is_a?(Hash)
|
3
|
+
def call(method_name, params = {})
|
5
4
|
http(method_name, params) do |response|
|
6
5
|
raise SmartVkApi::MethodCallError, response.body unless response.is_a?(Net::HTTPSuccess)
|
7
6
|
json = response.body
|
@@ -24,6 +23,10 @@ module SmartVkApi
|
|
24
23
|
if method_name.nil? || method_name.empty?
|
25
24
|
raise ArgumentError, 'Method name could not be empty'
|
26
25
|
end
|
26
|
+
if access_token && (params.nil? || !params.key?(:access_token))
|
27
|
+
params ||= {}
|
28
|
+
params[:access_token] = access_token
|
29
|
+
end
|
27
30
|
url = SmartVkApi::Constants::METHOD_CALL_URL + "/#{method_name}"
|
28
31
|
url += "?#{URI.encode_www_form(params)}" if params && params.any?
|
29
32
|
url
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module SmartVkApi
|
2
|
+
module Methods
|
3
|
+
def method_missing(method_name, *arguments, &block)
|
4
|
+
Proxy.new(self, method_name)
|
5
|
+
end
|
6
|
+
|
7
|
+
def respond_to?(method_name, include_private = false)
|
8
|
+
true # we should respond to any method using Proxy
|
9
|
+
end
|
10
|
+
|
11
|
+
class Proxy
|
12
|
+
attr_accessor :vk
|
13
|
+
attr_accessor :scope
|
14
|
+
|
15
|
+
def initialize(vk, scope)
|
16
|
+
self.vk = vk
|
17
|
+
self.scope = scope
|
18
|
+
end
|
19
|
+
|
20
|
+
def method_missing(method_name, *arguments, &block)
|
21
|
+
vk.call("#{scope}.#{method_name}", arguments.first)
|
22
|
+
end
|
23
|
+
|
24
|
+
def respond_to?(method_name, include_private = false)
|
25
|
+
true # we should respond to any method using Proxy
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/smart_vk_api/version.rb
CHANGED
data/lib/smart_vk_api.rb
CHANGED
@@ -4,10 +4,54 @@ require 'json'
|
|
4
4
|
module SmartVkApi
|
5
5
|
autoload :Constants, "smart_vk_api/constants"
|
6
6
|
autoload :Call, "smart_vk_api/call"
|
7
|
+
autoload :Methods, "smart_vk_api/methods"
|
8
|
+
autoload :Configuration, "smart_vk_api/configuration"
|
7
9
|
|
8
10
|
class MethodCallError < StandardError; end;
|
9
11
|
|
10
12
|
class VK
|
11
13
|
include SmartVkApi::Call
|
14
|
+
include SmartVkApi::Methods
|
15
|
+
|
16
|
+
def initialize(configuration = nil)
|
17
|
+
@configuration = configuration
|
18
|
+
end
|
19
|
+
|
20
|
+
def configuration
|
21
|
+
@configuration || SmartVkApi.configuration
|
22
|
+
end
|
23
|
+
|
24
|
+
def access_token
|
25
|
+
configuration.access_token unless configuration.nil?
|
26
|
+
end
|
27
|
+
|
28
|
+
def app_id
|
29
|
+
configuration.app_id unless configuration.nil?
|
30
|
+
end
|
31
|
+
|
32
|
+
def app_token
|
33
|
+
configuration.app_token unless configuration.nil?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class << self
|
38
|
+
attr_accessor :configuration
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.reset_configuration
|
42
|
+
self.configuration = nil
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.configure
|
46
|
+
self.configuration ||= SmartVkApi::Configuration.new
|
47
|
+
yield(configuration)
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.vk
|
51
|
+
SmartVkApi::VK.new
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.call(method_name, params = {})
|
55
|
+
vk.call(method_name, params)
|
12
56
|
end
|
13
57
|
end
|
data/spec/call_spec.rb
CHANGED
@@ -8,37 +8,63 @@ describe SmartVkApi::VK do
|
|
8
8
|
let (:vk) { SmartVkApi::VK.new }
|
9
9
|
let (:default_response_body) { {:response => {:test => 'yes'} } }
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
11
|
+
before do
|
12
|
+
SmartVkApi.reset_configuration
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#method_url' do
|
16
|
+
context 'without access token' do
|
17
|
+
it 'should raise ArgumentError when method name is nil' do
|
18
|
+
expect{ vk.method_url(nil) }.to raise_error(ArgumentError, 'Method name could not be empty')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should raise ArgumentError when method name is empty string' do
|
22
|
+
expect{ vk.method_url('') }.to raise_error(ArgumentError, 'Method name could not be empty')
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should take care of method name' do
|
26
|
+
expect(vk.method_url('users.get')).to eq('https://api.vk.com/method/users.get')
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should take care of parameters' do
|
30
|
+
expect(vk.method_url('users.get', {:aaa => :bbb, :user_ids => :kimrgrey})).to eq('https://api.vk.com/method/users.get?aaa=bbb&user_ids=kimrgrey')
|
31
|
+
end
|
22
32
|
end
|
23
33
|
|
24
|
-
|
25
|
-
|
34
|
+
context 'with access token' do
|
35
|
+
it 'should add access token when no parameters given' do
|
36
|
+
expect(vk.method_url('users.get', :access_token => '7a6fa4dff77a228eeda56603')).to eq('https://api.vk.com/method/users.get?access_token=7a6fa4dff77a228eeda56603')
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should use access token from configuration by default' do
|
40
|
+
SmartVkApi.configure do |conf|
|
41
|
+
conf.access_token = '7a6fa4dff77a228eeda56603'
|
42
|
+
end
|
43
|
+
expect(vk.method_url('users.get')).to eq('https://api.vk.com/method/users.get?access_token=7a6fa4dff77a228eeda56603')
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should use specified access token if it was given' do
|
47
|
+
SmartVkApi.configure do |conf|
|
48
|
+
conf.access_token = '7a6fa4dff77a228eeda56603'
|
49
|
+
end
|
50
|
+
expect(vk.method_url('users.get', :access_token => '7a6fa4dff77a228eeda56604')).to eq('https://api.vk.com/method/users.get?access_token=7a6fa4dff77a228eeda56604')
|
51
|
+
end
|
26
52
|
end
|
27
53
|
end
|
28
54
|
|
29
55
|
describe '#http' do
|
30
56
|
it 'should return http connection if block was not given' do
|
31
|
-
expect( vk.http('
|
57
|
+
expect( vk.http('users.get')).to be_a(Net::HTTP)
|
32
58
|
end
|
33
59
|
|
34
60
|
it 'should return result of block call if block was given' do
|
35
|
-
stub_request(:get, "https://api.vk.com/method/
|
36
|
-
expect( vk.http('
|
61
|
+
stub_request(:get, "https://api.vk.com/method/users.get").to_return(:status => 200, :body => default_response_body.to_json)
|
62
|
+
expect( vk.http('users.get') { |_| 'result of block' }).to eq('result of block')
|
37
63
|
end
|
38
64
|
|
39
65
|
it 'should pass http connection as parameter into block' do
|
40
|
-
stub_request(:get, "https://api.vk.com/method/
|
41
|
-
expect(vk.http('
|
66
|
+
stub_request(:get, "https://api.vk.com/method/users.get").to_return(:status => 200, :body => default_response_body.to_json)
|
67
|
+
expect(vk.http('users.get') { |http| http }).to be_a(Net::HTTPResponse)
|
42
68
|
end
|
43
69
|
|
44
70
|
it 'should setup appropriate headers' do
|
@@ -46,54 +72,54 @@ describe SmartVkApi::VK do
|
|
46
72
|
'Content-Type' =>'application/json',
|
47
73
|
'Content-Type' =>'application/json'
|
48
74
|
}
|
49
|
-
stub_request(:get, "https://api.vk.com/method/
|
50
|
-
vk.call('
|
51
|
-
expect(WebMock).to have_requested(:get, "https://api.vk.com/method/
|
75
|
+
stub_request(:get, "https://api.vk.com/method/users.get").to_return(:status => 200, :body => default_response_body.to_json)
|
76
|
+
vk.call('users.get')
|
77
|
+
expect(WebMock).to have_requested(:get, "https://api.vk.com/method/users.get").with(:headers => headers)
|
52
78
|
end
|
53
79
|
end
|
54
80
|
|
55
81
|
describe '#call' do
|
56
82
|
it 'should send request to appropriate url according to method name' do
|
57
|
-
stub_request(:get, "https://api.vk.com/method/
|
58
|
-
vk.call('
|
59
|
-
expect(WebMock).to have_requested(:get, "https://api.vk.com/method/
|
83
|
+
stub_request(:get, "https://api.vk.com/method/users.get").to_return(:status => 200, :body => default_response_body.to_json)
|
84
|
+
vk.call('users.get')
|
85
|
+
expect(WebMock).to have_requested(:get, "https://api.vk.com/method/users.get")
|
60
86
|
end
|
61
87
|
|
62
88
|
it 'should send request to appropriate url according params' do
|
63
|
-
stub_request(:get, "https://api.vk.com/method/
|
64
|
-
vk.call('
|
65
|
-
expect(WebMock).to have_requested(:get, "https://api.vk.com/method/
|
89
|
+
stub_request(:get, "https://api.vk.com/method/users.get?user_ids=kimrgrey").to_return(:status => 200, :body => default_response_body.to_json)
|
90
|
+
vk.call('users.get', {:user_ids => 'kimrgrey'})
|
91
|
+
expect(WebMock).to have_requested(:get, "https://api.vk.com/method/users.get?user_ids=kimrgrey")
|
66
92
|
end
|
67
93
|
|
68
94
|
it 'should return raise MethodCallError if body of response is nil' do
|
69
|
-
stub_request(:get, "https://api.vk.com/method/
|
70
|
-
expect { vk.call('
|
95
|
+
stub_request(:get, "https://api.vk.com/method/users.get").to_return(:status => 200, :body => nil)
|
96
|
+
expect { vk.call('users.get') }.to raise_error(SmartVkApi::MethodCallError, 'Response could not be empty')
|
71
97
|
end
|
72
98
|
|
73
99
|
it 'should return raise MethodCallError if body of response is empty string' do
|
74
|
-
stub_request(:get, "https://api.vk.com/method/
|
75
|
-
expect { vk.call('
|
100
|
+
stub_request(:get, "https://api.vk.com/method/users.get").to_return(:status => 200, :body => "")
|
101
|
+
expect { vk.call('users.get') }.to raise_error(SmartVkApi::MethodCallError, 'Response could not be empty')
|
76
102
|
end
|
77
103
|
|
78
104
|
it 'should return raise MethodCallError if body of response has no key :response' do
|
79
|
-
stub_request(:get, "https://api.vk.com/method/
|
80
|
-
expect { vk.call('
|
105
|
+
stub_request(:get, "https://api.vk.com/method/users.get").to_return(:status => 200, :body => { :bad => :response }.to_json)
|
106
|
+
expect { vk.call('users.get') }.to raise_error(SmartVkApi::MethodCallError, 'Response should include key named :response')
|
81
107
|
end
|
82
108
|
|
83
109
|
it 'should raise MethodCallError error in case of internal server error' do
|
84
|
-
stub_request(:get, "https://api.vk.com/method/
|
85
|
-
expect { vk.call('
|
110
|
+
stub_request(:get, "https://api.vk.com/method/users.get").to_return(:status => 500, :body => 'Internal Server Error')
|
111
|
+
expect { vk.call('users.get') }.to raise_error(SmartVkApi::MethodCallError, 'Internal Server Error')
|
86
112
|
end
|
87
113
|
|
88
114
|
it 'should raise MethodCallError in case of method call error' do
|
89
115
|
response = { :error => { :error_code => 113, :error_msg => 'Invalid user id' } }
|
90
|
-
stub_request(:get, "https://api.vk.com/method/
|
91
|
-
expect { vk.call('
|
116
|
+
stub_request(:get, "https://api.vk.com/method/users.get").to_return(:status => 200, :body => response.to_json)
|
117
|
+
expect { vk.call('users.get') }.to raise_error(SmartVkApi::MethodCallError, response.to_json)
|
92
118
|
end
|
93
119
|
|
94
120
|
it 'should return value of :response key of returned json' do
|
95
|
-
stub_request(:get, "https://api.vk.com/method/
|
96
|
-
expect(vk.call('
|
121
|
+
stub_request(:get, "https://api.vk.com/method/users.get").to_return(:status => 200, :body => default_response_body.to_json)
|
122
|
+
expect(vk.call('users.get')).to eq(default_response_body[:response])
|
97
123
|
end
|
98
124
|
end
|
99
125
|
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SmartVkApi::VK do
|
4
|
+
it { is_expected.to respond_to(:users, :wall, :photos, :friends, :audio, :groups) }
|
5
|
+
|
6
|
+
before do
|
7
|
+
SmartVkApi.reset_configuration
|
8
|
+
end
|
9
|
+
|
10
|
+
describe 'methods proxy' do
|
11
|
+
let (:vk) { SmartVkApi::VK.new }
|
12
|
+
let (:default_response_body) { {:response => {:test => 'yes'} } }
|
13
|
+
|
14
|
+
it 'should allow to call API methods using scope.method notation' do
|
15
|
+
expect(vk.users).to respond_to(:get, :search, :report)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should perform API request on method call' do
|
19
|
+
stub_request(:get, "https://api.vk.com/method/users.get").to_return(:status => 200, :body => default_response_body.to_json)
|
20
|
+
vk.users.get
|
21
|
+
expect(WebMock).to have_requested(:get, "https://api.vk.com/method/users.get")
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should pass parameters to API request' do
|
25
|
+
stub_request(:get, "https://api.vk.com/method/users.get?user_ids=kimrgrey").to_return(:status => 200, :body => default_response_body.to_json)
|
26
|
+
vk.users.get({:user_ids => "kimrgrey"})
|
27
|
+
expect(WebMock).to have_requested(:get, "https://api.vk.com/method/users.get?user_ids=kimrgrey")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'configuration' do
|
32
|
+
it { is_expected.to respond_to(:configuration) }
|
33
|
+
|
34
|
+
before do
|
35
|
+
SmartVkApi.configure do |conf|
|
36
|
+
conf.app_id = '0000000'
|
37
|
+
conf.app_token = '7a6fa4dff77a228eeda56603'
|
38
|
+
conf.access_token = '7a6fa4dff77a228eeda220349'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should use global configuration by default' do
|
43
|
+
vk = SmartVkApi::VK.new
|
44
|
+
expect(vk.configuration).to eq(SmartVkApi.configuration)
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should provide direct access to configuration fields' do
|
48
|
+
vk = SmartVkApi::VK.new
|
49
|
+
expect(vk.app_id).to eq('0000000')
|
50
|
+
expect(vk.app_token).to eq('7a6fa4dff77a228eeda56603')
|
51
|
+
expect(vk.access_token).to eq('7a6fa4dff77a228eeda220349')
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should be ready that configuration will be nil' do
|
55
|
+
SmartVkApi.reset_configuration
|
56
|
+
vk = SmartVkApi::VK.new
|
57
|
+
expect(vk.configuration).to be nil
|
58
|
+
expect(vk.app_id).to be nil
|
59
|
+
expect(vk.app_token).to be nil
|
60
|
+
expect(vk.access_token).to be nil
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'should use specific configuration if is was given' do
|
64
|
+
config = SmartVkApi::Configuration.new
|
65
|
+
vk = SmartVkApi::VK.new(config)
|
66
|
+
expect(vk.configuration).to eq(config)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SmartVkApi do
|
4
|
+
|
5
|
+
describe 'call' do
|
6
|
+
it { is_expected.to respond_to(:vk) }
|
7
|
+
it { is_expected.to respond_to(:call) }
|
8
|
+
|
9
|
+
it 'should delegate call to VK instance' do
|
10
|
+
vk = SmartVkApi.vk
|
11
|
+
allow(SmartVkApi).to receive(:vk) { vk }
|
12
|
+
expect(vk).to receive(:call)
|
13
|
+
SmartVkApi.call('users.get', {:user_ids => 'kimrgrey'})
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe 'configuration' do
|
18
|
+
it { is_expected.to respond_to(:configure) }
|
19
|
+
|
20
|
+
before do
|
21
|
+
SmartVkApi.configure do |conf|
|
22
|
+
conf.app_id = '0000000'
|
23
|
+
conf.app_token = '7a6fa4dff77a228eeda56603'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should allow to reset configuration' do
|
28
|
+
SmartVkApi.reset_configuration
|
29
|
+
expect(SmartVkApi.configuration).to be nil
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should allow to read global configuration' do
|
33
|
+
expect(SmartVkApi.configuration.app_id).to eq('0000000')
|
34
|
+
expect(SmartVkApi.configuration.app_token).to eq('7a6fa4dff77a228eeda56603')
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_vk_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Tsvetkov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -76,16 +76,21 @@ files:
|
|
76
76
|
- ".gitignore"
|
77
77
|
- ".rspec"
|
78
78
|
- ".travis.yml"
|
79
|
+
- CHANGELOG.md
|
79
80
|
- Gemfile
|
80
81
|
- LICENSE.txt
|
81
82
|
- README.md
|
82
83
|
- Rakefile
|
83
84
|
- lib/smart_vk_api.rb
|
84
85
|
- lib/smart_vk_api/call.rb
|
86
|
+
- lib/smart_vk_api/configuration.rb
|
85
87
|
- lib/smart_vk_api/constants.rb
|
88
|
+
- lib/smart_vk_api/methods.rb
|
86
89
|
- lib/smart_vk_api/version.rb
|
87
90
|
- smart_vk_api.gemspec
|
88
91
|
- spec/call_spec.rb
|
92
|
+
- spec/methods_spec.rb
|
93
|
+
- spec/smart_vk_api_spec.rb
|
89
94
|
- spec/spec_helper.rb
|
90
95
|
homepage: https://github.com/kimrgrey/smart_vk_api
|
91
96
|
licenses:
|
@@ -113,4 +118,6 @@ specification_version: 4
|
|
113
118
|
summary: Small, thin and fast client for VK API
|
114
119
|
test_files:
|
115
120
|
- spec/call_spec.rb
|
121
|
+
- spec/methods_spec.rb
|
122
|
+
- spec/smart_vk_api_spec.rb
|
116
123
|
- spec/spec_helper.rb
|