pin-payments 0.0.1 → 0.0.2

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.
data/lib/pin-payments.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'httparty'
2
+ require 'json'
2
3
 
3
- require 'base'
4
- require 'card'
5
- require 'charge'
6
- require 'customer'
4
+ require 'pin-payments/base'
5
+ require 'pin-payments/card'
6
+ require 'pin-payments/charge'
7
+ require 'pin-payments/customer'
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pin-payments
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Alex Ghiculescu
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-06-23 00:00:00.000000000 Z
12
+ date: 2013-07-26 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: httparty
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ! '>='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ! '>='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: bundler
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,44 +38,57 @@ dependencies:
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
40
45
  version: '1.3'
46
+ - !ruby/object:Gem::Dependency
47
+ name: webmock
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
41
62
  description: A wrapper for the Pin Payments (https://pin.net.au/) API
42
63
  email: alexghiculescu@gmail.com
43
64
  executables: []
44
65
  extensions: []
45
66
  extra_rdoc_files: []
46
67
  files:
47
- - lib/base.rb
48
- - lib/card.rb
49
- - lib/charge.rb
50
- - lib/customer.rb
51
68
  - lib/pin-payments.rb
52
69
  homepage: https://github.com/ghiculescu/pin-payments
53
70
  licenses:
54
71
  - MIT
55
- metadata: {}
56
72
  post_install_message:
57
73
  rdoc_options: []
58
74
  require_paths:
59
75
  - lib
60
76
  required_ruby_version: !ruby/object:Gem::Requirement
77
+ none: false
61
78
  requirements:
62
79
  - - ! '>='
63
80
  - !ruby/object:Gem::Version
64
81
  version: '0'
65
82
  required_rubygems_version: !ruby/object:Gem::Requirement
83
+ none: false
66
84
  requirements:
67
85
  - - ! '>='
68
86
  - !ruby/object:Gem::Version
69
87
  version: '0'
70
88
  requirements: []
71
89
  rubyforge_project:
72
- rubygems_version: 2.0.3
90
+ rubygems_version: 1.8.25
73
91
  signing_key:
74
- specification_version: 4
92
+ specification_version: 3
75
93
  summary: Pin Payments API wrapper
76
94
  test_files: []
77
- has_rdoc:
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- OTVmN2FlMGRkMWU5ODkwMjRhMWI1MTllY2RhOThlMDIxYmQ3YzI5Ng==
5
- data.tar.gz: !binary |-
6
- Yzc5MjJmMmM5OGYzODczYzYxM2Q1OTVlMTdlNWJhZmM0OWU4MmJkNw==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- YjgyNWQzODJiZDJhMDM2MGM2M2I3OTMyOTBmOTU1ZDI2MzIwM2VhOTIzYTgz
10
- YTI3MTFiNmIzMDUzN2U0OWIyYTIyMGUxZjRmYzc0MDBjMTBkNDkxYjM2NWJi
11
- OTNlNTMyYjMzY2MwMDA1MWYxYjFhYmRjNTMxMjRkMzdjNDE4YmY=
12
- data.tar.gz: !binary |-
13
- MDY2ZmRiMmY4ODU1ZGY2MjcxMjY3ODI3YTg2NDA3ZmFhNmFlZjhlNjEwZTBj
14
- NzczNWU4NGVlOThiNDM3ODhjM2MxNGE4NmQyNGFkMTc3MzYwNmIyODhmYTNh
15
- Y2M0MmYzOGU4YzM3NmQzOGFmMzgxZDlhOWNiMmUwOTBiZWU3Njc=
data/lib/base.rb DELETED
@@ -1,26 +0,0 @@
1
- module Pin
2
- class Base
3
- include HTTParty
4
- base_uri "https://test-api.pin.net.au/1"
5
-
6
- def self.setup!(key, mode = :live)
7
- @@auth = {username: key, password: ''}
8
- uri = if mode == :test
9
- "https://test-api.pin.net.au/1"
10
- elsif mode == :live
11
- "https://api.pin.net.au/1"
12
- else
13
- raise "Incorrect API mode! Must be :live or :test (leave blank for :live)."
14
- end
15
- base_uri uri
16
- end
17
-
18
- protected
19
- def self.authenticated_post(url, body)
20
- post(url, body: body, basic_auth: @@auth)
21
- end
22
- def self.authenticated_get(url, query = {})
23
- get(url, query: query, basic_auth: @@auth)
24
- end
25
- end
26
- end
data/lib/card.rb DELETED
@@ -1,34 +0,0 @@
1
- module Pin
2
- class Card < Base
3
- attr_accessor :number, :expiry_month, :expiry_year, :cvc, :name, :address_line1,
4
- :address_line2, :address_city, :address_postcode, :address_state,
5
- :address_country,
6
- :token, :display_number, :scheme
7
-
8
- def initialize(attributes = {})
9
- attributes.each {|name, value| send("#{name}=", value)}
10
- end
11
-
12
- def to_hash
13
- hash = {}
14
- instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
15
- hash
16
- end
17
-
18
- # options should be a hash with the following keys:
19
- # :number, :expiry_month, :expiry_year, :cvc, :name, :address_line1,
20
- # :address_city, :address_postcode, :address_state, :address_country
21
- #
22
- # it can also have the following optional keys:
23
- # :address_line2
24
- def self.create(options = {})
25
- response = authenticated_post '/cards', options
26
- if response.code == 201 # card created
27
- new(response.parsed_response['response'])
28
- else
29
- # handle the error
30
- false
31
- end
32
- end
33
- end
34
- end
data/lib/charge.rb DELETED
@@ -1,18 +0,0 @@
1
- module Pin
2
- class Charge < Base
3
- attr_accessor :email, :description, :amount, :currency, :ip_address
4
-
5
- # options should be a hash with the following params
6
- # email, description, amount, currency, ip_address are mandatory
7
- # identifier must be a hash, can take the forms
8
- # {card: <Pin::Card>}
9
- # {card_token: String<"...">}
10
- # {customer_token: String<"...">}
11
- # {customer: <Pin::Customer>}
12
- # eg. {email: 'alex@payaus.com', description: '1 month of PayAus', amount: 19900, currency: 'AUD', ip_address: '203.192.1.172', customer_token: 'asdf'}
13
- def self.create(options = {})
14
- options[:customer_token] = options.delete(:customer).token if options[:customer].present?
15
- authenticated_post '/charges', options
16
- end
17
- end
18
- end
data/lib/customer.rb DELETED
@@ -1,44 +0,0 @@
1
- module Pin
2
- class Customer < Base
3
- attr_accessor :email, :created_at, :token, :card
4
-
5
- def initialize(attributes = {})
6
- attributes.each do |name, value|
7
- if name == 'card' # TODO: this should be generalised (has_one relationship i suppose)
8
- self.card = Card.new value
9
- else
10
- send("#{name}=", value)
11
- end
12
- end
13
- end
14
-
15
- # email should be a string
16
- # card_or_token can be a Pin::Card object
17
- # or a card_token (as a string)
18
- def self.create(email, card_or_token)
19
- body = if card_or_token.respond_to?(:to_hash) # card
20
- {card: card_or_token.to_hash}
21
- else # token
22
- {card_token: card_or_token}
23
- end.merge(email: email)
24
-
25
- authenticated_post '/customers', body
26
- end
27
-
28
- def self.all # TODO: pagination
29
- response = authenticated_get '/customers'
30
- customers = []
31
- if response.code == 200
32
- response.parsed_response['response'].each do |customer|
33
- customers << new(customer)
34
- end
35
- end
36
- customers
37
- end
38
-
39
- def self.find(token)
40
- response = authenticated_get "/customers/#{token}"
41
- new(response.parsed_response['response'])
42
- end
43
- end
44
- end