746 Commits

Author SHA1 Message Date
Brandur
b7d714b58e Bump version to 1.29.1 2015-10-06 13:40:13 -07:00
Brandur
d38250d717 Revert "Remove use of deprecated URI.escape" 2015-10-06 13:30:39 -07:00
Brandur
a2b56178fe Bump version to 1.29.0 2015-10-05 12:56:44 -07:00
Brandur
aa7e559115 Extend Stripe::APIOperations::Create instead of including
Lets not be too shy about just using `extend` instead of `include` here
when it's more appropriate to do so. The advantage to this approach is
that the module can be either extended _or_ included with this change,
but couldn't be without it due to the `ClassMethods` meta-magic.

List has already started doing this as of #314, so we don't have to be
afraid of breaking convention here.
2015-10-05 12:24:53 -07:00
Brandur
42ea34b969 Pagination
Usage on a top-level collection:

```
Stripe::Customer.list.auto_paging_each do |customer|
  puts customer
end
```

Usage on a subcollection:

``` ruby
customer.invoices.auto_paging_each do |invoice|
  puts invoice
end
```

We've also renamed `#all` to `#list` to prevent confusion ("all" implies
that all resources are being returned, and in Stripe's paginated API
this was not the case). An alias has been provided for backward API
compatibility.

Fixes #167.

Replaces #211 and #248.
2015-10-05 12:15:09 -07:00
Brandur
60b7617624 Bump version to 1.28.1 2015-10-05 11:45:37 -07:00
Kyle Conroy
8287904c00 Merge pull request #316 from stripe/apt-file-uploads-retrieve-url
Use correct URL for file upload retrieval
2015-10-05 11:36:30 -07:00
Brandur
84f3bd8f17 Bump version to 1.28.0 2015-10-05 11:00:34 -07:00
Jieren Chen
7d28eaab64 Merge pull request #310 from stripe/drj/t5176-legal-entity-override
Disallow directly overriding legal_entity
2015-10-02 12:12:09 -07:00
Andrew Thorp
841a34385a Use correct URL for file upload retrieval 2015-10-01 17:36:51 -07:00
Brandur
b57cd5aca4 Support Ruby 1.8.7 2015-10-01 16:59:56 -07:00
Brandur
71a44f70f5 Move internal method to protected 2015-10-01 16:28:21 -07:00
Jieren Chen
387edb5163 PR Fix: rename to protected_fields 2015-10-01 16:26:30 -07:00
Brandur
e23b57628f Add attribute mass assignment and use it in #save
As detailed in issue #119, we've somewhat unfortunately been allowing
object attributes to be passed in during a #save because we mix any
arguments directly into the serialized hash (it seems that this was
originally intended to be used more for meta parameters that go to the
request).

As also noted in #119, this use causes problems when certain types of
parameters (like subobjects) are used. We're now left in the somewhat
awkward position of either:

1. Removing this functionality on #save and breaking what may be
   behavior that people depend on.
2. Fully support this mass assignment.

This patch takes the second path by extracting a new #update_attributes
method and using it from #save. It's still far from a perfect approach
because keys that have the same name as certain options (e.g. `req_url`)
are not going to work, but it should capture the behavior that most
people want.

Fixes #119.
2015-10-01 16:21:34 -07:00
Jieren Chen
797478786d Disallow directly overriding legal_entity 2015-10-01 13:39:11 -07:00
Brandur
df2e36287d Merge pull request #309 from stripe/brandur-boolean-accessors
Add question mark helpers (e.g. #paid?) for boolean object values
2015-09-30 14:36:23 -07:00
Brandur
a88b062beb Merge pull request #300 from stripe/brandur-upsert
Create if #save is called on a new object
2015-09-30 13:54:20 -07:00
Brandur
c301c6c0f6 Add question mark helpers (e.g. #paid?) for boolean object values
This patch adds question marks helpers (e.g. #paid?) for any values in a
StripeObject that are a boolean. This is fairly idiomatic Ruby in that
it behaves similarly to other libraries like ActiveRecord.

Note that a caveat here is that nullable booleans will not get a helper
added for them if their current value is null. For this reason, we
should eventually prefer to derive these methods from some sort of
programmatic API manifest.

Replaces #257 and #274.
2015-09-30 13:48:59 -07:00
Brandur
af72a57c9d Add #empty? helper on ListObject
This makes ListObject behave a little more like an Array in that it gets
an #empty? helper. This should fit pretty well with the Enumerable
methods that it already has.

Replaces #193.
2015-09-30 13:13:41 -07:00
Brandur
9aa13697f7 Merge pull request #302 from stripe/franklin-normalize-opts
StripeObject: use Util.normalize_opts
2015-09-30 13:05:03 -07:00
Brandur
34ae473d6e Merge pull request #304 from stripe/brandur-enumerable-list-object
Mix `Enumerable` into `ListObject`
2015-09-30 12:59:14 -07:00
Brandur
8c7a976ffb Space this method out a little bit 2015-09-30 11:28:05 -07:00
Brandur
5515824fe2 Mix Enumerable into ListObject
This pulls the `Enumerable` mixin into `ListObject`. There is some
question in pulls like #167 as to the future of `ListObject` and how it
might change when pagination is introduced, but because we're unlikely
to make any backward incompatible changes to the API, it's likely that
`ListObject` will continue to represent a page of data that's been
extracted from the API. Given that assumption, pulling `Enumerable` in
should be relatively safe.

Fixes #227.
2015-09-29 22:26:00 -07:00
Brandur
e0354b70f7 Add RDoc for #save 2015-09-29 22:10:51 -07:00
Brandur
f308bb3a52 Merge pull request #301 from stripe/brandur-symbolize-names
Perform deep name symbolization from .construct_from
2015-09-29 19:02:16 -07:00
Brandur
f31eaa6b1e Perform deep name symbolization from .construct_from
When constructing an object using .construct_from treat keys that are
strings the same as keys which are symbols by calling Util's
symbolize_names on an input hash. This makes guarantees around
consistency a little better.

Fixes #151.
2015-09-29 17:52:16 -07:00
Brandur
ac7d050ecf Create if #save is called on a new object
Modifies the behavior of an update so that it can create an object if it
was new. This allows an "upsert"-like functionality where the SDK will
tend to do the right/expected thing.

This is a tad janky in that it checks for the existence of a class-level
`.create` method which is expected to come from a different module, but
most modules in the project are already fairly deeply intertwined and
co-dependent.

Fixes #165.
2015-09-29 17:39:43 -07:00
Brandur
0db40e43fc Remove use of deprecated URI.escape
But we still want to percent-encode entities like spaces, so instead of
using `CGI.escape` we use a utility from WEBrick.

Fixes #286.
2015-09-29 16:33:20 -07:00
Franklin Hu
844169a744 StripeObject: use Util.normalize_opts
For object initialization and refresh_from, call `normalize_opts` so
`@opts` is in an expected form.
2015-09-29 14:22:11 -07:00
Brandur
30688422c4 Merge pull request #251 from godfat/to_hash-with-array
to_hash should also walk into arrays to make recursive call.
2015-09-28 15:31:54 -07:00
Brandur
2a22605618 Bump version to 1.27.2 2015-09-25 14:25:38 -07:00
Brandur
1a49af7f94 Correct list + retrieval of Bitcoin transactions
Corrects the paths at which the client looks for Bitcoin transactions
and adds a small test suite to check these results.

Fixes stripe/stripe-ruby#236.
2015-09-22 18:23:57 -07:00
Rasmus Rygaard
accb624b35 Bump version to 1.27.1 2015-09-20 10:25:59 -07:00
Rasmus Rygaard
333613fca2 Fix hash literal for compatibility. 2015-09-19 17:10:54 -07:00
Russell Davis
7a0ead3fac Merge pull request #291 from stripe/handle-non-hash-error-responses
Handle error responses that are not hashes more gracefully
2015-09-14 21:34:37 -07:00
Rasmus Rygaard
721071d224 Bump version to 1.27.0 2015-09-14 16:42:14 -07:00
Rasmus Rygaard
51b0bff8e9 Merge pull request #292 from stripe/rasmus-orders_bindings
Add Relay bindings
2015-09-14 16:36:37 -07:00
Russell Davis
70ae271c9e Handle error responses that are not hashes more gracefully 2015-09-14 15:13:30 -07:00
Rasmus Rygaard
747dac6ea0 Add Orders. 2015-09-13 20:43:36 -07:00
Rasmus Rygaard
2c08524396 Remove #skus, simplify nested object check. 2015-09-13 18:21:02 -07:00
Rasmus Rygaard
690fd18cb3 Add SKUs, Products 2015-09-13 18:10:47 -07:00
Kyle Conroy
f56c486fa1 Bump version to 1.26.0 2015-09-11 15:12:43 -07:00
Jacqueline Xu
a705799a2c add 429 rate limit error 2015-09-10 15:31:51 -07:00
Tanguy Antoine
467109d588 Allow params when retrieve customer objects
* Permit easy pagination for example
* ruby 2 syntax for hash
2015-09-08 23:29:40 +02:00
Kyle Conroy
5e3474c70c Bump version to 1.25.0 2015-08-17 16:40:48 -07:00
Kyle Conroy
13979ce5be Add retrieve and all methods to refunds 2015-08-17 16:15:34 -07:00
Kyle Conroy
ea3a790669 Bump version to 1.24.0 2015-08-03 13:40:14 -07:00
Russell Davis
dc8cbe5bdd Merge pull request #278 from HashNuke/266-return-token-object-on-token-create
Fix #266: Add Token to object classes map
2015-08-03 13:05:10 -07:00
Akash Manohar J
21c7061b5e Fix #266: Add Token to object classes map 2015-08-04 01:26:23 +05:30
Caitlin
eb75ccd7fa Merge pull request #269 from stripe/disputes
Add top level dispute methods.
2015-08-03 11:32:37 -07:00