Волшебство расширяет и документация государственного менеджера - PullRequest
0 голосов
/ 31 октября 2019

Как мы документируем магию extends и магические методы как с точки зрения IDE, так и с точки зрения человека?

Я пробовал синтаксис @see ярд, который, однако, в некоторой степени помогает, я не получаю завершение кода, как это делает нормальный extends.

class CoolClass < BaseModel
  # Not obvious from this code but the following
  # actually extends CoolClassStates
  extends StateManager::Resource ; state_manager

Где-то еще в классе:

...
  # Fail! is actually a magic method that executes the state
  # change in the state manager - there is a fail method defined
  # in CoolClassStates class that implements the transition logic.
  cool_class_object.fail!
...

Я также пробовал # @! метод для определения магического метода в CoolClassStates для определения магического метода fail!. Все еще не повезло.

В настоящее время я использую Rubymine (но я предполагаю, что подобная проблема существует и для других IDE). Как добавить интеллектуальные документы в этот код, чтобы интегрированные среды разработки и, надеюсь, другие программисты могли легко определить, где находится fail и другая логика перехода состояний?

...