Module: RubyLsp::HasStateMachine::WorkflowResolver

Defined in:
lib/ruby_lsp/has_state_machine/workflow_resolver.rb

Constant Summary collapse

WORKFLOW_PREFIX =
"Workflow::"

Class Method Summary collapse

Class Method Details

.model_name_for(workflow_class_name) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/ruby_lsp/has_state_machine/workflow_resolver.rb', line 10

def model_name_for(workflow_class_name)
  namespace = workflow_namespace_for(workflow_class_name)
  return unless namespace&.start_with?(WORKFLOW_PREFIX)

  name = namespace.delete_prefix(WORKFLOW_PREFIX)
  return if name.empty?

  name
end

.workflow_namespace_for(workflow_class_name) ⇒ Object



20
21
22
23
24
25
# File 'lib/ruby_lsp/has_state_machine/workflow_resolver.rb', line 20

def workflow_namespace_for(workflow_class_name)
  namespace = workflow_class_name.to_s.delete_prefix("::").sub(/::[^:]+\z/, "")
  return if namespace.empty?

  namespace
end