Support for subproduct metaprogramming
Allows to write
class SomeProduct
subproduct :cool, Plaid::Cool
end
You may even skip the class part:
class SomeProduct
subproduct :foo_bar
end
will use Plaid::FooBar.
Methods
Instance Public methods
subproduct(name, klass = nil)
Link
Source: show
# File lib/plaid/products/base_product.rb, line 18 def subproduct(name, klass = nil) unless klass class_name = name.to_s.split('_').map(&:capitalize).join klass = Plaid.const_get(class_name) end define_method(name) do ivar = "@#{name}" if instance_variable_defined?(ivar) instance_variable_get(ivar) else instance_variable_set(ivar, klass.new(client)) end end end