class Tapioca::Dsl::Compilers::StateMachines
def decorate
def decorate return if constant.state_machines.empty? root.create_path(T.unsafe(constant)) do |klass| instance_module_name = "StateMachineInstanceHelperModule" class_module_name = "StateMachineClassHelperModule" instance_module = RBI::Module.new(instance_module_name) klass << instance_module class_module = RBI::Module.new(class_module_name) klass << class_module constant.state_machines.each_value do |machine| state_type = state_type_for(machine) define_state_accessor(instance_module, machine, state_type) define_state_predicate(instance_module, machine) define_event_helpers(instance_module, machine) define_path_helpers(instance_module, machine) define_name_helpers(instance_module, class_module, machine) define_scopes(class_module, machine) define_state_methods(instance_module, machine) define_event_methods(instance_module, machine) end matching_integration_name = ::StateMachines::Integrations.match(constant)&.integration_name case matching_integration_name when :active_record define_activerecord_methods(instance_module) end klass.create_include(instance_module_name) klass.create_extend(class_module_name) end end