pechkinrb 0.0.3 → 0.0.4

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: b12560dec83e2cc81e6e2767488f07ca6f136742
4
- data.tar.gz: 5fd46487c190259b0e508f7343ce42ac5651821c
3
+ metadata.gz: 68527ebfa26c7cbe361089e24f07a45b124e2c02
4
+ data.tar.gz: 30e61fa6e4cd727c1d0fd9190b1b7df40df890d3
5
5
  SHA512:
6
- metadata.gz: c231c3a005e5f9ce01f5042ba7c4949080a0969490fe2cd33a25d88f29d499689ea1411b023d99b3c1ce96cfa54f5442c8aec1c6356b091c18954a08136325f2
7
- data.tar.gz: 0c9198aac51848c50e261658547482f9a3d085899812bbe77016bb37a87da33d94614a115d5a842e54bd87076be9ef5ffdab6efe7f892d7682758386b17db175
6
+ metadata.gz: 8cc21827802e78eec2978c54d5ddc06e352a5332197fe3b0445a659fe0ff27ddac1862336961bd3483727545614900a8717b75668aefef04dfe8dacf09324d13
7
+ data.tar.gz: a36d6be6d8a2aa52cc572a629e3ae42b38c13a1c7ecfa9f80ef9cb2e95bda3897ecb7eb118fbf9fd85151c816bf1c8610b23ab391454ec0a45e893367b4c4208
data/README.md CHANGED
@@ -2,10 +2,14 @@
2
2
 
3
3
  [![Code Climate](https://codeclimate.com/github/crsde/PechkinRb/badges/gpa.svg)](https://codeclimate.com/github/crsde/PechkinRb)
4
4
 
5
- This gem provides you with easy Ruby interface for pechkin-mail.ru mail service.
5
+ This gem provides you with simple Ruby interface for pechkin-mail.ru mail service.
6
6
 
7
7
  Documentation available at http://www.rubydoc.info/github/crsde/PechkinRb
8
8
 
9
+ Original API documentation https://pechkin-mail.ru/api/
10
+
11
+ At this moment, mainly list management features implemented, but there are common way to call any API method, using *#call_method*
12
+
9
13
  ## Installation
10
14
 
11
15
  Add this line to your application's Gemfile:
@@ -22,10 +26,15 @@ Or install it yourself as:
22
26
 
23
27
  ## Usage
24
28
 
29
+ PechkinRb declares some classes for API objects, like *List*, *Member*, etc
30
+
25
31
  require "pechkinrb"
26
32
  conn = Pechkin::Connection.new('login', 'password')
27
33
  conn.lists # => Array of Pechkin::List instances
28
34
 
35
+ Also, you can use universal invocation method with *#call_method*
36
+
37
+ conn.call_method('lists.get_members', list_id: 1)
29
38
 
30
39
  ## Contributing
31
40
 
@@ -1,4 +1,7 @@
1
1
  module Pechkin
2
- class ApiException < StandardError
2
+ class ApiException < StandardError
3
+ end
4
+
5
+ class NoDataException < ApiException
3
6
  end
4
7
  end
@@ -49,7 +49,7 @@ module Pechkin
49
49
  #
50
50
  # @param params [Hash] Params to be passed
51
51
  # @return [Pechkin::Member] New member instance
52
- def add_member
52
+ def add_member(params)
53
53
  added = connection.call_method('lists.add_member', params.merge(id_params))
54
54
  get_members(added).first
55
55
  end
@@ -32,10 +32,15 @@ module Pechkin
32
32
  def call_method(method, params = {})
33
33
  response = connection.post '/', {method: method}.merge(credentials).merge(params)
34
34
  err_code = response.body["response"]["msg"]["err_code"]
35
- unless err_code == 0
35
+
36
+ case err_code
37
+ when 0
38
+ response.body["response"]["data"]
39
+ when 4
40
+ raise Pechkin::NoDataException.new(response.body["response"]["msg"]["text"])
41
+ else
36
42
  raise Pechkin::ApiException.new(response.body["response"]["msg"]["text"])
37
43
  end
38
- response.body["response"]["data"]
39
44
  end
40
45
 
41
46
  # Invokes 'lists.get' API method
@@ -1,3 +1,3 @@
1
1
  module Pechkinrb
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/pechkinrb.gemspec CHANGED
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.6"
22
- spec.add_development_dependency "rake"
23
- spec.add_development_dependency "rspec"
22
+ spec.add_development_dependency "rake", "~> 10.4"
23
+ spec.add_development_dependency "rspec", "~> 3.0"
24
24
 
25
- spec.add_runtime_dependency 'faraday'
26
- spec.add_runtime_dependency 'faraday_middleware'
25
+ spec.add_runtime_dependency 'faraday', "~> 0.9"
26
+ spec.add_runtime_dependency 'faraday_middleware', "~> 0.9"
27
27
  end
@@ -28,6 +28,16 @@ describe Pechkin::Connection do
28
28
  }
29
29
  }]
30
30
  end
31
+
32
+ stubs.post("/", {username: '1', password: '2', method: 'get_none', param: 'value'} ) do
33
+ [200, {}, {
34
+ 'response' =>
35
+ {
36
+ 'msg' => { 'text' => "Error", 'err_code' => 4 },
37
+ 'data' => { 'ok' => "ok" }
38
+ }
39
+ }]
40
+ end
31
41
  end
32
42
  end
33
43
 
@@ -42,5 +52,9 @@ describe Pechkin::Connection do
42
52
  it "raises error when bad response received" do
43
53
  expect { connection.call_method('get_bad', {param: 'value'}) }.to raise_error(Pechkin::ApiException)
44
54
  end
55
+
56
+ it "raises no_data error when bad response received" do
57
+ expect { connection.call_method('get_none', {param: 'value'}) }.to raise_error(Pechkin::NoDataException)
58
+ end
45
59
  end
46
60
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pechkinrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandr Prokopenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-02 00:00:00.000000000 Z
11
+ date: 2015-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,58 +28,58 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '10.4'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '10.4'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '3.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: faraday
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '0.9'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '0.9'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: faraday_middleware
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '0.9'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '0.9'
83
83
  description: Interface for pechkin-mail.ru service API
84
84
  email:
85
85
  - prokopenko@igc.ru