stripe 5.55.0 → 13.5.1
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 +4 -4
- data/CHANGELOG.md +567 -4
- data/Gemfile +12 -4
- data/Makefile +18 -3
- data/OPENAPI_VERSION +1 -0
- data/README.md +93 -21
- data/Rakefile +3 -6
- data/VERSION +1 -1
- data/examples/README.md +16 -0
- data/examples/example_template.rb +36 -0
- data/examples/meter_event_stream.rb +57 -0
- data/examples/thinevent_webhook_handler.rb +39 -0
- data/{bin → exe}/stripe-console +1 -1
- data/justfile +43 -0
- data/lib/data/ca-certificates.crt +1241 -1937
- data/lib/stripe/api_operations/create.rb +6 -2
- data/lib/stripe/api_operations/delete.rb +12 -7
- data/lib/stripe/api_operations/list.rb +6 -9
- data/lib/stripe/api_operations/nested_resource.rb +63 -35
- data/lib/stripe/api_operations/request.rb +29 -65
- data/lib/stripe/api_operations/save.rb +20 -10
- data/lib/stripe/api_operations/search.rb +11 -9
- data/lib/stripe/api_operations/singleton_save.rb +90 -0
- data/lib/stripe/api_requestor.rb +1131 -0
- data/lib/stripe/api_resource.rb +48 -18
- data/lib/stripe/api_resource_test_helpers.rb +9 -3
- data/lib/stripe/api_version.rb +8 -0
- data/lib/stripe/connection_manager.rb +5 -7
- data/lib/stripe/errors.rb +11 -13
- data/lib/stripe/event_types.rb +14 -0
- data/lib/stripe/events/v1_billing_meter_error_report_triggered_event.rb +23 -0
- data/lib/stripe/events/v1_billing_meter_no_meter_found_event.rb +13 -0
- data/lib/stripe/instrumentation.rb +37 -15
- data/lib/stripe/list_object.rb +5 -3
- data/lib/stripe/multipart_encoder.rb +7 -7
- data/lib/stripe/oauth.rb +14 -21
- data/lib/stripe/object_types.rb +151 -103
- data/lib/stripe/request_options.rb +129 -0
- data/lib/stripe/resources/account.rb +129 -25
- data/lib/stripe/resources/account_link.rb +12 -0
- data/lib/stripe/resources/account_session.rb +25 -0
- data/lib/stripe/resources/alipay_account.rb +1 -1
- data/lib/stripe/resources/apple_pay_domain.rb +38 -0
- data/lib/stripe/resources/application_fee.rb +9 -2
- data/lib/stripe/resources/application_fee_refund.rb +9 -2
- data/lib/stripe/resources/apps/secret.rb +55 -0
- data/lib/stripe/resources/balance.rb +14 -0
- data/lib/stripe/resources/balance_transaction.rb +19 -0
- data/lib/stripe/resources/bank_account.rb +53 -4
- data/lib/stripe/resources/billing/alert.rb +87 -0
- data/lib/stripe/resources/billing/credit_balance_summary.rb +14 -0
- data/lib/stripe/resources/billing/credit_balance_transaction.rb +26 -0
- data/lib/stripe/resources/billing/credit_grant.rb +90 -0
- data/lib/stripe/resources/billing/meter.rb +85 -0
- data/lib/stripe/resources/billing/meter_event.rb +26 -0
- data/lib/stripe/resources/billing/meter_event_adjustment.rb +26 -0
- data/lib/stripe/resources/billing/meter_event_summary.rb +17 -0
- data/lib/stripe/resources/billing_portal/configuration.rb +34 -0
- data/lib/stripe/resources/billing_portal/session.rb +27 -0
- data/lib/stripe/resources/capability.rb +7 -2
- data/lib/stripe/resources/card.rb +34 -3
- data/lib/stripe/resources/cash_balance.rb +4 -0
- data/lib/stripe/resources/charge.rb +52 -3
- data/lib/stripe/resources/checkout/session.rb +83 -5
- data/lib/stripe/resources/climate/order.rb +67 -0
- data/lib/stripe/resources/climate/product.rb +27 -0
- data/lib/stripe/resources/climate/supplier.rb +26 -0
- data/lib/stripe/resources/confirmation_token.rb +39 -0
- data/lib/stripe/resources/country_spec.rb +14 -0
- data/lib/stripe/resources/coupon.rb +48 -0
- data/lib/stripe/resources/credit_note.rb +67 -9
- data/lib/stripe/resources/credit_note_line_item.rb +4 -0
- data/lib/stripe/resources/customer.rb +172 -28
- data/lib/stripe/resources/customer_balance_transaction.rb +9 -1
- data/lib/stripe/resources/customer_cash_balance_transaction.rb +15 -0
- data/lib/stripe/resources/customer_session.rb +29 -0
- data/lib/stripe/resources/discount.rb +7 -0
- data/lib/stripe/resources/dispute.rb +41 -3
- data/lib/stripe/resources/entitlements/active_entitlement.rb +26 -0
- data/lib/stripe/resources/entitlements/feature.rb +49 -0
- data/lib/stripe/resources/ephemeral_key.rb +23 -0
- data/lib/stripe/resources/event.rb +38 -0
- data/lib/stripe/resources/exchange_rate.rb +34 -0
- data/lib/stripe/resources/file.rb +37 -15
- data/lib/stripe/resources/file_link.rb +26 -0
- data/lib/stripe/resources/financial_connections/account.rb +101 -6
- data/lib/stripe/resources/financial_connections/account_owner.rb +4 -0
- data/lib/stripe/resources/financial_connections/account_ownership.rb +4 -0
- data/lib/stripe/resources/financial_connections/session.rb +14 -0
- data/lib/stripe/resources/financial_connections/transaction.rb +26 -0
- data/lib/stripe/resources/forwarding/request.rb +52 -0
- data/lib/stripe/resources/funding_instructions.rb +8 -0
- data/lib/stripe/resources/identity/verification_report.rb +24 -0
- data/lib/stripe/resources/identity/verification_session.rb +117 -5
- data/lib/stripe/resources/invoice.rb +247 -20
- data/lib/stripe/resources/invoice_item.rb +54 -0
- data/lib/stripe/resources/invoice_line_item.rb +22 -1
- data/lib/stripe/resources/invoice_rendering_template.rb +65 -0
- data/lib/stripe/resources/issuing/authorization.rb +210 -5
- data/lib/stripe/resources/issuing/card.rb +128 -4
- data/lib/stripe/resources/issuing/cardholder.rb +36 -0
- data/lib/stripe/resources/issuing/dispute.rb +47 -2
- data/lib/stripe/resources/issuing/personalization_design.rb +119 -0
- data/lib/stripe/resources/issuing/physical_bundle.rb +26 -0
- data/lib/stripe/resources/issuing/token.rb +32 -0
- data/lib/stripe/resources/issuing/transaction.rb +79 -0
- data/lib/stripe/resources/line_item.rb +4 -0
- data/lib/stripe/resources/login_link.rb +4 -0
- data/lib/stripe/resources/mandate.rb +4 -0
- data/lib/stripe/resources/payment_intent.rb +238 -15
- data/lib/stripe/resources/payment_link.rb +39 -2
- data/lib/stripe/resources/payment_method.rb +78 -5
- data/lib/stripe/resources/payment_method_configuration.rb +59 -0
- data/lib/stripe/resources/payment_method_domain.rb +79 -0
- data/lib/stripe/resources/payout.rb +63 -5
- data/lib/stripe/resources/person.rb +8 -1
- data/lib/stripe/resources/plan.rb +51 -0
- data/lib/stripe/resources/price.rb +30 -1
- data/lib/stripe/resources/product.rb +55 -1
- data/lib/stripe/resources/product_feature.rb +13 -0
- data/lib/stripe/resources/promotion_code.rb +25 -0
- data/lib/stripe/resources/quote.rb +97 -39
- data/lib/stripe/resources/radar/early_fraud_warning.rb +17 -0
- data/lib/stripe/resources/radar/value_list.rb +56 -0
- data/lib/stripe/resources/radar/value_list_item.rb +46 -0
- data/lib/stripe/resources/refund.rb +70 -5
- data/lib/stripe/resources/reporting/report_run.rb +31 -0
- data/lib/stripe/resources/reporting/report_type.rb +21 -1
- data/lib/stripe/resources/reversal.rb +17 -2
- data/lib/stripe/resources/review.rb +24 -3
- data/lib/stripe/resources/setup_attempt.rb +12 -0
- data/lib/stripe/resources/setup_intent.rb +113 -7
- data/lib/stripe/resources/shipping_rate.rb +25 -0
- data/lib/stripe/resources/sigma/scheduled_query_run.rb +17 -0
- data/lib/stripe/resources/source.rb +52 -10
- data/lib/stripe/resources/source_transaction.rb +7 -0
- data/lib/stripe/resources/subscription.rb +118 -5
- data/lib/stripe/resources/subscription_item.rb +54 -6
- data/lib/stripe/resources/subscription_schedule.rb +60 -5
- data/lib/stripe/resources/tax/calculation.rb +48 -0
- data/lib/stripe/resources/tax/calculation_line_item.rb +13 -0
- data/lib/stripe/resources/tax/registration.rb +54 -0
- data/lib/stripe/resources/tax/settings.rb +17 -0
- data/lib/stripe/resources/tax/transaction.rb +56 -0
- data/lib/stripe/resources/tax/transaction_line_item.rb +13 -0
- data/lib/stripe/resources/tax_code.rb +9 -0
- data/lib/stripe/resources/tax_id.rb +34 -12
- data/lib/stripe/resources/tax_rate.rb +26 -0
- data/lib/stripe/resources/terminal/configuration.rb +54 -0
- data/lib/stripe/resources/terminal/connection_token.rb +16 -0
- data/lib/stripe/resources/terminal/location.rb +57 -0
- data/lib/stripe/resources/terminal/reader.rb +138 -11
- data/lib/stripe/resources/test_helpers/test_clock.rb +58 -3
- data/lib/stripe/resources/token.rb +29 -0
- data/lib/stripe/resources/topup.rb +40 -3
- data/lib/stripe/resources/transfer.rb +29 -6
- data/lib/stripe/resources/treasury/credit_reversal.rb +37 -0
- data/lib/stripe/resources/treasury/debit_reversal.rb +37 -0
- data/lib/stripe/resources/treasury/financial_account.rb +109 -0
- data/lib/stripe/resources/treasury/financial_account_features.rb +15 -0
- data/lib/stripe/resources/treasury/inbound_transfer.rb +130 -0
- data/lib/stripe/resources/treasury/outbound_payment.rb +152 -0
- data/lib/stripe/resources/treasury/outbound_transfer.rb +152 -0
- data/lib/stripe/resources/treasury/received_credit.rb +47 -0
- data/lib/stripe/resources/treasury/received_debit.rb +47 -0
- data/lib/stripe/resources/treasury/transaction.rb +26 -0
- data/lib/stripe/resources/treasury/transaction_entry.rb +30 -0
- data/lib/stripe/resources/usage_record.rb +9 -0
- data/lib/stripe/resources/usage_record_summary.rb +4 -0
- data/lib/stripe/resources/v2/billing/meter_event.rb +16 -0
- data/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +15 -0
- data/lib/stripe/resources/v2/billing/meter_event_session.rb +15 -0
- data/lib/stripe/resources/v2/event.rb +13 -0
- data/lib/stripe/resources/v2/event_destination.rb +13 -0
- data/lib/stripe/resources/webhook_endpoint.rb +55 -0
- data/lib/stripe/resources.rb +51 -10
- data/lib/stripe/search_result_object.rb +5 -2
- data/lib/stripe/services/account_capability_service.rb +39 -0
- data/lib/stripe/services/account_external_account_service.rb +68 -0
- data/lib/stripe/services/account_link_service.rb +17 -0
- data/lib/stripe/services/account_login_link_service.rb +19 -0
- data/lib/stripe/services/account_person_service.rb +61 -0
- data/lib/stripe/services/account_service.rb +100 -0
- data/lib/stripe/services/account_session_service.rb +17 -0
- data/lib/stripe/services/apple_pay_domain_service.rb +50 -0
- data/lib/stripe/services/application_fee_refund_service.rb +60 -0
- data/lib/stripe/services/application_fee_service.rb +35 -0
- data/lib/stripe/services/apps/secret_service.rb +52 -0
- data/lib/stripe/services/apps_service.rb +13 -0
- data/lib/stripe/services/balance_service.rb +12 -0
- data/lib/stripe/services/balance_transaction_service.rb +32 -0
- data/lib/stripe/services/billing/alert_service.rb +74 -0
- data/lib/stripe/services/billing/credit_balance_summary_service.rb +19 -0
- data/lib/stripe/services/billing/credit_balance_transaction_service.rb +30 -0
- data/lib/stripe/services/billing/credit_grant_service.rb +74 -0
- data/lib/stripe/services/billing/meter_event_adjustment_service.rb +19 -0
- data/lib/stripe/services/billing/meter_event_service.rb +19 -0
- data/lib/stripe/services/billing/meter_event_summary_service.rb +19 -0
- data/lib/stripe/services/billing/meter_service.rb +81 -0
- data/lib/stripe/services/billing_portal/configuration_service.rb +52 -0
- data/lib/stripe/services/billing_portal/session_service.rb +19 -0
- data/lib/stripe/services/billing_portal_service.rb +14 -0
- data/lib/stripe/services/billing_service.rb +20 -0
- data/lib/stripe/services/charge_service.rb +69 -0
- data/lib/stripe/services/checkout/session_line_item_service.rb +19 -0
- data/lib/stripe/services/checkout/session_service.rb +72 -0
- data/lib/stripe/services/checkout_service.rb +13 -0
- data/lib/stripe/services/climate/order_service.rb +68 -0
- data/lib/stripe/services/climate/product_service.rb +30 -0
- data/lib/stripe/services/climate/supplier_service.rb +30 -0
- data/lib/stripe/services/climate_service.rb +15 -0
- data/lib/stripe/services/confirmation_token_service.rb +17 -0
- data/lib/stripe/services/country_spec_service.rb +28 -0
- data/lib/stripe/services/coupon_service.rb +51 -0
- data/lib/stripe/services/credit_note_line_item_service.rb +17 -0
- data/lib/stripe/services/credit_note_preview_lines_service.rb +17 -0
- data/lib/stripe/services/credit_note_service.rb +93 -0
- data/lib/stripe/services/customer_balance_transaction_service.rb +50 -0
- data/lib/stripe/services/customer_cash_balance_service.rb +28 -0
- data/lib/stripe/services/customer_cash_balance_transaction_service.rb +28 -0
- data/lib/stripe/services/customer_funding_instructions_service.rb +19 -0
- data/lib/stripe/services/customer_payment_method_service.rb +28 -0
- data/lib/stripe/services/customer_payment_source_service.rb +76 -0
- data/lib/stripe/services/customer_service.rb +89 -0
- data/lib/stripe/services/customer_session_service.rb +17 -0
- data/lib/stripe/services/customer_tax_id_service.rb +50 -0
- data/lib/stripe/services/dispute_service.rb +48 -0
- data/lib/stripe/services/entitlements/active_entitlement_service.rb +30 -0
- data/lib/stripe/services/entitlements/feature_service.rb +52 -0
- data/lib/stripe/services/entitlements_service.rb +14 -0
- data/lib/stripe/services/ephemeral_key_service.rb +28 -0
- data/lib/stripe/services/event_service.rb +22 -0
- data/lib/stripe/services/exchange_rate_service.rb +28 -0
- data/lib/stripe/services/file_link_service.rb +38 -0
- data/lib/stripe/services/file_service.rb +35 -0
- data/lib/stripe/services/financial_connections/account_owner_service.rb +19 -0
- data/lib/stripe/services/financial_connections/account_service.rb +81 -0
- data/lib/stripe/services/financial_connections/session_service.rb +30 -0
- data/lib/stripe/services/financial_connections/transaction_service.rb +30 -0
- data/lib/stripe/services/financial_connections_service.rb +15 -0
- data/lib/stripe/services/forwarding/request_service.rb +41 -0
- data/lib/stripe/services/forwarding_service.rb +13 -0
- data/lib/stripe/services/identity/verification_report_service.rb +30 -0
- data/lib/stripe/services/identity/verification_session_service.rb +106 -0
- data/lib/stripe/services/identity_service.rb +14 -0
- data/lib/stripe/services/invoice_item_service.rb +61 -0
- data/lib/stripe/services/invoice_line_item_service.rb +31 -0
- data/lib/stripe/services/invoice_rendering_template_service.rb +50 -0
- data/lib/stripe/services/invoice_service.rb +202 -0
- data/lib/stripe/services/invoice_upcoming_lines_service.rb +17 -0
- data/lib/stripe/services/issuing/authorization_service.rb +65 -0
- data/lib/stripe/services/issuing/card_service.rb +52 -0
- data/lib/stripe/services/issuing/cardholder_service.rb +52 -0
- data/lib/stripe/services/issuing/dispute_service.rb +63 -0
- data/lib/stripe/services/issuing/personalization_design_service.rb +52 -0
- data/lib/stripe/services/issuing/physical_bundle_service.rb +30 -0
- data/lib/stripe/services/issuing/token_service.rb +41 -0
- data/lib/stripe/services/issuing/transaction_service.rb +41 -0
- data/lib/stripe/services/issuing_service.rb +20 -0
- data/lib/stripe/services/mandate_service.rb +17 -0
- data/lib/stripe/services/oauth_service.rb +63 -0
- data/lib/stripe/services/payment_intent_service.rb +204 -0
- data/lib/stripe/services/payment_link_line_item_service.rb +17 -0
- data/lib/stripe/services/payment_link_service.rb +57 -0
- data/lib/stripe/services/payment_method_configuration_service.rb +50 -0
- data/lib/stripe/services/payment_method_domain_service.rb +66 -0
- data/lib/stripe/services/payment_method_service.rb +86 -0
- data/lib/stripe/services/payout_service.rb +66 -0
- data/lib/stripe/services/plan_service.rb +49 -0
- data/lib/stripe/services/price_service.rb +52 -0
- data/lib/stripe/services/product_feature_service.rb +50 -0
- data/lib/stripe/services/product_service.rb +70 -0
- data/lib/stripe/services/promotion_code_service.rb +50 -0
- data/lib/stripe/services/quote_computed_upfront_line_items_service.rb +17 -0
- data/lib/stripe/services/quote_line_item_service.rb +17 -0
- data/lib/stripe/services/quote_service.rb +92 -0
- data/lib/stripe/services/radar/early_fraud_warning_service.rb +32 -0
- data/lib/stripe/services/radar/value_list_item_service.rb +52 -0
- data/lib/stripe/services/radar/value_list_service.rb +63 -0
- data/lib/stripe/services/radar_service.rb +15 -0
- data/lib/stripe/services/refund_service.rb +63 -0
- data/lib/stripe/services/reporting/report_run_service.rb +41 -0
- data/lib/stripe/services/reporting/report_type_service.rb +30 -0
- data/lib/stripe/services/reporting_service.rb +14 -0
- data/lib/stripe/services/review_service.rb +33 -0
- data/lib/stripe/services/setup_attempt_service.rb +17 -0
- data/lib/stripe/services/setup_intent_service.rb +105 -0
- data/lib/stripe/services/shipping_rate_service.rb +50 -0
- data/lib/stripe/services/sigma/scheduled_query_run_service.rb +30 -0
- data/lib/stripe/services/sigma_service.rb +13 -0
- data/lib/stripe/services/source_service.rb +64 -0
- data/lib/stripe/services/source_transaction_service.rb +17 -0
- data/lib/stripe/services/subscription_item_service.rb +69 -0
- data/lib/stripe/services/subscription_item_usage_record_service.rb +23 -0
- data/lib/stripe/services/subscription_item_usage_record_summary_service.rb +19 -0
- data/lib/stripe/services/subscription_schedule_service.rb +72 -0
- data/lib/stripe/services/subscription_service.rb +127 -0
- data/lib/stripe/services/tax/calculation_line_item_service.rb +19 -0
- data/lib/stripe/services/tax/calculation_service.rb +37 -0
- data/lib/stripe/services/tax/registration_service.rb +54 -0
- data/lib/stripe/services/tax/settings_service.rb +30 -0
- data/lib/stripe/services/tax/transaction_line_item_service.rb +19 -0
- data/lib/stripe/services/tax/transaction_service.rb +48 -0
- data/lib/stripe/services/tax_code_service.rb +22 -0
- data/lib/stripe/services/tax_id_service.rb +38 -0
- data/lib/stripe/services/tax_rate_service.rb +38 -0
- data/lib/stripe/services/tax_service.rb +16 -0
- data/lib/stripe/services/terminal/configuration_service.rb +63 -0
- data/lib/stripe/services/terminal/connection_token_service.rb +19 -0
- data/lib/stripe/services/terminal/location_service.rb +64 -0
- data/lib/stripe/services/terminal/reader_service.rb +118 -0
- data/lib/stripe/services/terminal_service.rb +16 -0
- data/lib/stripe/services/test_helpers/confirmation_token_service.rb +19 -0
- data/lib/stripe/services/test_helpers/customer_service.rb +19 -0
- data/lib/stripe/services/test_helpers/issuing/authorization_service.rb +87 -0
- data/lib/stripe/services/test_helpers/issuing/card_service.rb +65 -0
- data/lib/stripe/services/test_helpers/issuing/personalization_design_service.rb +43 -0
- data/lib/stripe/services/test_helpers/issuing/transaction_service.rb +43 -0
- data/lib/stripe/services/test_helpers/issuing_service.rb +19 -0
- data/lib/stripe/services/test_helpers/refund_service.rb +19 -0
- data/lib/stripe/services/test_helpers/terminal/reader_service.rb +21 -0
- data/lib/stripe/services/test_helpers/terminal_service.rb +15 -0
- data/lib/stripe/services/test_helpers/test_clock_service.rb +63 -0
- data/lib/stripe/services/test_helpers/treasury/inbound_transfer_service.rb +43 -0
- data/lib/stripe/services/test_helpers/treasury/outbound_payment_service.rb +54 -0
- data/lib/stripe/services/test_helpers/treasury/outbound_transfer_service.rb +54 -0
- data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +21 -0
- data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +21 -0
- data/lib/stripe/services/test_helpers/treasury_service.rb +19 -0
- data/lib/stripe/services/test_helpers_service.rb +19 -0
- data/lib/stripe/services/token_service.rb +23 -0
- data/lib/stripe/services/topup_service.rb +49 -0
- data/lib/stripe/services/transfer_reversal_service.rb +56 -0
- data/lib/stripe/services/transfer_service.rb +47 -0
- data/lib/stripe/services/treasury/credit_reversal_service.rb +41 -0
- data/lib/stripe/services/treasury/debit_reversal_service.rb +41 -0
- data/lib/stripe/services/treasury/financial_account_features_service.rb +30 -0
- data/lib/stripe/services/treasury/financial_account_service.rb +70 -0
- data/lib/stripe/services/treasury/inbound_transfer_service.rb +52 -0
- data/lib/stripe/services/treasury/outbound_payment_service.rb +52 -0
- data/lib/stripe/services/treasury/outbound_transfer_service.rb +52 -0
- data/lib/stripe/services/treasury/received_credit_service.rb +30 -0
- data/lib/stripe/services/treasury/received_debit_service.rb +30 -0
- data/lib/stripe/services/treasury/transaction_entry_service.rb +30 -0
- data/lib/stripe/services/treasury/transaction_service.rb +30 -0
- data/lib/stripe/services/treasury_service.rb +22 -0
- data/lib/stripe/services/v1_services.rb +89 -0
- data/lib/stripe/services/v2/billing/meter_event_adjustment_service.rb +21 -0
- data/lib/stripe/services/v2/billing/meter_event_service.rb +21 -0
- data/lib/stripe/services/v2/billing/meter_event_session_service.rb +21 -0
- data/lib/stripe/services/v2/billing/meter_event_stream_service.rb +23 -0
- data/lib/stripe/services/v2/billing_service.rb +18 -0
- data/lib/stripe/services/v2/core/event_destination_service.rb +98 -0
- data/lib/stripe/services/v2/core/event_service.rb +32 -0
- data/lib/stripe/services/v2/core_service.rb +16 -0
- data/lib/stripe/services/v2_services.rb +14 -0
- data/lib/stripe/services/webhook_endpoint_service.rb +61 -0
- data/lib/stripe/services.rb +182 -0
- data/lib/stripe/singleton_api_resource.rb +3 -3
- data/lib/stripe/stripe_client.rb +55 -1028
- data/lib/stripe/stripe_configuration.rb +63 -42
- data/lib/stripe/stripe_object.rb +60 -38
- data/lib/stripe/stripe_response.rb +1 -3
- data/lib/stripe/stripe_service.rb +32 -0
- data/lib/stripe/thin_event.rb +37 -0
- data/lib/stripe/util.rb +109 -45
- data/lib/stripe/v2_list_object.rb +84 -0
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe/webhook.rb +3 -2
- data/lib/stripe.rb +39 -0
- data/stripe.gemspec +7 -4
- metadata +252 -13
- data/lib/stripe/resources/bitcoin_receiver.rb +0 -24
- data/lib/stripe/resources/bitcoin_transaction.rb +0 -16
- data/lib/stripe/resources/issuing/card_details.rb +0 -10
- data/lib/stripe/resources/order.rb +0 -33
- data/lib/stripe/resources/order_return.rb +0 -10
- data/lib/stripe/resources/recipient.rb +0 -14
- data/lib/stripe/resources/sku.rb +0 -13
- data/lib/stripe/resources/three_d_secure.rb +0 -14
data/lib/stripe/util.rb
CHANGED
@@ -4,26 +4,6 @@ require "cgi"
|
|
4
4
|
|
5
5
|
module Stripe
|
6
6
|
module Util
|
7
|
-
# Options that a user is allowed to specify.
|
8
|
-
OPTS_USER_SPECIFIED = Set[
|
9
|
-
:api_key,
|
10
|
-
:idempotency_key,
|
11
|
-
:stripe_account,
|
12
|
-
:stripe_version
|
13
|
-
].freeze
|
14
|
-
|
15
|
-
# Options that should be copyable from one StripeObject to another
|
16
|
-
# including options that may be internal.
|
17
|
-
OPTS_COPYABLE = (
|
18
|
-
OPTS_USER_SPECIFIED + Set[:api_base]
|
19
|
-
).freeze
|
20
|
-
|
21
|
-
# Options that should be persisted between API requests. This includes
|
22
|
-
# client, which is an object containing an HTTP client to reuse.
|
23
|
-
OPTS_PERSISTABLE = (
|
24
|
-
OPTS_USER_SPECIFIED + Set[:client] - Set[:idempotency_key]
|
25
|
-
).freeze
|
26
|
-
|
27
7
|
def self.objects_to_ids(obj)
|
28
8
|
case obj
|
29
9
|
when APIResource
|
@@ -43,6 +23,14 @@ module Stripe
|
|
43
23
|
@object_classes ||= Stripe::ObjectTypes.object_names_to_classes
|
44
24
|
end
|
45
25
|
|
26
|
+
def self.v2_object_classes
|
27
|
+
@v2_object_classes ||= Stripe::ObjectTypes.v2_object_names_to_classes
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.thin_event_classes
|
31
|
+
@thin_event_classes ||= Stripe::EventTypes.thin_event_names_to_classes
|
32
|
+
end
|
33
|
+
|
46
34
|
def self.object_name_matches_class?(object_name, klass)
|
47
35
|
Util.object_classes[object_name] == klass
|
48
36
|
end
|
@@ -61,6 +49,7 @@ module Stripe
|
|
61
49
|
# custom_method :capture, http_verb: post
|
62
50
|
# adds a `capture` class method to the resource class that, when called,
|
63
51
|
# will send a POST request to `/v1/<object_name>/capture`.
|
52
|
+
# TODO: are we comfortable with deleting this?
|
64
53
|
def self.custom_method(resource, target, name, http_verb, http_path)
|
65
54
|
unless %i[get post delete].include?(http_verb)
|
66
55
|
raise ArgumentError,
|
@@ -79,21 +68,38 @@ module Stripe
|
|
79
68
|
"id should be a string representing the ID of an API resource"
|
80
69
|
end
|
81
70
|
|
82
|
-
url = "#{target.resource_url}/"\
|
83
|
-
"#{CGI.escape(id)}/"\
|
71
|
+
url = "#{target.resource_url}/" \
|
72
|
+
"#{CGI.escape(id)}/" \
|
84
73
|
"#{CGI.escape(http_path)}"
|
85
74
|
|
86
|
-
|
75
|
+
resource.execute_resource_request(
|
87
76
|
http_verb,
|
88
77
|
url,
|
78
|
+
:api,
|
89
79
|
params,
|
90
80
|
opts
|
91
81
|
)
|
92
|
-
|
93
|
-
Util.convert_to_stripe_object(resp.data, opts)
|
94
82
|
end
|
95
83
|
end
|
96
84
|
|
85
|
+
# Converts a hash of fields or an array of hashes into a +StripeObject+ or
|
86
|
+
# array of +StripeObject+s. These new objects will be created as a concrete
|
87
|
+
# type as dictated by their `object` field (e.g. an `object` value of
|
88
|
+
# `charge` would create an instance of +Charge+), but if `object` is not
|
89
|
+
# present or of an unknown type, the newly created instance will fall back
|
90
|
+
# to being a +StripeObject+.
|
91
|
+
#
|
92
|
+
# ==== Attributes
|
93
|
+
#
|
94
|
+
# * +data+ - Hash of fields and values to be converted into a StripeObject.
|
95
|
+
# * +params+ - Params for +StripeObject+ like filters used in search that
|
96
|
+
# will be reused on subsequent API calls.
|
97
|
+
# * +opts+ - Options for +StripeObject+ like an API key that will be reused
|
98
|
+
# on subsequent API calls.
|
99
|
+
def self.convert_to_stripe_object(data, opts = {}, api_mode: :v1, requestor: nil)
|
100
|
+
convert_to_stripe_object_with_params(data, {}, opts, api_mode: api_mode, requestor: requestor)
|
101
|
+
end
|
102
|
+
|
97
103
|
# Converts a hash of fields or an array of hashes into a +StripeObject+ or
|
98
104
|
# array of +StripeObject+s. These new objects will be created as a concrete
|
99
105
|
# type as dictated by their `object` field (e.g. an `object` value of
|
@@ -106,17 +112,53 @@ module Stripe
|
|
106
112
|
# * +data+ - Hash of fields and values to be converted into a StripeObject.
|
107
113
|
# * +opts+ - Options for +StripeObject+ like an API key that will be reused
|
108
114
|
# on subsequent API calls.
|
109
|
-
|
115
|
+
# * +last_response+ - The raw response associated with the object.
|
116
|
+
# * +api_mode+ - The API mode to use when converting the object, either :v1 or :v2.
|
117
|
+
# * +requestor+ - The requestor to use when constructing the object.
|
118
|
+
def self.convert_to_stripe_object_with_params(
|
119
|
+
data,
|
120
|
+
params,
|
121
|
+
opts = {},
|
122
|
+
last_response = nil,
|
123
|
+
api_mode: :v1,
|
124
|
+
requestor: nil
|
125
|
+
)
|
110
126
|
opts = normalize_opts(opts)
|
111
127
|
|
112
128
|
case data
|
113
129
|
when Array
|
114
|
-
data.map { |i| convert_to_stripe_object(i, opts) }
|
130
|
+
data.map { |i| convert_to_stripe_object(i, opts, api_mode: api_mode, requestor: requestor) }
|
115
131
|
when Hash
|
132
|
+
# TODO: This is a terrible hack.
|
133
|
+
# Waiting on https://jira.corp.stripe.com/browse/API_SERVICES-3167 to add
|
134
|
+
# an object in v2 lists
|
135
|
+
if api_mode == :v2 && data.include?(:data) && data.include?(:next_page_url)
|
136
|
+
return V2::ListObject.construct_from(data, opts, last_response, api_mode, requestor)
|
137
|
+
end
|
138
|
+
|
116
139
|
# Try converting to a known object class. If none available, fall back
|
117
140
|
# to generic StripeObject
|
118
|
-
|
119
|
-
|
141
|
+
object_type = data[:type] || data["type"]
|
142
|
+
object_name = data[:object] || data["object"]
|
143
|
+
object_class = if api_mode == :v2
|
144
|
+
if object_name == "v2.core.event" && thin_event_classes.key?(object_type)
|
145
|
+
thin_event_classes.fetch(object_type)
|
146
|
+
else
|
147
|
+
v2_object_classes.fetch(
|
148
|
+
object_name, StripeObject
|
149
|
+
)
|
150
|
+
end
|
151
|
+
else
|
152
|
+
object_classes.fetch(object_name, StripeObject)
|
153
|
+
end
|
154
|
+
|
155
|
+
obj = object_class.construct_from(data, opts, last_response, api_mode, requestor)
|
156
|
+
|
157
|
+
# set filters so that we can fetch the same limit, expansions, and
|
158
|
+
# predicates when accessing the next and previous pages
|
159
|
+
obj.filters = params.dup if obj && (obj.is_a?(SearchResultObject) || obj.is_a?(ListObject))
|
160
|
+
|
161
|
+
obj
|
120
162
|
else
|
121
163
|
data
|
122
164
|
end
|
@@ -126,7 +168,7 @@ module Stripe
|
|
126
168
|
config = data.delete(:config) || Stripe.config
|
127
169
|
logger = config.logger || Stripe.logger
|
128
170
|
if !logger.nil? ||
|
129
|
-
!config.log_level.nil? && config.log_level <= Stripe::LEVEL_ERROR
|
171
|
+
(!config.log_level.nil? && config.log_level <= Stripe::LEVEL_ERROR)
|
130
172
|
log_internal(message, data, color: :cyan, level: Stripe::LEVEL_ERROR,
|
131
173
|
logger: Stripe.logger, out: $stderr)
|
132
174
|
end
|
@@ -136,7 +178,7 @@ module Stripe
|
|
136
178
|
config = data.delete(:config) || Stripe.config
|
137
179
|
logger = config.logger || Stripe.logger
|
138
180
|
if !logger.nil? ||
|
139
|
-
!config.log_level.nil? && config.log_level <= Stripe::LEVEL_INFO
|
181
|
+
(!config.log_level.nil? && config.log_level <= Stripe::LEVEL_INFO)
|
140
182
|
log_internal(message, data, color: :cyan, level: Stripe::LEVEL_INFO,
|
141
183
|
logger: Stripe.logger, out: $stdout)
|
142
184
|
end
|
@@ -146,7 +188,7 @@ module Stripe
|
|
146
188
|
config = data.delete(:config) || Stripe.config
|
147
189
|
logger = config.logger || Stripe.logger
|
148
190
|
if !logger.nil? ||
|
149
|
-
!config.log_level.nil? && config.log_level <= Stripe::LEVEL_DEBUG
|
191
|
+
(!config.log_level.nil? && config.log_level <= Stripe::LEVEL_DEBUG)
|
150
192
|
log_internal(message, data, color: :blue, level: Stripe::LEVEL_DEBUG,
|
151
193
|
logger: Stripe.logger, out: $stdout)
|
152
194
|
end
|
@@ -158,10 +200,10 @@ module Stripe
|
|
158
200
|
new_hash = {}
|
159
201
|
object.each do |key, value|
|
160
202
|
key = (begin
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
203
|
+
key.to_sym
|
204
|
+
rescue StandardError
|
205
|
+
key
|
206
|
+
end) || key
|
165
207
|
new_hash[key] = symbolize_names(value)
|
166
208
|
end
|
167
209
|
new_hash
|
@@ -176,8 +218,8 @@ module Stripe
|
|
176
218
|
# parameters in a URI or as form parameters in a request body. This mainly
|
177
219
|
# involves escaping special characters from parameter keys and values (e.g.
|
178
220
|
# `&`).
|
179
|
-
def self.encode_parameters(params)
|
180
|
-
Util.flatten_params(params)
|
221
|
+
def self.encode_parameters(params, api_mode)
|
222
|
+
Util.flatten_params(params, api_mode)
|
181
223
|
.map { |k, v| "#{url_encode(k)}=#{url_encode(v)}" }.join("&")
|
182
224
|
end
|
183
225
|
|
@@ -192,7 +234,7 @@ module Stripe
|
|
192
234
|
gsub("%5B", "[").gsub("%5D", "]")
|
193
235
|
end
|
194
236
|
|
195
|
-
def self.flatten_params(params, parent_key = nil)
|
237
|
+
def self.flatten_params(params, api_mode, parent_key = nil)
|
196
238
|
result = []
|
197
239
|
|
198
240
|
# do not sort the final output because arrays (and arrays of hashes
|
@@ -200,9 +242,9 @@ module Stripe
|
|
200
242
|
params.each do |key, value|
|
201
243
|
calculated_key = parent_key ? "#{parent_key}[#{key}]" : key.to_s
|
202
244
|
if value.is_a?(Hash)
|
203
|
-
result += flatten_params(value, calculated_key)
|
245
|
+
result += flatten_params(value, api_mode, calculated_key)
|
204
246
|
elsif value.is_a?(Array)
|
205
|
-
result += flatten_params_array(value, calculated_key)
|
247
|
+
result += flatten_params_array(value, api_mode, calculated_key)
|
206
248
|
else
|
207
249
|
result << [calculated_key, value]
|
208
250
|
end
|
@@ -211,15 +253,19 @@ module Stripe
|
|
211
253
|
result
|
212
254
|
end
|
213
255
|
|
214
|
-
def self.flatten_params_array(value, calculated_key)
|
256
|
+
def self.flatten_params_array(value, api_mode, calculated_key)
|
215
257
|
result = []
|
216
258
|
value.each_with_index do |elem, i|
|
217
259
|
if elem.is_a?(Hash)
|
218
|
-
result += flatten_params(elem, "#{calculated_key}[#{i}]")
|
260
|
+
result += flatten_params(elem, api_mode, "#{calculated_key}[#{i}]")
|
219
261
|
elsif elem.is_a?(Array)
|
220
|
-
result += flatten_params_array(elem, calculated_key)
|
262
|
+
result += flatten_params_array(elem, api_mode, calculated_key)
|
221
263
|
else
|
222
|
-
result <<
|
264
|
+
result << if api_mode == :v2
|
265
|
+
[calculated_key, elem]
|
266
|
+
else
|
267
|
+
["#{calculated_key}[#{i}]", elem]
|
268
|
+
end
|
223
269
|
end
|
224
270
|
end
|
225
271
|
result
|
@@ -309,6 +355,15 @@ module Stripe
|
|
309
355
|
res.zero?
|
310
356
|
end
|
311
357
|
|
358
|
+
# Returns either v1 or v2 as api_mode based on the given path
|
359
|
+
def self.get_api_mode(path)
|
360
|
+
if path.start_with?("/v2/")
|
361
|
+
:v2
|
362
|
+
else
|
363
|
+
:v1
|
364
|
+
end
|
365
|
+
end
|
366
|
+
|
312
367
|
#
|
313
368
|
# private
|
314
369
|
#
|
@@ -390,6 +445,15 @@ module Stripe
|
|
390
445
|
# Hopefully val is a string, but protect in case it's not.
|
391
446
|
val = val.to_s
|
392
447
|
|
448
|
+
# Some values returned by the server are encoded in ASCII-8BIT before
|
449
|
+
# being parsed as UTF-8 by Marshal. If we don't transform these here, then
|
450
|
+
# puts will fail as it tries to render UTF-8 characters as ASCII-8BIT
|
451
|
+
# which is not valid.
|
452
|
+
if val && val.encoding == Encoding::ASCII_8BIT
|
453
|
+
# Dup the string as it is a frozen literal.
|
454
|
+
val = val.dup.force_encoding("UTF-8")
|
455
|
+
end
|
456
|
+
|
393
457
|
if %r{[^\w\-/]} =~ val
|
394
458
|
# If the string contains any special characters, escape any double
|
395
459
|
# quotes it has, remove newlines, and wrap the whole thing in quotes.
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
module V2
|
5
|
+
class ListObject < StripeObject
|
6
|
+
OBJECT_NAME = "list"
|
7
|
+
def self.object_name
|
8
|
+
"list"
|
9
|
+
end
|
10
|
+
|
11
|
+
# An empty list object. This is returned from +fetch_next_page+ when we know that
|
12
|
+
# there isn't a next page.
|
13
|
+
def self.empty_list(opts = {})
|
14
|
+
ListObject.construct_from({ data: [] }, opts, nil, :v2)
|
15
|
+
end
|
16
|
+
|
17
|
+
def [](key)
|
18
|
+
case key
|
19
|
+
when String, Symbol
|
20
|
+
super
|
21
|
+
else
|
22
|
+
raise ArgumentError,
|
23
|
+
"You tried to access the #{key.inspect} index, but ListObject " \
|
24
|
+
"types only support String keys. (HINT: List calls return an " \
|
25
|
+
"object with a 'data' (which is the data array). You likely " \
|
26
|
+
"want to call #data[#{key.inspect}])"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Iterates through each resource in the page represented by the current
|
31
|
+
# `ListObject`.
|
32
|
+
#
|
33
|
+
# Note that this method makes no effort to fetch a new page when it gets to
|
34
|
+
# the end of the current page's resources. See also +auto_paging_each+.
|
35
|
+
def each(&blk)
|
36
|
+
data.each(&blk)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Iterates through each resource in the page represented by the current
|
40
|
+
# `ListObject` in reverse.
|
41
|
+
def reverse_each(&blk)
|
42
|
+
data.reverse_each(&blk)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Iterates through each resource in all pages, making additional fetches to
|
46
|
+
# the API as necessary.
|
47
|
+
#
|
48
|
+
# Note that this method will make as many API calls as necessary to fetch
|
49
|
+
# all resources. For more granular control, please see +each+ and
|
50
|
+
# +fetch_next_page+.
|
51
|
+
def auto_paging_each(&blk)
|
52
|
+
return enum_for(:auto_paging_each) unless block_given?
|
53
|
+
|
54
|
+
page = self
|
55
|
+
loop do
|
56
|
+
page.each(&blk)
|
57
|
+
|
58
|
+
break if page.next_page_url.nil?
|
59
|
+
|
60
|
+
page = page.fetch_next_page
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
# Returns true if the page object contains no elements.
|
65
|
+
def empty?
|
66
|
+
data.empty?
|
67
|
+
end
|
68
|
+
|
69
|
+
# Fetches the next page in the resource list (if there is one).
|
70
|
+
#
|
71
|
+
# This method will try to respect the limit of the current page. If none
|
72
|
+
# was given, the default limit will be fetched again.
|
73
|
+
def fetch_next_page(opts = {})
|
74
|
+
return self.class.empty_list(opts) if next_page_url.nil?
|
75
|
+
|
76
|
+
_request(
|
77
|
+
method: :get,
|
78
|
+
path: next_page_url,
|
79
|
+
base_address: :api
|
80
|
+
)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
data/lib/stripe/version.rb
CHANGED
data/lib/stripe/webhook.rb
CHANGED
@@ -18,7 +18,7 @@ module Stripe
|
|
18
18
|
# doesn't GC symbols. It also decreases the likelihood that we receive a
|
19
19
|
# bad payload that fails to parse and throws an exception.
|
20
20
|
data = JSON.parse(payload, symbolize_names: true)
|
21
|
-
Event.construct_from(data)
|
21
|
+
Event.construct_from(data, {}, nil, :v1)
|
22
22
|
end
|
23
23
|
|
24
24
|
module Signature
|
@@ -108,8 +108,9 @@ module Stripe
|
|
108
108
|
end
|
109
109
|
|
110
110
|
if tolerance && timestamp < Time.now - tolerance
|
111
|
+
formatted_timestamp = Time.at(timestamp).strftime("%F %T")
|
111
112
|
raise SignatureVerificationError.new(
|
112
|
-
"Timestamp outside the tolerance zone (#{
|
113
|
+
"Timestamp outside the tolerance zone (#{formatted_timestamp})",
|
113
114
|
header, http_body: payload
|
114
115
|
)
|
115
116
|
end
|
data/lib/stripe.rb
CHANGED
@@ -15,6 +15,7 @@ require "uri"
|
|
15
15
|
require "forwardable"
|
16
16
|
|
17
17
|
# Version
|
18
|
+
require "stripe/api_version"
|
18
19
|
require "stripe/version"
|
19
20
|
|
20
21
|
# API operations
|
@@ -24,18 +25,24 @@ require "stripe/api_operations/list"
|
|
24
25
|
require "stripe/api_operations/nested_resource"
|
25
26
|
require "stripe/api_operations/request"
|
26
27
|
require "stripe/api_operations/save"
|
28
|
+
require "stripe/api_operations/singleton_save"
|
27
29
|
require "stripe/api_operations/search"
|
28
30
|
|
29
31
|
# API resource support classes
|
30
32
|
require "stripe/errors"
|
31
33
|
require "stripe/object_types"
|
34
|
+
require "stripe/event_types"
|
35
|
+
require "stripe/request_options"
|
32
36
|
require "stripe/util"
|
33
37
|
require "stripe/connection_manager"
|
34
38
|
require "stripe/multipart_encoder"
|
39
|
+
require "stripe/api_requestor"
|
40
|
+
require "stripe/stripe_service"
|
35
41
|
require "stripe/stripe_client"
|
36
42
|
require "stripe/stripe_object"
|
37
43
|
require "stripe/stripe_response"
|
38
44
|
require "stripe/list_object"
|
45
|
+
require "stripe/v2_list_object"
|
39
46
|
require "stripe/search_result_object"
|
40
47
|
require "stripe/error_object"
|
41
48
|
require "stripe/api_resource"
|
@@ -43,12 +50,15 @@ require "stripe/api_resource_test_helpers"
|
|
43
50
|
require "stripe/singleton_api_resource"
|
44
51
|
require "stripe/webhook"
|
45
52
|
require "stripe/stripe_configuration"
|
53
|
+
require "stripe/thin_event"
|
46
54
|
|
47
55
|
# Named API resources
|
48
56
|
require "stripe/resources"
|
57
|
+
require "stripe/services"
|
49
58
|
|
50
59
|
# OAuth
|
51
60
|
require "stripe/oauth"
|
61
|
+
require "stripe/services/oauth_service"
|
52
62
|
|
53
63
|
module Stripe
|
54
64
|
DEFAULT_CA_BUNDLE_PATH = __dir__ + "/data/ca-certificates.crt"
|
@@ -58,6 +68,34 @@ module Stripe
|
|
58
68
|
LEVEL_ERROR = Logger::ERROR
|
59
69
|
LEVEL_INFO = Logger::INFO
|
60
70
|
|
71
|
+
# API base constants
|
72
|
+
DEFAULT_API_BASE = "https://api.stripe.com"
|
73
|
+
DEFAULT_CONNECT_BASE = "https://connect.stripe.com"
|
74
|
+
DEFAULT_UPLOAD_BASE = "https://files.stripe.com"
|
75
|
+
DEFAULT_METER_EVENTS_BASE = "https://meter-events.stripe.com"
|
76
|
+
|
77
|
+
# Options that can be configured globally by users
|
78
|
+
USER_CONFIGURABLE_GLOBAL_OPTIONS = Set.new(%i[
|
79
|
+
api_key
|
80
|
+
api_version
|
81
|
+
stripe_account
|
82
|
+
api_base
|
83
|
+
uploads_base
|
84
|
+
connect_base
|
85
|
+
meter_events_base
|
86
|
+
open_timeout
|
87
|
+
read_timeout
|
88
|
+
write_timeout
|
89
|
+
proxy
|
90
|
+
verify_ssl_certs
|
91
|
+
ca_bundle_path
|
92
|
+
log_level
|
93
|
+
logger
|
94
|
+
max_network_retries
|
95
|
+
enable_telemetry
|
96
|
+
client_id
|
97
|
+
])
|
98
|
+
|
61
99
|
@app_info = nil
|
62
100
|
|
63
101
|
@config = Stripe::StripeConfiguration.setup
|
@@ -74,6 +112,7 @@ module Stripe
|
|
74
112
|
def_delegators :@config, :api_base, :api_base=
|
75
113
|
def_delegators :@config, :uploads_base, :uploads_base=
|
76
114
|
def_delegators :@config, :connect_base, :connect_base=
|
115
|
+
def_delegators :@config, :meter_events_base, :meter_events_base=
|
77
116
|
def_delegators :@config, :open_timeout, :open_timeout=
|
78
117
|
def_delegators :@config, :read_timeout, :read_timeout=
|
79
118
|
def_delegators :@config, :write_timeout, :write_timeout=
|
data/stripe.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
$LOAD_PATH.unshift(
|
3
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "lib"))
|
4
4
|
|
5
5
|
require "stripe/version"
|
6
6
|
|
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
"github_repo" => "ssh://github.com/stripe/stripe-ruby",
|
25
25
|
"homepage_uri" => "https://stripe.com/docs/api?lang=ruby",
|
26
26
|
"source_code_uri" => "https://github.com/stripe/stripe-ruby",
|
27
|
+
"rubygems_mfa_required" => "false",
|
27
28
|
}
|
28
29
|
|
29
30
|
ignored = Regexp.union(
|
@@ -32,10 +33,12 @@ Gem::Specification.new do |s|
|
|
32
33
|
/\A\.rubocop/,
|
33
34
|
/\A\.travis.yml/,
|
34
35
|
/\A\.vscode/,
|
36
|
+
/\Abin/,
|
37
|
+
/\Asorbet/,
|
35
38
|
/\Atest/
|
36
39
|
)
|
37
|
-
s.files = `git ls-files`.split("\n").
|
38
|
-
s.
|
39
|
-
|
40
|
+
s.files = `git ls-files`.split("\n").grep_v(ignored)
|
41
|
+
s.bindir = "exe"
|
42
|
+
s.executables = `git ls-files -- exe/*`.split("\n").map { |f| File.basename(f) }
|
40
43
|
s.require_paths = ["lib"]
|
41
44
|
end
|