pin_up 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e23144942115aaf7f8c623b9c475189fe58cf374
4
- data.tar.gz: a3508a238afd927a970a92c3ba9bdc89aace64bd
5
- SHA512:
6
- metadata.gz: f66ec5b5437b7c3c69a3c772acb7ddb873f5d944aa9451957b455a984d739c1d08785fc9dc87179f8ab013644692cc181759e53fa874c5d0c34c6087e9692d85
7
- data.tar.gz: 6f4f7a090b63d00af62bb83d838a13153b916bcea92a704b38ffc0d42c8799d3c9860deaa793baa4cef2ab54deb7f7dfc51102ff4ed6c2d450bb69bb21bad2bb
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MzFmZTFlNTIxOWExMjAyNjFlN2RhZmFjMDU1ZTFjYjQzMmU4YTgyMQ==
5
+ data.tar.gz: !binary |-
6
+ OTYzYTQwYzZhZWE5MDljNTg4OGU0ZDljOTVkZWZlOWUyYjUxMzcyNA==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ OWYwMTZjNmRjNjhlYjA4NTY2ZTY5MTkzMDNjYzlhNjk3ZWNlM2Q3MzZlMzFh
10
+ NWJkZmQxYTkyMmZiYzkzNzM1YzhhNzk4NTBhOWY3NTQzYWMyYmY3MWMxNzA4
11
+ ZDhlZmIwMzU2ZTVkYWI2ZDRmZDM3MzNhM2E0MGU3MWI5MjIzMWI=
12
+ data.tar.gz: !binary |-
13
+ NzYyNzk2YjIxMjMwODFhMDM4NTczOGU5NDFjYzYzM2NiZjVkZjg5OTU5ZDAz
14
+ MjE5YzkyMmMxZDkwMjZiMzY5MzI3NDMxMjc3NzY1ODJjNzAyYmVmZjEwMjRl
15
+ Yzc0ZDgxMTZhNTAxYTViMDhlYzMzYzExMWM2ZTVlMzYwNGI2ZjI=
data/README.md CHANGED
@@ -1,8 +1,117 @@
1
- = pin_up
1
+ ## pin_up
2
2
 
3
- Description goes here.
3
+ A Ruby gem wrapper for the pin-payments (pin.net.au) API, all of it.
4
4
 
5
- == Contributing to pin_up
5
+ Support for Ruby 1.9.x & Ruby 2.0.0
6
+
7
+ ## Installation
8
+
9
+ gem install pin_up
10
+
11
+ or add:
12
+
13
+ gem 'pin_up'
14
+
15
+ to your Gemfile.
16
+
17
+ ## Usage
18
+
19
+ If using rails add an initializer to your app:
20
+
21
+ Pin::Base.new("your key")
22
+
23
+ An option second paramater can be passed in to set the environment (:live or :test). The default is :live.
24
+
25
+ ### Charges
26
+ ##### List All Charges
27
+ Pin::Charges.all
28
+ ##### Find A Charge
29
+ Pin::Charges.find("token")
30
+ ##### Search For A Charge
31
+ Pin::Charges.search({query: "foo", end_date: "Mar 25, 2013"})
32
+
33
+ See https://pin.net.au/docs/api/charges#search-charges for a full list of options.
34
+
35
+ ##### Create A Charge
36
+ charge = {email: "email@example.com", description: "Description", amount: "400", currency: "AUD", ip_address: "127.0.0.1", customer_token: "cus_token" }
37
+
38
+ Pin::Charges.create(charge)
39
+
40
+ ### Customers
41
+ ##### List All Customers
42
+ Pin::Customer.all
43
+ ##### Find A Customer
44
+ Pin::Customer.find('token')
45
+ ##### List Charges For A Customer
46
+ Pin::Customer.charges('cus_token')
47
+ ##### Create A Customer
48
+ Pin::Customer.create(email, hash_of_customer_details)
49
+
50
+ customer_details = {number: '5520000000000000', expiry_month: "12", expiry_year: "2014", cvc: "123", name: 'Roland Robot', address_line1: '123 fake street', address_city: 'Melbourne', address_postcode: '1234', address_state: 'Vic', address_country: 'Australia'}
51
+
52
+ Pin::Customer.create('email@example.com', customer_details)
53
+
54
+ ##### Update A Customer
55
+ ###### Update Card details
56
+ ---
57
+ Pin::Customer.update('cus_token', hash_of_details)
58
+
59
+ If passing a hash of details, it must be the full list of details of the credit card to be stored. (https://pin.net.au/docs/api/customers#put-customer)
60
+
61
+ ###### Update only an email
62
+ ---
63
+
64
+ hash_of_details = {email: 'new_email@example.com'}
65
+ Pin::Customer.update('cus_token', hash_of_details)
66
+
67
+ ###### Update card by token
68
+ ---
69
+
70
+ hash_of_details = {card_token: 'new_card_token'}
71
+ Pin::Customer.update('cus_token', hash_of_details)
72
+
73
+ ##### Creat A Customer Given a Card Token and Email
74
+
75
+ card_details = {number: "5520000000000000", expiry_month: "12", expiry_year: "2018", cvc: "123", name: "Roland TestRobot", address_line1: "123 Fake Road", address_line2: "", address_city: "Melbourne", address_postcode: "1223", address_state: "Vic", address_country: "AU"}
76
+
77
+ card = Pin::Card.create(card_details)
78
+ Pin::Customer.create('email@example.com',card['token'])
79
+
80
+ ## Refunds
81
+
82
+ ##### Find A Refund
83
+
84
+ Pin::Refund.find('charge_token')
85
+
86
+ This will list all refunds for a particular charge (will return an empty hash if nothing is found)
87
+
88
+ ##### Create A Refund Specifying An Amount
89
+
90
+ Pin::Refund.create('charge_token', '400')
91
+
92
+ ##### Create A Refund For Entire Charge Amount
93
+
94
+ Pin::Refund.create('charge_token')
95
+
96
+ ## Cards
97
+
98
+ ##### Create A Card Without Pins Form
99
+
100
+ card_details = {number: "5520000000000000", expiry_month: "12", expiry_year: "2018", cvc: "123", name: "Roland Robot", address_line1: "123 Fake Road", address_line2: "", address_city: "Melbourne", address_postcode: "1223", address_state: "Vic", address_country: "AU"}
101
+
102
+ Pin::Card.create(card_details)
103
+
104
+ Will return a card_token that can be stored against a customer.
105
+
106
+ Only use this method if you're comfortable sending card details to your server - otherwise you can use a form that Pin provides (https://pin.net.au/docs/guides/payment-forms) and get the card_token that way.
107
+
108
+ ## Todo
109
+
110
+ * Validate a response before it gets sent to Pin (eg. Update customer)
111
+ * Pagination
112
+ # Better error handling (for 4** responses)
113
+
114
+ ## Contributing to pin_up
6
115
 
7
116
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
8
117
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
@@ -12,8 +121,7 @@ Description goes here.
12
121
  * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
122
  * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
14
123
 
15
- == Copyright
124
+ ## Copyright
16
125
 
17
126
  Copyright (c) 2013 Daniel Nitsikopoulos. See LICENSE.txt for
18
- further details.
19
-
127
+ further details.
data/Rakefile CHANGED
@@ -23,8 +23,6 @@ Jeweler::Tasks.new do |gem|
23
23
  gem.authors = ["Daniel Nitsikopoulos"]
24
24
  # dependencies defined in Gemfile
25
25
  gem.add_dependency "httparty"
26
- gem.add_development_dependency "webmock"
27
- gem.add_development_dependency "vcr"
28
26
  end
29
27
  Jeweler::RubygemsDotOrgTasks.new
30
28
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
data/lib/pin_up/base.rb CHANGED
@@ -1,8 +1,16 @@
1
1
  module Pin
2
+ ##
3
+ # This class sets up a few things like the base URL and provides a few utility methods to be shared between classes.
2
4
  class Base
3
5
  include HTTParty
4
6
 
5
- def initialize(key: "", env: :live)
7
+ ##
8
+ # Create a new Pin instance
9
+ # Args:
10
+ # key: Your Pin secret key
11
+ # env: The environment you want to use. Leave blank for live and pass in :test for test
12
+ # An error is raised if an invalid env is passed in.
13
+ def initialize(key = "", env = :live)
6
14
  @key = key
7
15
  env = env.to_sym
8
16
  @@auth = {username: key, password: ''}
@@ -15,32 +23,47 @@ module Pin
15
23
  end
16
24
  end
17
25
 
26
+ ##
27
+ # Provides access to your key if needed
18
28
  def key
19
29
  @key
20
30
  end
21
31
 
32
+ ##
33
+ # Provides access to the base URL if needed
22
34
  def uri
23
35
  @@base_url
24
36
  end
25
37
 
26
38
  protected
27
39
 
28
- def self.auth_get(url, token: nil)
40
+ ##
41
+ # Sends an authorised GET request to pins server
42
+ # args: url (eg: 'charges' or 'charges/token')
43
+ def self.auth_get(url, token = nil)
29
44
  HTTParty.get("#{@@base_url}#{url}", basic_auth: @@auth)
30
45
  end
31
46
 
47
+ ##
48
+ # Sends an authorised POST request to pins server
32
49
  def self.auth_post(url, options = {})
33
50
  HTTParty.post("#{@@base_url}#{url}", body: options, basic_auth: @@auth)
34
51
  end
35
52
 
53
+ ##
54
+ # Sends an authorised PUT request to pins server
36
55
  def self.auth_put(url, options = {})
37
56
  HTTParty.put("#{@@base_url}#{url}", body: options, basic_auth: @@auth)
38
57
  end
39
58
 
59
+ ##
60
+ # Builds a response of a single object
40
61
  def self.build_response(response)
41
62
  response.parsed_response['response']
42
63
  end
43
64
 
65
+ ##
66
+ # Builds a response of a collection if the response code is 200 otherwise an empty array is returned
44
67
  def self.build_collection_response(response)
45
68
  models = []
46
69
  if response.code == 200
data/lib/pin_up/card.rb CHANGED
@@ -1,6 +1,16 @@
1
1
  module Pin
2
+ ##
3
+ # This class models Pin's Cards API
2
4
  class Card < Base
3
5
 
6
+ ##
7
+ # creates a card given a hash of options
8
+ # https://pin.net.au/docs/api/cards
9
+ # Only use if you have a secure server connection, if in doubt use
10
+ # the form example provided by Pin to create a card_token
11
+ # https://pin.net.au/docs/guides/payment-forms
12
+ # args: card_details (Hash)
13
+ # returns: card object
4
14
  def self.create(options)
5
15
  build_response(auth_post('cards', options))
6
16
  end
data/lib/pin_up/charge.rb CHANGED
@@ -1,13 +1,28 @@
1
1
  module Pin
2
+ ##
3
+ # This class models Pin's Charges API
2
4
  class Charges < Base
5
+ ##
6
+ # Lists all of the charges for your account
7
+ # returns: a collection of charge objects
8
+ # https://pin.net.au/docs/api/charges#get-charges
3
9
  def self.all
4
10
  build_response(auth_get('charges'))
5
11
  end
6
12
 
13
+ ##
14
+ # Find a charge for your account given a token
15
+ # args: token (String)
16
+ # returns: a charge object
17
+ # https://pin.net.au/docs/api/charges#get-charge
7
18
  def self.find(token)
8
19
  build_response(auth_get("charges/#{token}"))
9
20
  end
10
21
 
22
+ # Find a charge(s) for your account given a search term or set of terms
23
+ # args: options (Hash)
24
+ # returns: a collection of charge objects
25
+ # https://pin.net.au/docs/api/charges#search-charges
11
26
  def self.search(options = {})
12
27
  term = ""
13
28
  options.each do |key, option|
@@ -16,6 +31,10 @@ module Pin
16
31
  build_response(auth_get("charges/search?#{term}"))
17
32
  end
18
33
 
34
+ # Create a charge given charge details and a card, a card_token or acustomer_token
35
+ # args: options (Hash)
36
+ # returns: a charge object
37
+ # https://pin.net.au/docs/api/charges#post-charges
19
38
  def self.create(options = {})
20
39
  build_response(auth_post("charges", options))
21
40
  end
@@ -1,10 +1,21 @@
1
1
  module Pin
2
+ ##
3
+ # This class models Pins Customers API
2
4
  class Customer < Base
3
5
 
6
+ ##
7
+ # Lists all customers for your account
8
+ # returns: a collection of customer objects
9
+ # https://pin.net.au/docs/api/customers#get-customers
4
10
  def self.all
5
11
  build_collection_response(auth_get('customers'))
6
12
  end
7
13
 
14
+ ##
15
+ # Create a customer given customer details and a card OR a card_token
16
+ # args: email(String), card (Hash)
17
+ # returns: a customer object
18
+ # https://pin.net.au/docs/api/customers#post-customers
8
19
  def self.create(email, card)
9
20
  options = if card.respond_to?(:to_hash)
10
21
  {card: card.to_hash}
@@ -15,14 +26,30 @@ module Pin
15
26
  build_response(auth_post('customers', options))
16
27
  end
17
28
 
29
+ ##
30
+ # Find a customer for your account given a token
31
+ # args: token (String)
32
+ # returns: a customer object
33
+ # https://pin.net.au/docs/api/customers#get-customers
18
34
  def self.find(token)
19
35
  build_response(auth_get("customers/#{token}"))
20
36
  end
21
37
 
38
+ ##
39
+ # Update a customer for your account given a token and any of: email, card (hash),card_token
40
+ # args: token (String), options (Hash)
41
+ # returns: a customer object
42
+ # https://pin.net.au/docs/api/customers#put-customer
43
+ # NB: When providing a card (hash), you need to specify the full list of details.
22
44
  def self.update(token, options = {})
23
45
  build_response(auth_put("customers/#{token}", options))
24
46
  end
25
47
 
48
+ ##
49
+ # Get a list of charges for a customer
50
+ # args: token (String)
51
+ # returns: a collection of charge objects
52
+ # https://pin.net.au/docs/api/customers#get-customers-charges
26
53
  def self.charges(token)
27
54
  build_collection_response(auth_get("customers/#{token}/charges"))
28
55
  end
data/lib/pin_up/refund.rb CHANGED
@@ -1,10 +1,23 @@
1
1
  module Pin
2
+ ##
3
+ # This class models Pin's Charges API
2
4
  class Refund < Base
3
5
 
6
+ ##
7
+ # Find a refund by charge token
8
+ # returns: a collection of refund objects
9
+ # args: token (String)
10
+ # https://pin.net.au/docs/api/refunds#get-refunds
4
11
  def self.find(token)
5
12
  build_collection_response(auth_get("charges/#{token}/refunds"))
6
13
  end
7
14
 
15
+ ##
16
+ # Create a refund for a charge
17
+ # args: token (String), amount (String - optional)
18
+ # returns: a refund object
19
+ # if no amount is passed in, the full amount of the charge will be refunded
20
+ # https://pin.net.au/docs/api/refunds#post-refunds
8
21
  def self.create(token, amount = nil)
9
22
  options = {amount: amount}
10
23
  build_response(auth_post("charges/#{token}/refunds", options))
data/pin_up.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "pin_up"
8
- s.version = "0.1.0"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Daniel Nitsikopoulos"]
12
- s.date = "2013-07-05"
12
+ s.date = "2013-07-06"
13
13
  s.description = "A Ruby gem wrapper for the pin-payments (pin.net.au) API"
14
14
  s.email = "dnitza@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -61,7 +61,7 @@ Gem::Specification.new do |s|
61
61
  s.homepage = "http://github.com/dNitza/pin_up"
62
62
  s.licenses = ["MIT"]
63
63
  s.require_paths = ["lib"]
64
- s.rubygems_version = "2.0.3"
64
+ s.rubygems_version = "2.0.2"
65
65
  s.summary = "A Ruby gem wrapper for the pin-payments (pin.net.au) API"
66
66
 
67
67
  if s.respond_to? :specification_version then
@@ -77,8 +77,6 @@ Gem::Specification.new do |s|
77
77
  s.add_development_dependency(%q<webmock>, [">= 0"])
78
78
  s.add_development_dependency(%q<vcr>, [">= 0"])
79
79
  s.add_runtime_dependency(%q<httparty>, [">= 0"])
80
- s.add_development_dependency(%q<webmock>, [">= 0"])
81
- s.add_development_dependency(%q<vcr>, [">= 0"])
82
80
  else
83
81
  s.add_dependency(%q<shoulda>, [">= 0"])
84
82
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
@@ -89,8 +87,6 @@ Gem::Specification.new do |s|
89
87
  s.add_dependency(%q<webmock>, [">= 0"])
90
88
  s.add_dependency(%q<vcr>, [">= 0"])
91
89
  s.add_dependency(%q<httparty>, [">= 0"])
92
- s.add_dependency(%q<webmock>, [">= 0"])
93
- s.add_dependency(%q<vcr>, [">= 0"])
94
90
  end
95
91
  else
96
92
  s.add_dependency(%q<shoulda>, [">= 0"])
@@ -102,8 +98,6 @@ Gem::Specification.new do |s|
102
98
  s.add_dependency(%q<webmock>, [">= 0"])
103
99
  s.add_dependency(%q<vcr>, [">= 0"])
104
100
  s.add_dependency(%q<httparty>, [">= 0"])
105
- s.add_dependency(%q<webmock>, [">= 0"])
106
- s.add_dependency(%q<vcr>, [">= 0"])
107
101
  end
108
102
  end
109
103
 
data/spec/base_spec.rb CHANGED
@@ -2,16 +2,16 @@ require 'spec_helper'
2
2
 
3
3
  describe "Base", :vcr, class: Pin::Base do
4
4
  before(:each) do
5
- @test_pin = Pin::Base.new(key: "W_VrFld7oc9BnC4pOdQxmw", env: :test)
5
+ @test_pin = Pin::Base.new("W_VrFld7oc9BnC4pOdQxmw", :test)
6
6
  end
7
7
 
8
8
  it "should set key correctly" do
9
- @pin = Pin::Base.new(key: "KEY", env: :live)
9
+ @pin = Pin::Base.new("KEY", :live)
10
10
  expect(@pin.key).to eq "KEY"
11
11
  end
12
12
 
13
13
  it "should set environment to live if no env set" do
14
- @pin = Pin::Base.new(key: "KEY", env: :live)
14
+ @pin = Pin::Base.new("KEY", :live)
15
15
  expect(@pin.uri).to eq "https://api.pin.net.au/1/"
16
16
  end
17
17
 
@@ -20,7 +20,7 @@ describe "Base", :vcr, class: Pin::Base do
20
20
  end
21
21
 
22
22
  it "should raise an error if anything other than '' :live or :test is passed to a new instance" do
23
- expect{Pin::Base.new(key: "KEY", env: :foo)}.to raise_error(RuntimeError, "'env' option must be :live or :test. Leave blank for live payments")
23
+ expect{Pin::Base.new("KEY", :foo)}.to raise_error(RuntimeError, "'env' option must be :live or :test. Leave blank for live payments")
24
24
  end
25
25
 
26
26
  it "should list succesfully connect to Pin" do
data/spec/cards_spec.rb CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe "Card", :vcr, class: Pin::Card do
4
4
  before(:each) do
5
- Pin::Base.new(key: "W_VrFld7oc9BnC4pOdQxmw", env: :test)
5
+ Pin::Base.new("W_VrFld7oc9BnC4pOdQxmw", :test)
6
6
  end
7
7
 
8
8
  it "should create a card and respond with the card detail from pin" do
data/spec/charges_spec.rb CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe "Charge", :vcr, class: Pin::Charges do
4
4
  before(:each) do
5
- Pin::Base.new(key: "W_VrFld7oc9BnC4pOdQxmw", env: :test)
5
+ Pin::Base.new("W_VrFld7oc9BnC4pOdQxmw", :test)
6
6
  end
7
7
 
8
8
  it "should list charges in Pin" do
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
 
4
4
  describe "Customer", :vcr, class: Pin::Customer do
5
5
  before(:each) do
6
- Pin::Base.new(key: "W_VrFld7oc9BnC4pOdQxmw", env: :test)
6
+ Pin::Base.new("W_VrFld7oc9BnC4pOdQxmw", :test)
7
7
  end
8
8
 
9
9
  it "should list customers" do
data/spec/refund_spec.rb CHANGED
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
 
4
4
  describe "Refund", :vcr, class: Pin::Refund do
5
5
  before(:each) do
6
- Pin::Base.new(key: "W_VrFld7oc9BnC4pOdQxmw", env: :test)
6
+ Pin::Base.new("W_VrFld7oc9BnC4pOdQxmw", :test)
7
7
  end
8
8
 
9
9
  it "should list all refunds made to a charge given a token" do
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pin_up
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Nitsikopoulos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-05 00:00:00.000000000 Z
11
+ date: 2013-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: shoulda
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ! '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ! '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
@@ -42,28 +42,28 @@ dependencies:
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '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
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: httparty
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ! '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
@@ -84,84 +84,56 @@ dependencies:
84
84
  name: simplecov
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ! '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ! '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: webmock
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ! '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ! '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: vcr
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ! '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: httparty
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ! '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: webmock
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - '>='
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - '>='
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: vcr
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - '>='
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - '>='
136
+ - - ! '>='
165
137
  - !ruby/object:Gem::Version
166
138
  version: '0'
167
139
  description: A Ruby gem wrapper for the pin-payments (pin.net.au) API
@@ -222,17 +194,17 @@ require_paths:
222
194
  - lib
223
195
  required_ruby_version: !ruby/object:Gem::Requirement
224
196
  requirements:
225
- - - '>='
197
+ - - ! '>='
226
198
  - !ruby/object:Gem::Version
227
199
  version: '0'
228
200
  required_rubygems_version: !ruby/object:Gem::Requirement
229
201
  requirements:
230
- - - '>='
202
+ - - ! '>='
231
203
  - !ruby/object:Gem::Version
232
204
  version: '0'
233
205
  requirements: []
234
206
  rubyforge_project:
235
- rubygems_version: 2.0.3
207
+ rubygems_version: 2.0.2
236
208
  signing_key:
237
209
  specification_version: 4
238
210
  summary: A Ruby gem wrapper for the pin-payments (pin.net.au) API