You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Presently, using [] or an accessor on a StripeObject return different results:
irb(main):005> require('stripe')
=> true
irb(main):006> x = Stripe::StripeObject.new()
=>
#<Stripe::StripeObject:0x13088> JSON: {
...
irb(main):007> x.a
/Users/cleve/.asdf/installs/ruby/3.1.4/lib/ruby/gems/3.1.0/gems/stripe-5.55.0/lib/stripe/stripe_object.rb:399:in `method_missing': undefined method `a' for #<Stripe::StripeObject:0x13088> JSON: { (NoMethodError)
}
from (irb):7:in `<main>'
from /Users/cleve/.asdf/installs/ruby/3.1.4/lib/ruby/gems/3.1.0/gems/irb-1.9.0/exe/irb:9:in `<top (required)>'
from /Users/cleve/.asdf/installs/ruby/3.1.4/bin/irb:25:in `load'
from /Users/cleve/.asdf/installs/ruby/3.1.4/bin/irb:25:in `<main>'
irb(main):008> x["a"]
=> nil
irb(main):009>
Using the accessor raises a NoMethodError while the use of the [] method returns nil.
Describe the solution you'd like
Have both accessor patterns generate the same output for non-existent fields. This would be more consistent semantically.
Describe alternatives you've considered
It is easy to work around this using [] or the accessor depending on the context.
Additional context
In my case I am using the metadata field of stripe payment intent to control some operational metrics and backend processes. Hence - we need to check metadata fields to determine what action, if any, to take and what metrics to report. That is when this difference was encountered.
I could not find documentation for the fact that the accessor raises errors while the hash does not - short of updating the library documenting the difference in the Stripe Ruby docs would be a nice win.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
Presently, using
[]
or an accessor on a StripeObject return different results:Using the accessor raises a NoMethodError while the use of the
[]
method returns nil.Describe the solution you'd like
Have both accessor patterns generate the same output for non-existent fields. This would be more consistent semantically.
Describe alternatives you've considered
It is easy to work around this using
[]
or the accessor depending on the context.Additional context
In my case I am using the metadata field of stripe payment intent to control some operational metrics and backend processes. Hence - we need to check metadata fields to determine what action, if any, to take and what metrics to report. That is when this difference was encountered.
I could not find documentation for the fact that the accessor raises errors while the hash does not - short of updating the library documenting the difference in the Stripe Ruby docs would be a nice win.
The text was updated successfully, but these errors were encountered: