moyasar 0.3.3 → 0.4.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: 4a5825f485b6b9d2481d6ef791902733a96a3d60
4
- data.tar.gz: d64a15c3921af39ae8e7bb65a7cee68f305331ec
3
+ metadata.gz: 54dc5f434f8cd3766a3a8d8ce30c90504c75d4ad
4
+ data.tar.gz: 1e0b19e49a5c77e515a40593b05185adc488b325
5
5
  SHA512:
6
- metadata.gz: 7c5e7ba63511d5d241ed63eef52bc2762399950a56a7b0b4bc40d886d9b7fd56b716e5570462c3dcb8acf79681b096d6a376c953a69e34327ab70d0f6bc85c81
7
- data.tar.gz: 69894a759921515c9567cef3f566080887d50247644bf728206e487ded1eefe3cded12f0ddd8caf8ee3b470aab43a055a4de2978a49bc2544d76c8baf17cd0c2
6
+ metadata.gz: 2e4b91fe32e1a192097a5b5fc9fec77eb1b7db29941878d757b2c640f8aa8bee72734df3ae5dffa1bf51b7076e214392615375b9aac379e4fbce16f5373dcaab
7
+ data.tar.gz: 24ac15b7b9ee2e56123b85cbf08660f420360db123b5aaa9fb8924df680f8618fd0c524cae63d30a1c12c114e7f1f0315c9190943919529d01a5ed6ee358f09e
data/.gitignore CHANGED
@@ -28,8 +28,8 @@ build/
28
28
 
29
29
  # for a library or gem, you might want to ignore these files since the code is
30
30
  # intended to run in multiple environments; otherwise, check them in:
31
- # Gemfile.lock
32
- # .ruby-version
31
+ Gemfile.lock
32
+ .ruby-version
33
33
  # .ruby-gemset
34
34
 
35
35
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.10
4
+ - 2.2
5
+ - 2.3.3
6
+ - 2.4.0-preview3
7
+ - jruby-head
data/Gemfile CHANGED
@@ -4,7 +4,9 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  group :development do
7
+ gem 'webmock'
7
8
  gem 'minitest-reporters'
8
- gem 'guard' # NOTE: this is necessary in newer versions
9
- gem 'guard-minitest'
9
+
10
+ # gem 'guard'
11
+ # gem 'guard-minitest'
10
12
  end
data/README.md CHANGED
@@ -1,14 +1,18 @@
1
1
  # moyasar-ruby
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/moyasar.svg)](http://badge.fury.io/rb/moyasar)
4
+ [![Build Status](https://travis-ci.org/moyasar/moyasar-ruby.svg?branch=master)](https://travis-ci.org/moyasar/moyasar-ruby)
5
+
6
+
3
7
  Moyasar Ruby language wrapper
4
8
 
5
9
  ## Documentation
6
10
 
7
11
  See the [Ruby API docs](https://moyasar.com/docs/api/?ruby).
8
12
 
9
- ### Requirements
13
+ ## Requirements
10
14
 
11
- * Ruby 2.0 or above.
15
+ * Ruby 2.1 or above.
12
16
 
13
17
  ## Installation
14
18
 
@@ -1,7 +1,7 @@
1
1
  require 'uri'
2
+ require 'cgi'
2
3
  require 'net/http'
3
4
  require 'json'
4
- require 'ostruct'
5
5
 
6
6
  require 'moyasar/version'
7
7
  require 'moyasar/http_client'
@@ -33,8 +33,6 @@ module Moyasar
33
33
  @api_base = 'https://api.moyasar.com'
34
34
  @api_version = 'v1'
35
35
 
36
- @client = Moyasar::HTTPClient.new(@api_base)
37
-
38
36
  Errors = {
39
37
  'authentication_error' => Moyasar::AuthenticationError,
40
38
  'invalid_request_error' => Moyasar::InvalidRequestError,
@@ -53,13 +51,15 @@ module Moyasar
53
51
  raise AuthenticationError.new('No API Key provided.')
54
52
  end
55
53
 
56
- # puts method, url, key
57
- response = @client.request_json(method, url, key, params, headers)
54
+ client = Moyasar::HTTPClient.new(@api_base)
55
+ response = client.request_json(method, url, key, params, headers)
58
56
  case response.code
59
57
  when 400..401
60
58
  error_data = response.body.merge({'http_code' => response.code})
61
59
  error = Errors[response.body['type']].new(error_data)
62
60
  raise error
61
+ when 500
62
+ raise APIError, "We had problem with Moyasar server."
63
63
  end
64
64
  response
65
65
  end
@@ -1,4 +1,7 @@
1
1
  module Moyasar
2
2
  class APIError < MoyasarError
3
+ def initialize(message)
4
+ super({message: message, type: 'API_ERROR', http_code: 500})
5
+ end
3
6
  end
4
7
  end
@@ -4,7 +4,10 @@ module Moyasar
4
4
 
5
5
  def initialize(attrs = {})
6
6
  @errors = attrs['errors']
7
- super
7
+
8
+ attrs['message'] = "#{attrs['message']}: #{@errors.keys.first} #{@errors.values.first.first}" if @errors.keys.count == 1
9
+ super(attrs)
8
10
  end
11
+
9
12
  end
10
13
  end
@@ -19,7 +19,7 @@ module Moyasar
19
19
 
20
20
  def resource_url
21
21
  if self == Resource
22
- raise NotImplementedError.new('Resource is an abstract class. You should perform actions on its subclasses (Payment, Invoice, etc.)')
22
+ raise NotImplementedError.new('Resource is an abstract class. You should perform actions on its subclasses (Payment, Invoice, etc.)')
23
23
  end
24
24
  "/#{Moyasar.api_version}/#{CGI.escape(resource_name)}"
25
25
  end
@@ -1,3 +1,3 @@
1
1
  module Moyasar
2
- VERSION = '0.3.3'
2
+ VERSION = '0.4.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moyasar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abdulaziz AlShetwi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-10 00:00:00.000000000 Z
11
+ date: 2016-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -60,8 +60,8 @@ extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
62
  - ".gitignore"
63
+ - ".travis.yml"
63
64
  - Gemfile
64
- - Gemfile.lock
65
65
  - Guardfile
66
66
  - LICENSE
67
67
  - README.md
@@ -1,70 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- moyasar (0.3.3)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- ansi (1.5.0)
10
- builder (3.2.2)
11
- coderay (1.1.1)
12
- ffi (1.9.14)
13
- formatador (0.2.5)
14
- guard (2.14.0)
15
- formatador (>= 0.2.4)
16
- listen (>= 2.7, < 4.0)
17
- lumberjack (~> 1.0)
18
- nenv (~> 0.1)
19
- notiffany (~> 0.0)
20
- pry (>= 0.9.12)
21
- shellany (~> 0.0)
22
- thor (>= 0.18.1)
23
- guard-compat (1.2.1)
24
- guard-minitest (2.4.6)
25
- guard-compat (~> 1.2)
26
- minitest (>= 3.0)
27
- listen (3.1.5)
28
- rb-fsevent (~> 0.9, >= 0.9.4)
29
- rb-inotify (~> 0.9, >= 0.9.7)
30
- ruby_dep (~> 1.2)
31
- lumberjack (1.0.10)
32
- method_source (0.8.2)
33
- minitest (5.9.0)
34
- minitest-reporters (1.1.11)
35
- ansi
36
- builder
37
- minitest (>= 5.0)
38
- ruby-progressbar
39
- nenv (0.3.0)
40
- notiffany (0.1.1)
41
- nenv (~> 0.1)
42
- shellany (~> 0.0)
43
- pry (0.10.4)
44
- coderay (~> 1.1.0)
45
- method_source (~> 0.8.1)
46
- slop (~> 3.4)
47
- rake (11.2.2)
48
- rb-fsevent (0.9.7)
49
- rb-inotify (0.9.7)
50
- ffi (>= 0.5.0)
51
- ruby-progressbar (1.8.1)
52
- ruby_dep (1.4.0)
53
- shellany (0.0.1)
54
- slop (3.6.0)
55
- thor (0.19.1)
56
-
57
- PLATFORMS
58
- ruby
59
-
60
- DEPENDENCIES
61
- bundler
62
- guard
63
- guard-minitest
64
- minitest
65
- minitest-reporters
66
- moyasar!
67
- rake
68
-
69
- BUNDLED WITH
70
- 1.12.5