creative-paypal-express 1.2.1 → 1.3.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: 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