Class: RailsAiBridge::Services::ContextGenerationService
- Inherits:
-
RailsAiBridge::Service
- Object
- RailsAiBridge::Service
- RailsAiBridge::Services::ContextGenerationService
- Defined in:
- lib/rails_ai_bridge/services/context_generation_service.rb
Overview
Application service for generating context files from introspection data.
Delegates to a serializer (default RailsAiBridge::Serializers::ContextFileSerializer) and
normalizes successful results to a stable data shape: { written: Array, skipped: Array },
even when the serializer returns a partial hash, a non-hash, or nil. Failures are returned
as a failed RailsAiBridge::Service::Result rather than raised.
Class Method Summary collapse
-
.call(context_data, format: :all, serializer_class: Serializers::ContextFileSerializer) ⇒ RailsAiBridge::Service::Result
Class-level entry point with explicit serializer and format.
Instance Method Summary collapse
-
#call ⇒ RailsAiBridge::Service::Result
Runs the serializer and wraps the outcome in a RailsAiBridge::Service::Result.
-
#initialize(context_data, serializer_class: Serializers::ContextFileSerializer, format: :all) ⇒ ContextGenerationService
constructor
A new instance of ContextGenerationService.
Constructor Details
#initialize(context_data, serializer_class: Serializers::ContextFileSerializer, format: :all) ⇒ ContextGenerationService
Returns a new instance of ContextGenerationService.
36 37 38 39 40 41 |
# File 'lib/rails_ai_bridge/services/context_generation_service.rb', line 36 def initialize(context_data, serializer_class: Serializers::ContextFileSerializer, format: :all) super() @context_data = context_data @serializer_class = serializer_class @format = format end |
Class Method Details
.call(context_data, format: :all, serializer_class: Serializers::ContextFileSerializer) ⇒ RailsAiBridge::Service::Result
Class-level entry point with explicit serializer and format.
29 30 31 |
# File 'lib/rails_ai_bridge/services/context_generation_service.rb', line 29 def self.call(context_data, format: :all, serializer_class: Serializers::ContextFileSerializer) new(context_data, serializer_class: serializer_class, format: format).call end |
Instance Method Details
#call ⇒ RailsAiBridge::Service::Result
Runs the serializer and wraps the outcome in a RailsAiBridge::Service::Result.
Successful data always uses symbol keys :written and :skipped with array values, derived
only from symbol keys on a Hash return value from the serializer.
49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/rails_ai_bridge/services/context_generation_service.rb', line 49 def call serializer = @serializer_class.new(@context_data, format: @format) serialization_result = serializer.call normalized = { written: Array(serialization_result.is_a?(Hash) ? serialization_result[:written] : nil), skipped: Array(serialization_result.is_a?(Hash) ? serialization_result[:skipped] : nil) } Service::Result.new(true, data: normalized) rescue StandardError => error Service::Result.new(false, errors: [error.]) end |