mirror of
https://github.com/stripe/stripe-ruby.git
synced 2025-06-04 00:01:12 -04:00
Merge pull request #478 from stripe/brandur-fix-memory-leak
Fix memory leak
This commit is contained in:
commit
bf326fb243
@ -208,9 +208,13 @@ module Stripe
|
|||||||
keys.each do |k|
|
keys.each do |k|
|
||||||
next if f.include?(k)
|
next if f.include?(k)
|
||||||
next if @@permanent_attributes.include?(k)
|
next if @@permanent_attributes.include?(k)
|
||||||
k_eq = :"#{k}="
|
|
||||||
remove_method(k) if method_defined?(k)
|
# Remove methods for the accessor's reader and writer.
|
||||||
remove_method(k_eq) if method_defined?(k_eq)
|
[k, :"#{k}=", :"#{k}?"].each do |method_name|
|
||||||
|
if method_defined?(method_name)
|
||||||
|
remove_method(method_name)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -221,9 +225,9 @@ module Stripe
|
|||||||
keys.each do |k|
|
keys.each do |k|
|
||||||
next if f.include?(k)
|
next if f.include?(k)
|
||||||
next if @@permanent_attributes.include?(k)
|
next if @@permanent_attributes.include?(k)
|
||||||
k_eq = :"#{k}="
|
|
||||||
define_method(k) { @values[k] }
|
define_method(k) { @values[k] }
|
||||||
define_method(k_eq) do |v|
|
define_method(:"#{k}=") do |v|
|
||||||
if v == ""
|
if v == ""
|
||||||
raise ArgumentError.new(
|
raise ArgumentError.new(
|
||||||
"You cannot set #{k} to an empty string. " \
|
"You cannot set #{k} to an empty string. " \
|
||||||
@ -236,8 +240,7 @@ module Stripe
|
|||||||
end
|
end
|
||||||
|
|
||||||
if [FalseClass, TrueClass].include?(values[k].class)
|
if [FalseClass, TrueClass].include?(values[k].class)
|
||||||
k_bool = :"#{k}?"
|
define_method(:"#{k}?") { @values[k] }
|
||||||
define_method(k_bool) { @values[k] }
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -299,10 +302,8 @@ module Stripe
|
|||||||
# customer, where there is no persistent card parameter. Mark those values
|
# customer, where there is no persistent card parameter. Mark those values
|
||||||
# which don't persist as transient
|
# which don't persist as transient
|
||||||
|
|
||||||
instance_eval do
|
|
||||||
remove_accessors(removed)
|
remove_accessors(removed)
|
||||||
add_accessors(added, values)
|
add_accessors(added, values)
|
||||||
end
|
|
||||||
|
|
||||||
removed.each do |k|
|
removed.each do |k|
|
||||||
@values.delete(k)
|
@values.delete(k)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user