Class: RailsAiBridge::Serializers::Providers::Factory
- Inherits:
-
Object
- Object
- RailsAiBridge::Serializers::Providers::Factory
- Defined in:
- lib/rails_ai_bridge/serializers/providers/factory.rb
Overview
Maps format symbols to serializer instances without hardcoded case/if dispatch.
Defined Under Namespace
Classes: NullSplitRulesStrategy, NullStrategy
Constant Summary collapse
- REGISTRY =
{ json: ->(ctx) { JsonSerializer.new(ctx) }, claude: ->(ctx) { Providers::ClaudeSerializer.new(ctx) }, codex: ->(ctx) { Providers::CodexSerializer.new(ctx) }, cursor: ->(ctx) { Providers::RulesSerializer.new(ctx) }, windsurf: ->(ctx) { Providers::WindsurfSerializer.new(ctx) }, gemini: ->(ctx) { Providers::GeminiSerializer.new(ctx) }, copilot: ->(ctx) { Providers::CopilotSerializer.new(ctx) } }.freeze
- SPLIT_REGISTRY =
{ claude: ->(ctx) { Providers::ClaudeRulesSerializer.new(ctx) }, codex: ->(ctx) { Providers::CodexSupportSerializer.new(ctx) }, cursor: ->(ctx) { Providers::CursorRulesSerializer.new(ctx) }, windsurf: ->(ctx) { Providers::WindsurfRulesSerializer.new(ctx) }, copilot: ->(ctx) { Providers::CopilotInstructionsSerializer.new(ctx) } }.freeze
Class Method Summary collapse
-
.for(fmt, context) ⇒ #call
Serializer object for the main context file.
-
.split_rules_for(fmt, context) ⇒ #call
Split-rules serializer, or NullSplitRulesStrategy when none exists.
Class Method Details
.for(fmt, context) ⇒ #call
Returns Serializer object for the main context file.
42 43 44 |
# File 'lib/rails_ai_bridge/serializers/providers/factory.rb', line 42 def self.for(fmt, context) REGISTRY.fetch(fmt) { ->(ctx) { NullStrategy.new(ctx) } }.call(context) end |
.split_rules_for(fmt, context) ⇒ #call
Returns Split-rules serializer, or NullSplitRulesStrategy when none exists.
49 50 51 |
# File 'lib/rails_ai_bridge/serializers/providers/factory.rb', line 49 def self.split_rules_for(fmt, context) SPLIT_REGISTRY.fetch(fmt) { ->(_ctx) { NullSplitRulesStrategy.new } }.call(context) end |