vkontakte_api 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 1.0.2 (08.09.2012)
2
+
3
+ * Пространство имен `widgets`
4
+ * Возможность изменять HTTP-метод, используемый в методах API
5
+
1
6
  ## 1.0.1 (13.08.2012)
2
7
 
3
8
  * Пространство имен `leads`
data/README.md CHANGED
@@ -178,6 +178,8 @@ VkontakteApi.configure do |config|
178
178
 
179
179
  # faraday-адаптер для сетевых запросов
180
180
  config.adapter = :net_http
181
+ # HTTP-метод для вызова методов API (:get или :post)
182
+ config.http_verb = :get
181
183
  # параметры для faraday-соединения
182
184
  config.faraday_options = {
183
185
  ssl: {
@@ -203,6 +205,8 @@ VkontakteApi.register_alias
203
205
 
204
206
  По умолчанию для HTTP-запросов используется `Net::HTTP`; можно выбрать [любой другой адаптер](https://github.com/technoweenie/faraday/blob/master/lib/faraday/adapter.rb), поддерживаемый `faraday`.
205
207
 
208
+ ВКонтакте [позволяет](http://vk.com/developers.php?oid=-1&p=%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2_%D0%BA_API) использовать как `GET`-, так и `POST`-запросы при вызове методов API. По умолчанию `vkontakte_api` использует `GET`, но в настройке `http_verb` можно указать `:post`, чтобы совершать `POST`-запросы.
209
+
206
210
  При необходимости можно указать параметры для faraday-соединения - например, параметры прокси-сервера или путь к SSL-сертификатам.
207
211
 
208
212
  Чтобы сгенерировать файл с настройками по умолчанию в rails-приложении, можно воспользоваться генератором `vkontakte_api:install`:
@@ -222,6 +226,7 @@ $ rails generate vkontakte_api:install
222
226
 
223
227
  * метод, возвращающий права текущего токена в читабельной форме (используя `getUserSettings` и кэшируя результат)
224
228
  * сохранение параметра `expires_in` токена в объекте `VkontakteApi::Client` после авторизации через `VkontakteApi.authorize`
229
+ * `POST`-запросы по умолчанию
225
230
 
226
231
  ## Участие в разработке
227
232
 
@@ -7,6 +7,9 @@ VkontakteApi.configure do |config|
7
7
  # Faraday adapter to make requests with:
8
8
  # config.adapter = :net_http
9
9
 
10
+ # HTTP verb for API methods (:get or :post)
11
+ # config.http_verb = :get
12
+
10
13
  # Logging parameters:
11
14
  # log everything through the rails logger
12
15
  config.logger = Rails.logger
@@ -14,7 +14,7 @@ module VkontakteApi
14
14
  # @return [Hashie::Mash] Mashed server response.
15
15
  def call(method_name, args = {}, token = nil)
16
16
  flat_arguments = Utils.flatten_arguments(args)
17
- connection(:url => URL_PREFIX, :token => token).get(method_name, flat_arguments).body
17
+ connection(:url => URL_PREFIX, :token => token).send(VkontakteApi.http_verb, method_name, flat_arguments).body
18
18
  end
19
19
 
20
20
  # Faraday connection.
@@ -29,6 +29,7 @@ module VkontakteApi
29
29
  Faraday.new(url, VkontakteApi.faraday_options) do |builder|
30
30
  builder.request :oauth2, token unless token.nil?
31
31
  builder.request :multipart
32
+ builder.request :url_encoded
32
33
  builder.response :vk_logger
33
34
  builder.response :mashify
34
35
  builder.response :oj, :preserve_raw => true
@@ -6,7 +6,18 @@ module VkontakteApi
6
6
  # @note `VkontakteApi::Configuration` extends `VkontakteApi` so these methods should be called from the latter.
7
7
  module Configuration
8
8
  # Available options.
9
- OPTION_NAMES = [:app_id, :app_secret, :redirect_uri, :adapter, :faraday_options, :logger, :log_requests, :log_errors, :log_responses]
9
+ OPTION_NAMES = [
10
+ :app_id,
11
+ :app_secret,
12
+ :redirect_uri,
13
+ :adapter,
14
+ :http_verb,
15
+ :faraday_options,
16
+ :logger,
17
+ :log_requests,
18
+ :log_errors,
19
+ :log_responses
20
+ ]
10
21
 
11
22
  attr_accessor *OPTION_NAMES
12
23
 
@@ -17,6 +28,9 @@ module VkontakteApi
17
28
  # Default HTTP adapter.
18
29
  DEFAULT_ADAPTER = Faraday.default_adapter
19
30
 
31
+ # Default HTTP verb for API methods.
32
+ DEFAULT_HTTP_VERB = :get
33
+
20
34
  # Logger default options.
21
35
  DEFAULT_LOGGER_OPTIONS = {
22
36
  :requests => true,
@@ -38,6 +52,7 @@ module VkontakteApi
38
52
  # Reset all configuration options to defaults.
39
53
  def reset
40
54
  @adapter = DEFAULT_ADAPTER
55
+ @http_verb = DEFAULT_HTTP_VERB
41
56
  @faraday_options = {}
42
57
  @logger = ::Logger.new(STDOUT)
43
58
  @log_requests = DEFAULT_LOGGER_OPTIONS[:requests]
@@ -16,6 +16,7 @@
16
16
  - pages
17
17
  - stats
18
18
  - subscriptions
19
+ - widgets
19
20
  - leads
20
21
  - messages
21
22
  - status
@@ -1,4 +1,4 @@
1
1
  module VkontakteApi
2
2
  # Library version.
3
- VERSION = '1.0.1'
3
+ VERSION = '1.0.2'
4
4
  end
@@ -31,6 +31,19 @@ describe VkontakteApi::API do
31
31
  it "returns the response body" do
32
32
  subject.call('apiMethod').should == @result
33
33
  end
34
+
35
+ it "uses an HTTP verb from VkontakteApi.http_verb" do
36
+ http_verb = stub("HTTP verb")
37
+ VkontakteApi.http_verb = http_verb
38
+
39
+ response = stub("Response", :body => stub)
40
+ @connection.should_receive(:send).with(http_verb, 'apiMethod', {}).and_return(response)
41
+ subject.call('apiMethod')
42
+ end
43
+
44
+ after(:each) do
45
+ VkontakteApi.reset
46
+ end
34
47
  end
35
48
 
36
49
  describe ".connection" do
@@ -24,6 +24,7 @@ describe VkontakteApi::Configuration do
24
24
  Configurable.app_id.should be_nil
25
25
  Configurable.app_secret.should be_nil
26
26
  Configurable.adapter.should == VkontakteApi::Configuration::DEFAULT_ADAPTER
27
+ Configurable.http_verb.should == VkontakteApi::Configuration::DEFAULT_HTTP_VERB
27
28
  Configurable.faraday_options.should == {}
28
29
 
29
30
  Configurable.logger.should be_a(Logger)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vkontakte_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-13 00:00:00.000000000 Z
12
+ date: 2012-09-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday