stripe-ruby-mock 1.8.7.2 → 1.8.7.3

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/.travis.yml CHANGED
@@ -2,4 +2,7 @@ language: ruby
2
2
  rvm:
3
3
  - 1.9.3
4
4
  - 2.0.0
5
+ before_script:
6
+ - "sudo touch /var/log/stripe-mock-server.log"
7
+ - "sudo chown travis /var/log/stripe-mock-server.log"
5
8
  script: "bundle exec rake"
data/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  In your gemfile:
9
9
 
10
- gem 'stripe-ruby-mock', '>= 1.8.7.2'
10
+ gem 'stripe-ruby-mock', '>= 1.8.7.3'
11
11
 
12
12
  ## Features
13
13
 
@@ -1,6 +1,7 @@
1
1
  module StripeMock
2
2
 
3
3
  @default_pid_path = './stripe-mock-server.pid'
4
+ @default_log_path = './stripe-mock-server.log'
4
5
 
5
6
  def self.default_server_pid_path; @default_pid_path; end
6
7
  def self.default_server_pid_path=(new_path)
@@ -10,13 +11,18 @@ module StripeMock
10
11
 
11
12
  def self.spawn_server(opts={})
12
13
  pid_path = opts[:pid_path] || @default_pid_path
13
- Dante::Runner.new('stripe-mock-server').execute(:daemonize => true, :pid_path => pid_path) {
14
+ log_path = opts[:log_path] || @default_log_path
15
+
16
+ Dante::Runner.new('stripe-mock-server').execute(
17
+ :daemonize => true, :pid_path => pid_path, :log_path => log_path
18
+ ){
14
19
  StripeMock::Server.start_new(opts)
15
20
  }
16
21
  at_exit { kill_server(pid_path) }
17
22
  end
18
23
 
19
24
  def self.kill_server(pid_path=nil)
25
+ puts "Y WE KILL NO"
20
26
  path = pid_path || @default_pid_path
21
27
  Dante::Runner.new('stripe-mock-server').execute(:kill => true, :pid_path => path)
22
28
  end
@@ -7,7 +7,7 @@ module StripeMock
7
7
  @port = port
8
8
  @pipe = Jimson::Client.new("http://0.0.0.0:#{port}")
9
9
  # Ensure client can connect to server
10
- timeout_wrap { @pipe.ping }
10
+ timeout_wrap(5) { @pipe.ping }
11
11
  @state = 'ready'
12
12
  @error_queue = ErrorQueue.new
13
13
  end
@@ -75,13 +75,27 @@ module StripeMock
75
75
  @state = 'closed'
76
76
  end
77
77
 
78
- def timeout_wrap
79
- raise ClosedClientConnectionError if @state == 'closed'
80
- yield
81
- rescue ClosedClientConnectionError
82
- raise
83
- rescue Errno::ECONNREFUSED => e
84
- raise StripeMock::ServerTimeoutError.new(e)
78
+ def timeout_wrap(tries=1)
79
+ original_tries = tries
80
+ begin
81
+ raise ClosedClientConnectionError if @state == 'closed'
82
+ yield
83
+ rescue ClosedClientConnectionError
84
+ raise
85
+ rescue Errno::ECONNREFUSED => e
86
+ tries -= 1
87
+ if tries > 0
88
+ if tries == original_tries - 1
89
+ print "Waiting for StripeMock Server.."
90
+ else
91
+ print '.'
92
+ end
93
+ sleep 1
94
+ retry
95
+ else
96
+ raise StripeMock::ServerTimeoutError.new(e)
97
+ end
98
+ end
85
99
  end
86
100
  end
87
101
 
@@ -6,6 +6,7 @@ module StripeMock
6
6
  klass.add_handler 'post /v1/customers/(.*)/cards', :create_card
7
7
  klass.add_handler 'get /v1/customers/(.*)/cards/(.*)', :retrieve_card
8
8
  klass.add_handler 'delete /v1/customers/(.*)/cards/(.*)', :delete_card
9
+ klass.add_handler 'post /v1/customers/(.*)/cards/(.*)', :update_card
9
10
  end
10
11
 
11
12
  def create_card(route, method_url, params, headers)
@@ -42,6 +43,17 @@ module StripeMock
42
43
  card
43
44
  end
44
45
 
46
+ def update_card(route, method_url, params, headers)
47
+ route =~ method_url
48
+
49
+ customer = customers[$1]
50
+ assert_existance :customer, $1, customer
51
+ card = get_customer_card(customer, $2)
52
+ assert_existance :card, $2, card
53
+ card.merge!(params)
54
+ card
55
+ end
56
+
45
57
  private
46
58
 
47
59
  def validate_card(card)
@@ -6,6 +6,7 @@ module StripeMock
6
6
  extend Jimson::Handler
7
7
 
8
8
  def self.start_new(opts)
9
+ puts "Starting StripeMock server on port #{opts[:port] || 4999}"
9
10
  server = Jimson::Server.new(Server.new,
10
11
  :host => opts[:host] || '0.0.0.0',
11
12
  :port => opts[:port] || 4999,
@@ -1,4 +1,4 @@
1
1
  module StripeMock
2
2
  # stripe-ruby-mock version
3
- VERSION = "1.8.7.2"
3
+ VERSION = "1.8.7.3"
4
4
  end
data/spec/server_spec.rb CHANGED
@@ -11,11 +11,6 @@ describe 'StripeMock Server' do
11
11
  StripeMock.spawn_server
12
12
  end
13
13
 
14
- after(:all) do
15
- StripeMock.kill_server
16
- end
17
-
18
-
19
14
  before do
20
15
  @client = StripeMock.start_client
21
16
  end
@@ -71,4 +71,25 @@ shared_examples 'Card API' do
71
71
  it "updates the default card if deleted"
72
72
 
73
73
  end
74
+
75
+ context "update card" do
76
+ let!(:customer) { Stripe::Customer.create(id: 'test_customer_sub') }
77
+ let!(:card_token) { StripeMock.generate_card_token(last4: "1123", exp_month: 11, exp_year: 2099) }
78
+ let!(:card) { customer.cards.create(card: card_token) }
79
+
80
+ it "updates the card" do
81
+ exp_month = 10
82
+ exp_year = 2098
83
+
84
+ card.exp_month = exp_month
85
+ card.exp_year = exp_year
86
+ card.save
87
+
88
+ retrieved = customer.cards.retrieve(card.id)
89
+
90
+ expect(retrieved.exp_month).to eq(exp_month)
91
+ expect(retrieved.exp_year).to eq(exp_year)
92
+ end
93
+ end
94
+
74
95
  end
@@ -19,7 +19,7 @@ Gem::Specification.new do |gem|
19
19
 
20
20
  gem.add_dependency 'stripe', '>= 1.8.4'
21
21
  gem.add_dependency 'jimson-temp'
22
- gem.add_dependency 'dante', '>= 0.1.5'
22
+ gem.add_dependency 'dante', '>= 0.2.0'
23
23
 
24
24
  gem.add_development_dependency 'rspec', '~> 2.4'
25
25
  gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe-ruby-mock
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.7.2
4
+ version: 1.8.7.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-12-09 00:00:00.000000000 Z
12
+ date: 2013-12-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: stripe
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
- version: 0.1.5
53
+ version: 0.2.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
- version: 0.1.5
61
+ version: 0.2.0
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rspec
64
64
  requirement: !ruby/object:Gem::Requirement