696 Commits

Author SHA1 Message Date
Brandur
b43b83cee1 Add a few more comments around new #eql?/#hash 2018-09-14 09:59:38 -06:00
Olivier Bellone
45e807a41a
Bump version to 3.26.1 2018-09-14 10:12:00 +02:00
Brandur
7c01836135 Override StripeObject#eql? and #hash to produce more optimistic equivalency
Overrides `#eql?` (hash equality) and `#hash` so that Stripe objects can
be used more easily as Hash keys and that certain other frameworks that
rely on these methods will have an easier time (e.g. RSpec's `change`,
see #687).

I think this might be a little controversial if we weren't already
overriding the `#==` implementation, but because we are, I think it
makes sense to extent it to these two methods as well.
2018-09-13 17:39:18 -06:00
Brandur
27f39aed85 Bump version to 3.26.0 2018-09-05 14:54:35 -07:00
Brandur
856201f67e
Merge pull request #681 from stripe/remi-add-reporting-resources
Add support for the Reporting resources
2018-09-05 14:52:48 -07:00
Brandur
68cfe0fd8b
Merge pull request #685 from timcraft/use-keyword-args
Use keyword args for StripeObject#update_attributes
2018-09-05 09:54:22 -07:00
Brandur
8d01c03515
Merge pull request #684 from timcraft/remove-util-titlecase-parts
Remove Util.titlecase_parts method
2018-09-05 09:52:49 -07:00
Tim Craft
29fe27d245 Use keyword args for StripeObject#update_attributes 2018-09-05 14:28:50 +01:00
Tim Craft
92775b1358 Remove Util.titlecase_parts method 2018-09-05 14:25:39 +01:00
Tim Craft
a43296d242 Remove unused Util.file_readable method 2018-09-05 14:11:05 +01:00
Remi Jannel
66248ba2aa Add support for the Reporting resources 2018-08-30 20:11:07 -04:00
Brandur
7331bf33de Bump version to 3.25.0 2018-08-28 13:23:26 -07:00
Remi Jannel
0632afb5be Fix payment intent methods to take extra parameters and remove delete 2018-08-28 15:55:19 -04:00
Tomer Elmalem
3a8f1d7172 Bump version to 3.24.0 2018-08-27 16:31:56 -07:00
tomer-stripe
0d7315f037
Merge pull request #675 from stripe/tomer-remove-edittable-bitcoin-receivers-actions
Remove ability to perform edit-actions on bitcoin receivers
2018-08-27 16:29:21 -07:00
Olivier Bellone
156145b96b
Merge pull request #677 from stripe/ob-prep-file
Use `::File` instead of `File`
2018-08-27 16:50:57 +02:00
Olivier Bellone
21db64fe0e
Use ::File instead of File 2018-08-27 15:32:10 +02:00
Olivier Bellone
a2f9822de7
Bump version to 3.23.0 2018-08-23 10:09:25 +02:00
Remi Jannel
f5dc3ab0c3 Add support for usage record summary 2018-08-21 08:56:18 -04:00
Tomer Elmalem
2da53af59b Remove ability to perform edit-actions on bitcoint receivers 2018-08-16 11:00:22 -07:00
Brandur
2b2c2c3cd6 Bump version to 3.22.0 2018-08-15 10:15:17 -07:00
Brandur
c1ff8bdc4c Integer-index encode all arrays
Changes all arrays from classic Rack encoding:

``` sh
arr[]=...&arr[]=...&arr[]=...
```

To integer-indexed encoding:

``` sh
arr[0]=...&arr[1]=...&arr[2]=...
```

We think that this should be tractable now that we've fully converted
all endpoints over to the new AbstractAPIMethod infrastructure on the
backend (although we should do a little more testing to make sure that
all endpoints still work).

As part of the conversion, we also remove any places that we were "spot
encoding" to get required integer-indexed syntax. This should now all be
built in.
2018-08-14 14:44:43 -07:00
Olivier Bellone
24143ab7d7
Bump version to 3.21.0 2018-08-03 15:48:21 +02:00
Olivier Bellone
d698bd6fc7
Add cancel support for topups 2018-08-03 12:50:39 +02:00
Olivier Bellone
7e914bc9cb
Bump version to 3.20.0 2018-08-03 12:26:19 +02:00
Olivier Bellone
9c357c803f
file_link support 2018-08-03 00:07:27 +02:00
Brandur
ebbce668fd Rubocop: Cap method length at 50 lines + disable module length
Remi pointed out in #666 that we basically just have to keep adding more
more onto the `Max` exception for both these rules every time we add a
new API resource.

Here I suggest that we modify the check on method length in two ways:

1. Permanently disable the cop on `Util.object_classes`. This is just
   going to keep growing until we change are approach to it.
2. Choose a more reasonable maximum of 50 lines for elsewhere (IMO, the
   default of 10 is just too short). Most of our methods already come in
   below this, but there's a couple outliers like `#execute_request` in
   `StripeClient`. If we knock over some of those, we could lower this
   number again, but I suspect that we'd probably want somewhere closer
   to 30 (instead of 10) event then.

I also disable the check on module length completely. I'm not convinced
this is a very good heuristic for code quality.
2018-07-27 17:13:07 -07:00
Brandur
4e3f38ec09 Bump version to 3.19.0 2018-07-27 17:01:39 -07:00
Remi Jannel
4c39c35fd8 Add support for ScheduledQueryRun 2018-07-27 19:14:37 -04:00
Brandur
ec5c51c3ba Very minor fix for alphabetical ordering 2018-07-26 11:32:35 -07:00
Brandur
3b0c34d53b Bump version to 3.18.0 2018-07-26 11:19:23 -07:00
Remi Jannel
04ae411754 Add support for Issuing resources 2018-07-26 13:35:50 -04:00
Brandur
7c9492b37d Bump version to 3.17.2 2018-07-19 09:56:15 -07:00
Brandur
b3eb5d3e30
Merge pull request #664 from jasonwebster/do_not_colorize_logger_logging
Do not colorize output destined for configured logger
2018-07-19 09:55:30 -07:00
Jason Webster
9d0cd25897 Do not colorize output destined for configured logger
This changes the predicate supplied to the #colorize method to ensure
that if a logger is set, the colorizing ANSI escape codes are not applied.

This definitely appears to have been the intention behind the original
implementation, but the tests didn't reflect how .log_internal was
actually called. In reality, it is always supplied with an `out:`
argument, not nil. This caused all logger bound output to also be
colorized.
2018-07-19 12:28:28 -04:00
Olivier Bellone
74b25a40dd
Bump version to 3.17.1 2018-07-19 16:42:10 +02:00
Olivier Bellone
b4e57ea981
Better resource_url method 2018-07-19 14:23:07 +02:00
Brandur
9e35a5e0d9 Bump version to 3.17.0 2018-06-28 08:57:18 -07:00
zach wick
ab3949b8da Adds support for 'partner_id' in 'set_app_info' (#658)
* Adds support for 'partner_id' in 'set_app_info'

Signed-off-by: zach wick <zwick@stripe.com>
2018-06-28 08:55:58 -07:00
Olivier Bellone
32151d5a31
Bump version to 3.16.0 2018-06-28 14:09:58 +02:00
Remi Jannel
201f9c29f4 Add support for the PaymentIntent resource
This feature is gated so the tests are stubbed for now
2018-06-27 19:24:23 -04:00
Brandur
02200e4c96 Add missing magic comment 2018-05-16 16:52:58 +02:00
Brandur
e8b272653e Bump version to 3.15.0 2018-05-10 15:42:50 -07:00
Brandur
863da48398 Add frozen_string_literal to every file and enforce Rubocop rule
Adds the magic `frozen_string_literal: true` comment to every file and
enables a Rubocop rule to make sure that it's always going to be there
going forward as well.

See here for more background [1], but the basic idea is that unlike many
other languages, static strings in code are mutable by default. This has
since been acknowledged as not a particularly good idea, and the
intention is to rectify the mistake when Ruby 3 comes out, where all
string literals will be frozen. The `frozen_string_literal` magic
comment was introduced in Ruby 2.3 as a way of easing the transition,
and allows libraries and projects to freeze their literals in advance.

I don't think this is breaking in any way: it's possible that users
might've been pulling out one of are literals somehow and mutating it,
but that would probably not have been useful for anything and would
certainly not be recommended, so I'm quite comfortable pushing this
change through as a minor version.

As discussed in #641.

[1] https://stackoverflow.com/a/37799399
2018-05-10 14:56:14 -07:00
Brandur
40e4883ddc Bump version to 3.14.0 2018-05-09 14:56:01 -07:00
Fay Wu
6ce45193d2 Add support for v1/issuer_fraud_records endpoints (#645) 2018-05-09 14:55:10 -07:00
Brandur
a44259b8f7 Bump version to 3.13.1 2018-05-07 15:11:56 -07:00
Brandur
3a2724bfcc Merge query parameters coming from path with params argument
If specifying both query parameters in a path/URL down to Faraday (e.g.,
`/v1/invoices/upcoming?coupon=25OFF`) _and_ query parameters in a hash
(e.g., `{ customer: "cus_123" }`), it will silently overwrite the ones
in the path with the ones in the hash. This can cause problems where
some critical parameters are discarded and causes an error, as seen in
issue #646.

This patch modifies `#execute_request` so that before going out to
Faraday we check whether the incoming path has query parameters. If it
does, we decode them and add them to our `query_params` hash so that
all parameters from either place are preserved.

Fixes #646.
2018-05-07 14:51:25 -07:00
Brandur
21b0514d1e Bump version to 3.13.0 2018-04-11 13:51:35 -07:00
Alexander Thiemann
c066c9c5f8 flexible billing primitives and tests 2018-04-11 13:29:24 -07:00