creative-paypal-express 1.2.1 → 1.3.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: c1b6637908ce92f01757f3561a0835d86e667ce2
4
- data.tar.gz: c3c7ca0dde27ed7f3e43bc18f7e6328fdf75c99a
3
+ metadata.gz: 5dd169c91e9532a067b8d075e4b2024b5780026c
4
+ data.tar.gz: 61519d004da8d2b51dc79cd5f832dec82fd711e1
5
5
  SHA512:
6
- metadata.gz: 320892ab92f76b77fef75b53044c77f10c1fa3a153ad41ea0cfaf137d6e794f33827adf5f47603c451fae7e98df2f038516a1f10b4f422fb3ecdd1245e97947d
7
- data.tar.gz: 06323e9c79aea9270dc3665c054ebd56854ec62dee1dc012804a98cc75f1de0691c8cb6bf2d325a7de2be8b4f61297cfaeadd201c5a620b370ad5f829f6e4b8e
6
+ metadata.gz: b9b3991b6e6fd62441d38beac1d41324be5716a18ce3199beb11e37d5dee2f375cc4db841c1e477c540b6fcd25b3a4e96f3629875334117093156d8ea9948f0b
7
+ data.tar.gz: fd01eee4f2c878d650543b690f910a07eb43adfb14819e9191e2a9f824ffedfbe3d27774ed157d722a25113495726b3b63c356d384d45dea79e8e81f5e7c4948
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.1
1
+ 1.3.0
@@ -0,0 +1,6 @@
1
+ machine:
2
+ ruby:
3
+ version: 2.3.5
4
+ timezone: "Europe/Riga"
5
+ environment:
6
+ COV: 'false'
@@ -16,13 +16,14 @@ Gem::Specification.new do |s|
16
16
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
17
 
18
18
  s.add_dependency "activesupport", ">= 4"
19
- s.add_dependency "rest-client"
19
+ s.add_dependency "rest-client", "~> 2.0.0"
20
20
  s.add_dependency "attr_required", ">= 0.0.5"
21
21
 
22
22
  # s.add_development_dependency "activesupport", "4.1" # uses this for development, but will probably work with higher versions
23
- s.add_development_dependency "rake", ">= 0.8"
23
+ s.add_development_dependency "rake", "~> 10.5.0"
24
24
  s.add_development_dependency "simplecov"
25
25
  s.add_development_dependency "rspec", "< 2.99"
26
26
  s.add_development_dependency "fakeweb", ">= 1.3.0"
27
+ # s.add_development_dependency "webmock", "~> 2.3.1"
27
28
  s.add_development_dependency "pry"
28
29
  end
@@ -31,12 +31,12 @@ module Paypal
31
31
  end
32
32
 
33
33
  Array(payment_requests).each_with_index do |payment_request, index|
34
- params.merge! payment_request.to_params(index)
34
+ params.merge!(payment_request.to_params(index))
35
35
  end
36
36
 
37
37
  response = request(:SetExpressCheckout, params)
38
38
 
39
- Response.new response, options
39
+ Response.new(response, options)
40
40
  end
41
41
 
42
42
  def details(token)
@@ -98,8 +98,8 @@ module Paypal
98
98
  params = {
99
99
  :PROFILEID => profile_id
100
100
  }
101
- response = self.request :GetRecurringPaymentsProfileDetails, params
102
- Response.new response
101
+ response = self.request(:GetRecurringPaymentsProfileDetails, params)
102
+ Response.new(response)
103
103
  end
104
104
 
105
105
  def renew!(profile_id, action, options = {})
@@ -185,7 +185,6 @@ module Paypal
185
185
  Response.new response
186
186
  end
187
187
 
188
-
189
188
  #== Refund Specific
190
189
  def refund!(transaction_id, options = {})
191
190
  params = {
@@ -19,7 +19,7 @@ module Paypal
19
19
  end
20
20
 
21
21
  def redirect_uri
22
- endpoint = URI.parse Paypal.endpoint
22
+ endpoint = URI.parse(Paypal.endpoint)
23
23
  endpoint.query = query(:with_cmd).to_query
24
24
  endpoint.to_s
25
25
  end
@@ -44,20 +44,20 @@ module Paypal
44
44
  def post(method, params)
45
45
  rest_params = common_params.merge(params).merge(METHOD: method)
46
46
 
47
- response = RestClient.post(self.class.endpoint, rest_params)
47
+ response = RestClient.post(send(:class).endpoint, rest_params)
48
48
 
49
49
  puts ">> Paypal::NVP Got response to POST request <<"
50
50
  puts "Request arguments:\nendpoint: #{self.class.endpoint}\nparams: #{rest_params})\n"
51
51
  puts "Response string:\n#{response}"
52
52
  puts "=============================================="
53
53
 
54
- return response
54
+ response
55
55
  end
56
56
 
57
57
  def handle_response
58
58
  response = yield
59
59
  response = CGI.parse(response).inject({}) do |res, (k, v)|
60
- res.merge!(k.to_sym => v.first)
60
+ res.merge!(k.to_sym => v.first.to_s)
61
61
  end
62
62
 
63
63
  case response[:ACK]
@@ -193,8 +193,9 @@ module Paypal
193
193
  payment_responses[index.to_i][key.to_sym] = attrs.delete(_attr_)
194
194
  end
195
195
  end
196
+
196
197
  @payment_responses = payment_responses.collect do |_attrs_|
197
- Payment::Response.new _attrs_
198
+ Payment::Response.new(_attrs_)
198
199
  end
199
200
 
200
201
  # payment_info
@@ -234,7 +235,11 @@ module Paypal
234
235
  end
235
236
 
236
237
  def to_s
237
- return @raw_response.to_s
238
+ @raw_response.to_s
239
+ end
240
+
241
+ def to_json
242
+ @raw_response.to_json
238
243
  end
239
244
  end
240
245
  end
@@ -1,7 +1,10 @@
1
1
  module Paypal
2
2
  module Payment
3
3
  class Response < Base
4
- attr_accessor :amount, :ship_to, :bill_to, :description, :note, :items, :notify_url, :insurance_option_offered, :currency_code, :short_message, :long_message, :error_code, :severity_code, :ack, :transaction_id, :billing_agreement_id, :request_id, :seller_id
4
+ attr_accessor :amount, :ship_to, :bill_to, :description, :note, :items,
5
+ :notify_url, :insurance_option_offered, :currency_code, :short_message,
6
+ :long_message, :error_code, :severity_code, :ack, :transaction_id,
7
+ :billing_agreement_id, :request_id, :seller_id
5
8
 
6
9
  def initialize(attributes = {})
7
10
  attrs = attributes.dup
@@ -3,7 +3,7 @@ module Paypal
3
3
 
4
4
  def self.formatted_amount(x)
5
5
  # Thanks @nahi ;)
6
- sprintf "%0.2f", BigDecimal.new(x.to_s).truncate(2)
6
+ sprintf "%0.2f", BigDecimal.new(x.to_f.to_s).truncate(2)
7
7
  end
8
8
 
9
9
  def self.to_numeric(x)
@@ -25,4 +25,4 @@ module Paypal
25
25
  end
26
26
 
27
27
  end
28
- end
28
+ end
@@ -30,4 +30,35 @@ module FakeResponseHelper
30
30
  end
31
31
 
32
32
  FakeWeb.allow_net_connect = false
33
- include FakeResponseHelper
33
+ include FakeResponseHelper
34
+
35
+ # require 'webmock'
36
+ # WebMock.enable!
37
+ # WebMock.disable_net_connect!(allow_localhost: true)
38
+
39
+ # module FakeResponseHelper
40
+ # def fake_response(file_path, api = :NVP, options = {})
41
+ # endpoint = case api
42
+ # when :NVP
43
+ # Paypal::NVP::Request.endpoint
44
+ # when :IPN
45
+ # Paypal::IPN.endpoint
46
+ # else
47
+ # raise "Non-supported API: #{api}"
48
+ # end
49
+
50
+ # body = File.read(File.join(File.dirname(__FILE__), '../fake_response', "#{file_path}.txt"))
51
+
52
+ # WebMock.stub_request(:post, %r'#{endpoint}').
53
+ # to_return(body: body, status: 200, headers: {})
54
+ # end
55
+
56
+ # def request_to(endpoint, method = :get)
57
+ # raise_error(
58
+ # RuntimeError,
59
+ # "Real HTTP connections are disabled. Unregistered request: #{method.to_s.upcase} #{endpoint}"
60
+ # )
61
+ # end
62
+ # end
63
+
64
+ # include FakeResponseHelper
@@ -1,5 +1,3 @@
1
- require 'spec_helper.rb'
2
-
3
1
  describe Paypal::Exception::APIError do
4
2
  let(:error) { Paypal::Exception::APIError.new(params) }
5
3
 
@@ -75,4 +73,4 @@ describe Paypal::Exception::APIError do
75
73
  its(:response) { should == params }
76
74
  its(:message) { should == "PayPal API Error" }
77
75
  end
78
- end
76
+ end
@@ -1,8 +1,6 @@
1
- require 'spec_helper.rb'
2
-
3
1
  describe Paypal::Exception::HttpError do
4
2
  subject { Paypal::Exception::HttpError.new(400, 'BadRequest', 'You are bad man!') }
5
3
  its(:code) { should == 400 }
6
4
  its(:message) { should == 'BadRequest' }
7
5
  its(:body) { should == 'You are bad man!' }
8
- end
6
+ end
@@ -2,14 +2,21 @@
2
2
  describe Paypal::Express::Request do
3
3
  class Paypal::Express::Request
4
4
  attr_accessor :_sent_params_, :_method_
5
- def post_with_logging(method, params)
5
+ end
6
+
7
+ module Verbose
8
+ def request(method, params = {})
6
9
  self._method_ = method
7
10
  self._sent_params_ = params
8
- post_without_logging method, params
11
+
12
+ handle_response do
13
+ post(method, params)
14
+ end
9
15
  end
10
- alias_method_chain :post, :logging
11
16
  end
12
17
 
18
+ Paypal::Express::Request.include(Verbose)
19
+
13
20
  let(:return_url) { 'http://example.com/success' }
14
21
  let(:cancel_url) { 'http://example.com/cancel' }
15
22
  let(:nvp_endpoint) { Paypal::NVP::Request::ENDPOINT[:production] }
@@ -103,16 +110,17 @@ describe Paypal::Express::Request do
103
110
  end
104
111
 
105
112
  describe '#setup' do
106
- it 'should return Paypal::Express::Response' do
113
+ it 'returns Paypal::Express::Response' do
107
114
  fake_response 'SetExpressCheckout/success'
108
- response = instance.setup recurring_payment_request, return_url, cancel_url
115
+ response = instance.setup(recurring_payment_request, return_url, cancel_url)
109
116
  response.should be_instance_of Paypal::Express::Response
110
117
  end
111
118
 
112
- it 'should support no_shipping option' do
113
- expect do
114
- instance.setup instant_payment_request, return_url, cancel_url, :no_shipping => true
115
- end.to request_to nvp_endpoint, :post
119
+ it 'supports no_shipping option' do
120
+ expect {
121
+ instance.setup(instant_payment_request, return_url, cancel_url, :no_shipping => true)
122
+ }.to(request_to(nvp_endpoint, :post))
123
+
116
124
  instance._method_.should == :SetExpressCheckout
117
125
  instance._sent_params_.should == {
118
126
  :PAYMENTREQUEST_0_DESC => 'Instant Payment Request',
@@ -1,5 +1,3 @@
1
- require 'spec_helper'
2
-
3
1
  describe Paypal::IPN do
4
2
  describe '.verify!' do
5
3
  context 'when valid' do
@@ -16,4 +14,4 @@ describe Paypal::IPN do
16
14
  end
17
15
  end
18
16
  end
19
- end
17
+ end
@@ -1,5 +1,3 @@
1
- require 'spec_helper.rb'
2
-
3
1
  describe Paypal::NVP::Request do
4
2
  let :attributes do
5
3
  {
@@ -113,4 +111,4 @@ describe Paypal::NVP::Request do
113
111
  end
114
112
  end
115
113
  end
116
- end
114
+ end
@@ -124,7 +124,7 @@ describe Paypal::NVP::Response do
124
124
 
125
125
  it 'should handle all attributes' do
126
126
  Paypal.logger.should_not_receive(:warn)
127
- response = request.subscription 'profile_id'
127
+ response = request.subscription('profile_id')
128
128
  response.recurring.billing.amount.total.should == 1000
129
129
  response.recurring.regular_billing.paid.should == 1000
130
130
  response.recurring.summary.next_billing_date.should == '2011-03-04T10:00:00Z'
@@ -148,11 +148,25 @@ describe Paypal::NVP::Response do
148
148
  fake_response 'SetExpressCheckout/success'
149
149
  end
150
150
 
151
- it "should return a stringified hash of POST request response that instantiated the object" do
151
+ it "returns a stringified representation of the response->hash conversion" do
152
152
  response = request.setup(payment_request, return_url, cancel_url)
153
153
 
154
154
  expect(response.to_s).to eq("{:ACK=>\"Success\", :BUILD=>\"1721431\", :CORRELATIONID=>\"5549ea3a78af1\", :TIMESTAMP=>\"2011-02-02T02:02:18Z\", :TOKEN=>\"EC-5YJ90598G69065317\", :VERSION=>\"66.0\"}")
155
155
  end
156
156
  end
157
157
 
158
+ describe "#to_json" do
159
+ before do
160
+ fake_response 'SetExpressCheckout/success'
161
+ end
162
+
163
+ it "returns a JSON representation of the response->hash conversion" do
164
+ response = request.setup(payment_request, return_url, cancel_url)
165
+
166
+ expect(response.to_json).to eq(
167
+ "{\"ACK\":\"Success\",\"BUILD\":\"1721431\",\"CORRELATIONID\":\"5549ea3a78af1\",\"TIMESTAMP\":\"2011-02-02T02:02:18Z\",\"TOKEN\":\"EC-5YJ90598G69065317\",\"VERSION\":\"66.0\"}"
168
+ )
169
+ end
170
+ end
171
+
158
172
  end
@@ -1,5 +1,3 @@
1
- require 'spec_helper.rb'
2
-
3
1
  describe Paypal::Util do
4
2
  describe '.formatted_amount' do
5
3
  it 'should return String in "xx.yy" format' do
@@ -29,4 +27,4 @@ describe Paypal::Util do
29
27
  Paypal::Util.to_numeric('10.25').should == 10.25
30
28
  end
31
29
  end
32
- end
30
+ end
@@ -1,3 +1,7 @@
1
+ abort(
2
+ "Please use Ruby 2.3.5 or less in specs, fakeweb breaks on 2.4.0"
3
+ ) if RUBY_VERSION[%r'\A2\.[4-9]']
4
+
1
5
  require 'simplecov'
2
6
 
3
7
  SimpleCov.start do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: creative-paypal-express
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - nov matake
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-02-23 00:00:00.000000000 Z
12
+ date: 2017-10-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -29,16 +29,16 @@ dependencies:
29
29
  name: rest-client
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ">="
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '0'
34
+ version: 2.0.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ">="
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '0'
41
+ version: 2.0.0
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: attr_required
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -57,16 +57,16 @@ dependencies:
57
57
  name: rake
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ">="
60
+ - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '0.8'
62
+ version: 10.5.0
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ">="
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '0.8'
69
+ version: 10.5.0
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: simplecov
72
72
  requirement: !ruby/object:Gem::Requirement
@@ -135,13 +135,13 @@ files:
135
135
  - ".document"
136
136
  - ".gitignore"
137
137
  - ".rspec"
138
- - ".travis.yml"
139
138
  - CHANGELOG.md
140
139
  - Gemfile
141
140
  - LICENSE
142
141
  - README.md
143
142
  - Rakefile
144
143
  - VERSION
144
+ - circle.yml
145
145
  - creative-paypal-express.gemspec
146
146
  - lib/paypal.rb
147
147
  - lib/paypal/base.rb
@@ -238,7 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
238
238
  version: 1.3.6
239
239
  requirements: []
240
240
  rubyforge_project:
241
- rubygems_version: 2.2.2
241
+ rubygems_version: 2.5.2.1
242
242
  signing_key:
243
243
  specification_version: 4
244
244
  summary: PayPal Express Checkout API Client for Instance, Recurring and Digital Goods
@@ -1,6 +0,0 @@
1
- before_install:
2
- - gem install bundler
3
-
4
- rvm:
5
- - 2.0.0
6
- - 2.1.2