Module: StripeMock

Defined in:
lib/stripe_mock/data.rb,
lib/stripe_mock/client.rb,
lib/stripe_mock/server.rb,
lib/stripe_mock/version.rb,
lib/stripe_mock/instance.rb,
lib/stripe_mock/api/client.rb,
lib/stripe_mock/api/errors.rb,
lib/stripe_mock/api/instance.rb,
lib/stripe_mock/request_handlers/plans.rb,
lib/stripe_mock/errors/stripe_mock_error.rb,
lib/stripe_mock/request_handlers/charges.rb,
lib/stripe_mock/request_handlers/customers.rb,
lib/stripe_mock/errors/server_timeout_error.rb,
lib/stripe_mock/request_handlers/invoice_items.rb,
lib/stripe_mock/errors/uninitialized_instance_error.rb,
lib/stripe_mock/errors/closed_client_connection_error.rb

Defined Under Namespace

Modules: Data, RequestHandlers Classes: Client, ClosedClientConnectionError, Instance, Server, ServerTimeoutError, StripeMockError, UninitializedInstanceError

Constant Summary collapse

VERSION =

stripe-ruby-mock version

"1.8.3.4"

Class Method Summary collapse

Class Method Details

.alias_stripe_method(new_name, method_object) ⇒ Object



20
21
22
# File 'lib/stripe_mock/api/instance.rb', line 20

def self.alias_stripe_method(new_name, method_object)
  Stripe.define_singleton_method(new_name) {|*args| method_object.call(*args) }
end

.clientObject



3
# File 'lib/stripe_mock/api/client.rb', line 3

def self.client; @client; end

.instanceObject



24
# File 'lib/stripe_mock/api/instance.rb', line 24

def self.instance; @instance; end

.prepare_card_error(code) ⇒ Object

Raises:



8
9
10
11
12
# File 'lib/stripe_mock/api/errors.rb', line 8

def self.prepare_card_error(code)
  args = card_error_args[code]
  raise StripeMockError.new("Unrecognized stripe card error code: #{code}") if args.nil?
  self.prepare_error  Stripe::CardError.new(*args)
end

.prepare_error(stripe_error) ⇒ Object



3
4
5
6
# File 'lib/stripe_mock/api/errors.rb', line 3

def self.prepare_error(stripe_error)
  raise UninitializedInstanceError if instance.nil?
  instance.pending_error = stripe_error
end

.startObject



7
8
9
10
11
# File 'lib/stripe_mock/api/instance.rb', line 7

def self.start
  @instance = Instance.new
  alias_stripe_method :request, @instance.method(:mock_request)
  @state = 'local'
end

.start_client(port = 4999) ⇒ Object



5
6
7
8
9
10
# File 'lib/stripe_mock/api/client.rb', line 5

def self.start_client(port=4999)
  alias_stripe_method :request, StripeMock.method(:redirect_to_mock_server)
  @client = Client.new(port)
  @state = 'remote'
  @client
end

.start_server(port = 4999) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/stripe_mock/server.rb', line 6

def self.start_server(port=4999)
  server = Jimson::Server.new(Server.new,
    :host => '0.0.0.0',
    :port => port,
    :server => :thin,
    :show_errors => true
  )
  server.start
end

.stateObject



25
# File 'lib/stripe_mock/api/instance.rb', line 25

def self.state; @state; end

.stopObject



13
14
15
16
17
18
# File 'lib/stripe_mock/api/instance.rb', line 13

def self.stop
  return unless @state == 'local'
  alias_stripe_method :request, @original_request_method
  @instance = nil
  @state = 'ready'
end

.stop_client(opts = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/stripe_mock/api/client.rb', line 12

def self.stop_client(opts={})
  return false unless @state == 'remote'
  @state = 'ready'

  alias_stripe_method :request, @original_request_method
  @client.clear_data if opts[:clear_server_data] == true
  @client.close!
  @client = nil
  true
end