twilio-ruby icon indicating copy to clipboard operation
twilio-ruby copied to clipboard

Class `Autopilot` has multiple different ancestors

Open hlascelles opened this issue 3 years ago • 4 comments

Issue Summary

Depending on how you require the gem (or parts of it) you can cause an error as some classes have different ancestor chains.

Steps to Reproduce

  1. Use gem 5.56.0 (for example)
  2.  require "twilio-ruby"
     require "twilio-ruby/rest/autopilot"
    
  3. See error:
    twilio-ruby-5.56.0/lib/twilio-ruby/rest/autopilot/v1/assistant.rb:13:in `<module:REST>': 
          superclass mismatch for class Autopilot (TypeError)
    

Technical details:

  • twilio-ruby version: 5.56.0
  • ruby version: Any

Cause

This line declares Autopilot with no ancestors: https://github.com/twilio/twilio-ruby/blob/7e218c44288b8a0954e141dfc5c8e99b5f63ffa6/lib/twilio-ruby/rest/autopilot/v1.rb#L11 This line declares Autopilot with ancestor Domain: https://github.com/twilio/twilio-ruby/blob/7e218c44288b8a0954e141dfc5c8e99b5f63ffa6/lib/twilio-ruby/rest/autopilot.rb#L11

Is this a bug in the code generator?

hlascelles avatar Jul 01 '21 10:07 hlascelles

Possibly related: https://github.com/twilio/twilio-ruby/pull/558

hlascelles avatar Jul 01 '21 10:07 hlascelles

Confirmed 5.55.0 works fine.

hlascelles avatar Jul 01 '21 10:07 hlascelles

Thank you for reporting this @hlascelles!

I was able to reproduce this issue locally.

This issue has been added to our internal backlog to be prioritized. Pull requests and +1s on the issue summary will help it move up the backlog.

With best regards,

Elmer

thinkingserious avatar Jul 02 '21 21:07 thinkingserious

I can see that lib/twilio-ruby/rest/autopilot/v1.rb file is the only one that seems to miss the inheritance from Domain class.

lib/twilio-ruby/rest/autopilot.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1.rb:    class Autopilot
lib/twilio-ruby/rest/autopilot/v1/assistant.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/defaults.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/dialogue.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/field_type.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/model_build.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/style_sheet.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/task.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/task/field.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_actions.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/assistant/webhook.rb:    class Autopilot < Domain
lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb:    class Autopilot < Domain

I created a PR #573 to add the inheritance there as well.

lauratpa avatar Oct 12 '21 14:10 lauratpa

This is issue is fixed now.

kridai avatar Mar 28 '23 10:03 kridai