synapse_client 0.0.1
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 +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +15 -0
- data/.travis.yml +15 -0
- data/Gemfile +4 -0
- data/Guardfile +11 -0
- data/LICENSE +22 -0
- data/README.md +116 -0
- data/Rakefile +11 -0
- data/lib/synapse_client.rb +137 -0
- data/lib/synapse_client/api_operations/create.rb +16 -0
- data/lib/synapse_client/api_operations/list.rb +17 -0
- data/lib/synapse_client/api_operations/response.rb +20 -0
- data/lib/synapse_client/api_resource.rb +50 -0
- data/lib/synapse_client/bank_account.rb +83 -0
- data/lib/synapse_client/customer.rb +140 -0
- data/lib/synapse_client/error.rb +42 -0
- data/lib/synapse_client/merchant.rb +24 -0
- data/lib/synapse_client/mfa.rb +26 -0
- data/lib/synapse_client/order.rb +65 -0
- data/lib/synapse_client/refreshed_tokens.rb +39 -0
- data/lib/synapse_client/security_question.rb +17 -0
- data/lib/synapse_client/util.rb +55 -0
- data/lib/synapse_client/version.rb +3 -0
- data/spec/spec_helper.rb +78 -0
- data/spec/synapse_client_bank_account_spec.rb +67 -0
- data/spec/synapse_client_customer_spec.rb +42 -0
- data/spec/synapse_client_order_spec.rb +53 -0
- data/spec/synapse_client_spec.rb +70 -0
- data/synapse_client.gemspec +34 -0
- metadata +253 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
|
2
|
+
module SynapseClient
|
3
|
+
module Util
|
4
|
+
|
5
|
+
def self.url_encode(key)
|
6
|
+
URI.escape(key.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.flatten_params(params, parent_key=nil)
|
10
|
+
result = []
|
11
|
+
params.each do |key, value|
|
12
|
+
calculated_key = parent_key ? "#{parent_key}[#{url_encode(key)}]" : url_encode(key)
|
13
|
+
if value.is_a?(Hash)
|
14
|
+
result += flatten_params(value, calculated_key)
|
15
|
+
elsif value.is_a?(Array)
|
16
|
+
result += flatten_params_array(value, calculated_key)
|
17
|
+
else
|
18
|
+
result << [calculated_key, value]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
result
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.flatten_params_array(value, calculated_key)
|
25
|
+
result = []
|
26
|
+
value.each do |elem|
|
27
|
+
if elem.is_a?(Hash)
|
28
|
+
result += flatten_params(elem, calculated_key)
|
29
|
+
elsif elem.is_a?(Array)
|
30
|
+
result += flatten_params_array(elem, calculated_key)
|
31
|
+
else
|
32
|
+
result << ["#{calculated_key}[]", elem]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
result
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.symbolize_names(object)
|
39
|
+
case object
|
40
|
+
when Hash
|
41
|
+
new_hash = Map.new
|
42
|
+
object.each do |key, value|
|
43
|
+
key = (key.to_sym rescue key) || key
|
44
|
+
new_hash[key] = symbolize_names(value)
|
45
|
+
end
|
46
|
+
new_hash
|
47
|
+
when Array
|
48
|
+
object.map { |value| symbolize_names(value) }
|
49
|
+
else
|
50
|
+
object
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'coveralls'
|
2
|
+
Coveralls.wear!
|
3
|
+
|
4
|
+
require 'pry'
|
5
|
+
require 'synapse_client'
|
6
|
+
|
7
|
+
|
8
|
+
#
|
9
|
+
def test_credentials
|
10
|
+
Map.new({
|
11
|
+
:client_id => "e06fa0f143a267c2ed8e",
|
12
|
+
:client_secret => "f578105bf9ae03d9310e0af6f4637c1bf363998b",
|
13
|
+
:merchant_synapse_id => 536,
|
14
|
+
:merchant_oauth_token => "16688788f22d8b46a83711b42ad9b0dec39b09ce",
|
15
|
+
:merchant_refresh_token => "37e6f092e3c9a5ad0c1a2f2c62fec6ab8cb44808",
|
16
|
+
:merchant_username => "0537fa5d0cb94aaea9e79900bc0cab",
|
17
|
+
:dev => true
|
18
|
+
})
|
19
|
+
end
|
20
|
+
SynapseClient.client_id = test_credentials.client_id
|
21
|
+
SynapseClient.client_secret = test_credentials.client_secret
|
22
|
+
SynapseClient.merchant_synapse_id = test_credentials.merchant_synapse_id
|
23
|
+
SynapseClient.dev = test_credentials.dev
|
24
|
+
|
25
|
+
|
26
|
+
#
|
27
|
+
# Most of this dummy data is taken from the examples at dev.synapsepay.com.
|
28
|
+
|
29
|
+
#
|
30
|
+
def dummy_customer_data
|
31
|
+
hex = SecureRandom.hex(4)
|
32
|
+
hex[0] = hex[0].upcase
|
33
|
+
|
34
|
+
Map.new({
|
35
|
+
:email => "foo+" + hex.downcase + "@example.com",
|
36
|
+
:fullname => "Foo Bar " + hex,
|
37
|
+
:phonenumber => sprintf('%010d', rand(10**10)),
|
38
|
+
:ip_address => Array.new(4){rand(256)}.join('.')
|
39
|
+
})
|
40
|
+
end
|
41
|
+
|
42
|
+
def get_dummy_customer
|
43
|
+
SynapseClient::Customer.create(dummy_customer_data)
|
44
|
+
end
|
45
|
+
|
46
|
+
#
|
47
|
+
def dummy_add_bank_account_info
|
48
|
+
Map.new({
|
49
|
+
:account_num => "1111111111",
|
50
|
+
:routing_num => "084000026",
|
51
|
+
:nickname => "Example bank account",
|
52
|
+
:account_type => "1",
|
53
|
+
:account_class => "1"
|
54
|
+
})
|
55
|
+
end
|
56
|
+
|
57
|
+
def dummy_link_bank_account_info
|
58
|
+
Map.new({
|
59
|
+
:username => "synapse_good",
|
60
|
+
:password => "test1234",
|
61
|
+
:pin => "1234",
|
62
|
+
:bank => "Bank of America"
|
63
|
+
})
|
64
|
+
end
|
65
|
+
|
66
|
+
def dummy_finish_linking_bank_account_info
|
67
|
+
Map.new({
|
68
|
+
:mfa => "test_answer",
|
69
|
+
:bank => "Bank of America"
|
70
|
+
})
|
71
|
+
end
|
72
|
+
|
73
|
+
def get_dummy_bank
|
74
|
+
|
75
|
+
SynapseClient::Customer.create(dummy_customer_data)
|
76
|
+
end
|
77
|
+
|
78
|
+
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SynapseClient::BankAccount do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@customer = get_dummy_customer
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "listing bank accounts" do
|
10
|
+
it "should return an empty array when a customer has 0 bank accounts" do
|
11
|
+
bank_accounts = @customer.bank_accounts
|
12
|
+
|
13
|
+
expect(bank_accounts).to be_an(Array)
|
14
|
+
expect(bank_accounts.count).to eq(0)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "adding a bank account" do
|
19
|
+
it "should successfully return the bank account." do
|
20
|
+
bank_account = @customer.add_bank_account(dummy_add_bank_account_info)
|
21
|
+
|
22
|
+
expect(bank_account).to be_a SynapseClient::BankAccount
|
23
|
+
|
24
|
+
expect(bank_account.id).to be_a Fixnum
|
25
|
+
expect(bank_account.account_number_string).to be_a String
|
26
|
+
expect(bank_account.routing_number_string).to be_a String
|
27
|
+
expect(bank_account.nickname).to be_a String
|
28
|
+
expect(bank_account.account_type).to be_a Fixnum
|
29
|
+
expect(bank_account.account_class).to be_a Fixnum
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "linking a bank account" do
|
34
|
+
it "should successfully return an mfa." do
|
35
|
+
mfa = @customer.link_bank_account(dummy_link_bank_account_info)
|
36
|
+
|
37
|
+
expect(mfa).to be_a SynapseClient::MFA
|
38
|
+
|
39
|
+
expect(mfa.type).to be_a String
|
40
|
+
expect(mfa.bank_access_token).to be_a String
|
41
|
+
expect(mfa.questions).to be_an Array
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should successfully finish linking with an mfa." do
|
45
|
+
mfa = @customer.link_bank_account(dummy_link_bank_account_info)
|
46
|
+
bank_accounts = @customer.finish_linking_bank_account(dummy_finish_linking_bank_account_info.merge({
|
47
|
+
:bank_account_token => mfa.bank_access_token
|
48
|
+
}))
|
49
|
+
|
50
|
+
expect(bank_accounts).to be_a Array
|
51
|
+
expect(bank_accounts.count).to be > 0
|
52
|
+
|
53
|
+
bank_accounts.each do |ba|
|
54
|
+
expect(ba.account_number_string).to be_a String
|
55
|
+
expect(ba.routing_number_string).to be_a String
|
56
|
+
expect(ba.bank_name).to be_a String
|
57
|
+
expect(ba.nickname).to be_a String
|
58
|
+
expect(ba.name_on_account).to be_a String
|
59
|
+
expect(ba.account_type).to be_a Fixnum
|
60
|
+
expect(ba.account_class).to be_a Fixnum
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SynapseClient::Customer do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@dummy_customer_data = dummy_customer_data
|
7
|
+
@customer = SynapseClient::Customer.create(@dummy_customer_data)
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
describe "creating a customer" do
|
12
|
+
it "should successfully return a customer object with tokens and other info." do
|
13
|
+
expect(@customer).to be_a SynapseClient::Customer
|
14
|
+
|
15
|
+
expect(@customer.email).to be @dummy_customer_data.email
|
16
|
+
expect(@customer.fullname).to be @dummy_customer_data.fullname
|
17
|
+
expect(@customer.phonenumber).to be @dummy_customer_data.phonenumber
|
18
|
+
expect(@customer.ip_address).to be @dummy_customer_data.ip_address
|
19
|
+
|
20
|
+
expect(@customer.access_token).to be_a String
|
21
|
+
expect(@customer.refresh_token).to be_a String
|
22
|
+
expect(@customer.expires_in).to be_a Fixnum
|
23
|
+
expect(@customer.username).to be_a String
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "retrieving a customer" do
|
28
|
+
it "should successfully return a customer object with tokens and other info." do
|
29
|
+
customer = SynapseClient::Customer.retrieve(@customer.access_token)
|
30
|
+
|
31
|
+
expect(customer).to be_a SynapseClient::Customer
|
32
|
+
|
33
|
+
expect(customer.id).to be_a Fixnum
|
34
|
+
expect(customer.email).to eq @dummy_customer_data.email
|
35
|
+
expect(customer.fullname).to eq @dummy_customer_data.fullname
|
36
|
+
expect(customer.phonenumber).to eq @dummy_customer_data.phonenumber
|
37
|
+
expect(customer.username).to be_a String
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SynapseClient::Order do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@customer = get_dummy_customer
|
7
|
+
@bank = @customer.add_bank_account(dummy_add_bank_account_info)
|
8
|
+
@amount_to_charge = rand(1..1000)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "getting orders for a customer" do
|
12
|
+
it "should return an empty array" do
|
13
|
+
orders = @customer.orders
|
14
|
+
|
15
|
+
expect(orders).to be_an(Array)
|
16
|
+
expect(orders.count).to eq(0)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "adding an order" do
|
21
|
+
it "should successfully return an order." do
|
22
|
+
order = @customer.add_order({
|
23
|
+
:amount => @amount_to_charge,
|
24
|
+
:bank_id => @bank.id
|
25
|
+
})
|
26
|
+
expect(order).to be_a SynapseClient::Order
|
27
|
+
|
28
|
+
expect(order.amount).to eq(@amount_to_charge)
|
29
|
+
expect(order.id).to be_a Fixnum
|
30
|
+
expect(order.status).to be_a Fixnum
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "retrieving an order" do
|
35
|
+
it "should successfully return an order." do
|
36
|
+
new_order = @customer.add_order({
|
37
|
+
:amount => @amount_to_charge,
|
38
|
+
:bank_id => @bank.id
|
39
|
+
})
|
40
|
+
order = SynapseClient::Order.retrieve(new_order.id)
|
41
|
+
|
42
|
+
expect(order).to be_a SynapseClient::Order
|
43
|
+
|
44
|
+
#expect(order.amount).to eq(@amount_to_charge)
|
45
|
+
#expect(order.id).to be_a Fixnum
|
46
|
+
expect(order.status).to be_a Fixnum
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SynapseClient do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
SynapseClient.client_id = test_credentials.client_id
|
7
|
+
SynapseClient.client_secret = test_credentials.client_secret
|
8
|
+
SynapseClient.merchant_synapse_id = test_credentials.merchant_synapse_id
|
9
|
+
SynapseClient.dev = test_credentials.dev
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "api keys should be stored" do
|
13
|
+
it 'stores the client_id on the top level module' do
|
14
|
+
expect(SynapseClient.client_id).to eq(test_credentials.client_id)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'stores the client_secret on the top level module' do
|
18
|
+
expect(SynapseClient.client_secret).to eq(test_credentials.client_secret)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'stores the merchant_synapse_id on the top level module' do
|
22
|
+
expect(SynapseClient.merchant_synapse_id).to eq(test_credentials.merchant_synapse_id)
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'stores that dev is true' do
|
26
|
+
expect(SynapseClient.dev).to eq(test_credentials.dev)
|
27
|
+
expect(SynapseClient.dev?).to eq(test_credentials.dev)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
describe "url generation is correct" do
|
33
|
+
it "should have the is_dev query param" do
|
34
|
+
expect(SynapseClient.api_url).to eq("https://sandbox.synapsepay.com?is_dev=true")
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should have the sandbox domain" do
|
38
|
+
expect(SynapseClient.api_url).to match("https://sandbox.synapsepay.com")
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should append a path to the url with a trailing slash" do
|
42
|
+
expect(SynapseClient.api_url("/foo")).to match("https://sandbox.synapsepay.com/foo/")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
describe "base request method" do
|
48
|
+
it "should raise an error when api keys are absent" do
|
49
|
+
SynapseClient.client_id = nil
|
50
|
+
expect { SynapseClient.request("get", "users") }.to raise_error
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should raise an error when api keys contain whitespace" do
|
54
|
+
SynapseClient.client_id = " foo bar "
|
55
|
+
expect { SynapseClient.request("get", "users") }.to raise_error
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should be able to do a basic get of bank statuses" do
|
59
|
+
response = SynapseClient.request("get", "/api/v2/bankstatus/show/")
|
60
|
+
|
61
|
+
expect(response).to be_an(SynapseClient::APIOperations::Response)
|
62
|
+
expect(response.successful?).to be true
|
63
|
+
|
64
|
+
expect(response.data.banks).to be_an(Array)
|
65
|
+
expect(response.data.banks.count).to be > 0
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'synapse_client/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "synapse_client"
|
8
|
+
spec.version = SynapseClient::VERSION
|
9
|
+
spec.authors = ["Miles Matthias"]
|
10
|
+
spec.email = ["miles.matthias@gmail.com"]
|
11
|
+
spec.summary = %q{A ruby client for the SynapsePay.com API.}
|
12
|
+
spec.description = %q{A ruby client for the SynapsePay.com API. Read SynapsePay API documentation at dev.synapsepay.com.}
|
13
|
+
spec.homepage = "https://github.com/milesmatthias/synapse_client"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_runtime_dependency 'rest-client', '~> 1.7', '>= 1.7.2'
|
22
|
+
spec.add_runtime_dependency 'map'
|
23
|
+
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
25
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
26
|
+
spec.add_development_dependency "rspec"
|
27
|
+
spec.add_development_dependency "rspec-nc"
|
28
|
+
spec.add_development_dependency "guard"
|
29
|
+
spec.add_development_dependency "guard-rspec"
|
30
|
+
spec.add_development_dependency "pry", "~> 0.9.0"
|
31
|
+
spec.add_development_dependency "pry-remote"
|
32
|
+
spec.add_development_dependency "pry-nav"
|
33
|
+
spec.add_development_dependency "coveralls"
|
34
|
+
end
|
metadata
ADDED
@@ -0,0 +1,253 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: synapse_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Miles Matthias
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-03-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.7.2
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.7'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.7.2
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: map
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: bundler
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.7'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.7'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rake
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '10.0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '10.0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rspec
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: rspec-nc
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: guard
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: guard-rspec
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: pry
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: 0.9.0
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 0.9.0
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: pry-remote
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: pry-nav
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: coveralls
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0'
|
180
|
+
type: :development
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '0'
|
187
|
+
description: A ruby client for the SynapsePay.com API. Read SynapsePay API documentation
|
188
|
+
at dev.synapsepay.com.
|
189
|
+
email:
|
190
|
+
- miles.matthias@gmail.com
|
191
|
+
executables: []
|
192
|
+
extensions: []
|
193
|
+
extra_rdoc_files: []
|
194
|
+
files:
|
195
|
+
- ".coveralls.yml"
|
196
|
+
- ".gitignore"
|
197
|
+
- ".travis.yml"
|
198
|
+
- Gemfile
|
199
|
+
- Guardfile
|
200
|
+
- LICENSE
|
201
|
+
- README.md
|
202
|
+
- Rakefile
|
203
|
+
- lib/synapse_client.rb
|
204
|
+
- lib/synapse_client/api_operations/create.rb
|
205
|
+
- lib/synapse_client/api_operations/list.rb
|
206
|
+
- lib/synapse_client/api_operations/response.rb
|
207
|
+
- lib/synapse_client/api_resource.rb
|
208
|
+
- lib/synapse_client/bank_account.rb
|
209
|
+
- lib/synapse_client/customer.rb
|
210
|
+
- lib/synapse_client/error.rb
|
211
|
+
- lib/synapse_client/merchant.rb
|
212
|
+
- lib/synapse_client/mfa.rb
|
213
|
+
- lib/synapse_client/order.rb
|
214
|
+
- lib/synapse_client/refreshed_tokens.rb
|
215
|
+
- lib/synapse_client/security_question.rb
|
216
|
+
- lib/synapse_client/util.rb
|
217
|
+
- lib/synapse_client/version.rb
|
218
|
+
- spec/spec_helper.rb
|
219
|
+
- spec/synapse_client_bank_account_spec.rb
|
220
|
+
- spec/synapse_client_customer_spec.rb
|
221
|
+
- spec/synapse_client_order_spec.rb
|
222
|
+
- spec/synapse_client_spec.rb
|
223
|
+
- synapse_client.gemspec
|
224
|
+
homepage: https://github.com/milesmatthias/synapse_client
|
225
|
+
licenses:
|
226
|
+
- MIT
|
227
|
+
metadata: {}
|
228
|
+
post_install_message:
|
229
|
+
rdoc_options: []
|
230
|
+
require_paths:
|
231
|
+
- lib
|
232
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - ">="
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '0'
|
242
|
+
requirements: []
|
243
|
+
rubyforge_project:
|
244
|
+
rubygems_version: 2.2.2
|
245
|
+
signing_key:
|
246
|
+
specification_version: 4
|
247
|
+
summary: A ruby client for the SynapsePay.com API.
|
248
|
+
test_files:
|
249
|
+
- spec/spec_helper.rb
|
250
|
+
- spec/synapse_client_bank_account_spec.rb
|
251
|
+
- spec/synapse_client_customer_spec.rb
|
252
|
+
- spec/synapse_client_order_spec.rb
|
253
|
+
- spec/synapse_client_spec.rb
|