Class: Tasker::TaskSerializer

Inherits:
ActiveModel::Serializer
  • Object
show all
Defined in:
app/serializers/tasker/task_serializer.rb

Instance Method Summary collapse

Instance Method Details

#dependency_analysisObject

Generate dependency analysis



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'app/serializers/tasker/task_serializer.rb', line 69

def dependency_analysis
  # Get comprehensive dependency analysis from the runtime analyzer
  analysis = object.dependency_graph

  {
    dependency_graph: analysis[:dependency_graph],
    critical_paths: analysis[:critical_paths],
    parallelism_opportunities: analysis[:parallelism_opportunities],
    error_chains: analysis[:error_chains],
    bottlenecks: analysis[:bottlenecks],
    analysis_timestamp: Time.current.iso8601,
    task_execution_summary: build_execution_summary(analysis)
  }
rescue StandardError => e
  # Graceful fallback if dependency analysis fails
  {
    error: "Dependency analysis failed: #{e.message}",
    analysis_timestamp: Time.current.iso8601
  }
end

#full_nameObject



59
60
61
# File 'app/serializers/tasker/task_serializer.rb', line 59

def full_name
  "#{namespace}.#{object.named_task&.name}@#{version}"
end

#include_dependency_analysis?Boolean

Check if dependency analysis should be included

Returns:

  • (Boolean)


64
65
66
# File 'app/serializers/tasker/task_serializer.rb', line 64

def include_dependency_analysis?
  instance_options[:include_dependencies] == true
end

#namespaceObject



51
52
53
# File 'app/serializers/tasker/task_serializer.rb', line 51

def namespace
  object.named_task&.task_namespace&.name || 'default'
end

#versionObject



55
56
57
# File 'app/serializers/tasker/task_serializer.rb', line 55

def version
  object.named_task&.version || '0.1.0'
end