Class: StripeMock::Client
- Inherits:
-
Object
- Object
- StripeMock::Client
- Defined in:
- lib/stripe_mock/client.rb
Instance Attribute Summary collapse
-
#error_queue ⇒ Object
readonly
Returns the value of attribute error_queue.
-
#port ⇒ Object
readonly
Returns the value of attribute port.
-
#state ⇒ Object
readonly
Returns the value of attribute state.
Instance Method Summary collapse
- #cleanup ⇒ Object
- #clear_server_data ⇒ Object
- #close! ⇒ Object
- #destroy_resource(type, id) ⇒ Object
- #generate_bank_token(recipient_params) ⇒ Object
- #generate_card_token(card_params) ⇒ Object
- #generate_webhook_event(event_data) ⇒ Object
- #get_server_data(key) ⇒ Object
-
#initialize(port) ⇒ Client
constructor
A new instance of Client.
- #mock_request(method, url, api_key, params = {}, headers = {}) ⇒ Object
- #server_debug? ⇒ Boolean
- #server_global_id_prefix ⇒ Object
- #set_server_debug(toggle) ⇒ Object
- #set_server_global_id_prefix(value) ⇒ Object
- #timeout_wrap(tries = 1) ⇒ Object
Constructor Details
#initialize(port) ⇒ Client
Returns a new instance of Client.
6 7 8 9 10 11 12 13 |
# File 'lib/stripe_mock/client.rb', line 6 def initialize(port) @port = port @pipe = Jimson::Client.new("http://0.0.0.0:#{port}") # Ensure client can connect to server timeout_wrap(5) { @pipe.ping } @state = 'ready' @error_queue = ErrorQueue.new end |
Instance Attribute Details
#error_queue ⇒ Object (readonly)
Returns the value of attribute error_queue.
4 5 6 |
# File 'lib/stripe_mock/client.rb', line 4 def error_queue @error_queue end |
#port ⇒ Object (readonly)
Returns the value of attribute port.
4 5 6 |
# File 'lib/stripe_mock/client.rb', line 4 def port @port end |
#state ⇒ Object (readonly)
Returns the value of attribute state.
4 5 6 |
# File 'lib/stripe_mock/client.rb', line 4 def state @state end |
Instance Method Details
#cleanup ⇒ Object
76 77 78 79 80 |
# File 'lib/stripe_mock/client.rb', line 76 def cleanup return if @state == 'closed' set_server_debug(false) @state = 'closed' end |
#clear_server_data ⇒ Object
67 68 69 |
# File 'lib/stripe_mock/client.rb', line 67 def clear_server_data timeout_wrap { @pipe.clear_data } end |
#close! ⇒ Object
71 72 73 74 |
# File 'lib/stripe_mock/client.rb', line 71 def close! self.cleanup StripeMock.stop_client(:clear_server_data => false) end |
#destroy_resource(type, id) ⇒ Object
63 64 65 |
# File 'lib/stripe_mock/client.rb', line 63 def destroy_resource(type, id) timeout_wrap { @pipe.destroy_resource(type, id) } end |
#generate_bank_token(recipient_params) ⇒ Object
51 52 53 |
# File 'lib/stripe_mock/client.rb', line 51 def generate_bank_token(recipient_params) timeout_wrap { @pipe.generate_bank_token(recipient_params) } end |
#generate_card_token(card_params) ⇒ Object
55 56 57 |
# File 'lib/stripe_mock/client.rb', line 55 def generate_card_token(card_params) timeout_wrap { @pipe.generate_card_token(card_params) } end |
#generate_webhook_event(event_data) ⇒ Object
59 60 61 |
# File 'lib/stripe_mock/client.rb', line 59 def generate_webhook_event(event_data) timeout_wrap { Stripe::Util.symbolize_names @pipe.generate_webhook_event(event_data) } end |
#get_server_data(key) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/stripe_mock/client.rb', line 26 def get_server_data(key) timeout_wrap { # Massage the data make this behave the same as the local StripeMock.start result = {} @pipe.get_data(key).each {|k,v| result[k] = Stripe::Util.symbolize_names(v) } result } end |
#mock_request(method, url, api_key, params = {}, headers = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/stripe_mock/client.rb', line 15 def mock_request(method, url, api_key, params={}, headers={}) timeout_wrap do @pipe.mock_request(method, url, api_key, params, headers).tap {|result| response, api_key = result if response.is_a?(Hash) && response['error_raised'] == 'invalid_request' raise Stripe::InvalidRequestError.new(*response['error_params']) end } end end |
#server_debug? ⇒ Boolean
39 40 41 |
# File 'lib/stripe_mock/client.rb', line 39 def server_debug? timeout_wrap { @pipe.debug? } end |
#server_global_id_prefix ⇒ Object
47 48 49 |
# File 'lib/stripe_mock/client.rb', line 47 def server_global_id_prefix timeout_wrap { @pipe.global_id_prefix } end |
#set_server_debug(toggle) ⇒ Object
35 36 37 |
# File 'lib/stripe_mock/client.rb', line 35 def set_server_debug(toggle) timeout_wrap { @pipe.set_debug(toggle) } end |
#set_server_global_id_prefix(value) ⇒ Object
43 44 45 |
# File 'lib/stripe_mock/client.rb', line 43 def set_server_global_id_prefix(value) timeout_wrap { @pipe.set_global_id_prefix(value) } end |
#timeout_wrap(tries = 1) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/stripe_mock/client.rb', line 82 def timeout_wrap(tries=1) original_tries = tries begin raise ClosedClientConnectionError if @state == 'closed' yield rescue ClosedClientConnectionError raise rescue Errno::ECONNREFUSED => e tries -= 1 if tries > 0 if tries == original_tries - 1 print "Waiting for StripeMock Server.." else print '.' end sleep 1 retry else raise StripeMock::ServerTimeoutError.new(e) end end end |