-
Notifications
You must be signed in to change notification settings - Fork 67
Open
Description
Many (all?) Chargebee models respond to the "object" method. E.g.
session = ChargeBee::PortalSession.create(...).portal_session
session.object # => 'portal_session'however, they say that they don't:
session.respond_to?(:object) # => falsepresumably this is because the return value is fetched via method_missing here.
this is not ideal for code with type checks.
also respond_to_missing? has not been implemented, though there is a PR for it.
similarly, this:
ChargeBee::PortalSession.public_method_defined?(:object) # => falseprevents the usage of verified doubles with rspec:
instance_double(ChargeBee::PortalSession, object: 'portal_session')
# => error: the ChargeBee::PortalSession class does not implement the instance method: objecti hacked around this in my code with:
ChargeBee::Model.class_eval { attr_reader :object }but i don't know if this is correct and whether all models include the "object" information.
ideally, each model that has the "object" information would have an attr_reader/accessor for it (or it could be added to Model if its all of them).
Metadata
Metadata
Assignees
Labels
No labels