moyasar 0.3.3 → 0.4.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 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