Class: RailsAiBridge::Watcher::BridgeRegenerator
- Inherits:
-
Object
- Object
- RailsAiBridge::Watcher::BridgeRegenerator
- Defined in:
- lib/rails_ai_bridge/watcher/bridge_regenerator.rb
Overview
Detects fingerprint changes and regenerates context via RailsAiBridge.generate_context. Single responsibility: fingerprint state and regeneration (no stderr).
Instance Attribute Summary collapse
-
#last_fingerprint ⇒ String
readonly
Last computed fingerprint digest.
Instance Method Summary collapse
-
#change_pending? ⇒ Boolean
Whether the app fingerprint differs from #last_fingerprint.
-
#initialize(app) ⇒ BridgeRegenerator
constructor
A new instance of BridgeRegenerator.
-
#regenerate! ⇒ Hash{Symbol => Array<String>}
Updates the stored fingerprint and runs RailsAiBridge.generate_context.
Constructor Details
#initialize(app) ⇒ BridgeRegenerator
Returns a new instance of BridgeRegenerator.
12 13 14 15 |
# File 'lib/rails_ai_bridge/watcher/bridge_regenerator.rb', line 12 def initialize(app) @app = app @last_fingerprint = Fingerprinter.compute(@app) end |
Instance Attribute Details
#last_fingerprint ⇒ String (readonly)
Returns last computed fingerprint digest.
9 10 11 |
# File 'lib/rails_ai_bridge/watcher/bridge_regenerator.rb', line 9 def last_fingerprint @last_fingerprint end |
Instance Method Details
#change_pending? ⇒ Boolean
Returns whether the app fingerprint differs from #last_fingerprint.
18 19 20 |
# File 'lib/rails_ai_bridge/watcher/bridge_regenerator.rb', line 18 def change_pending? Fingerprinter.changed?(@app, @last_fingerprint) end |
#regenerate! ⇒ Hash{Symbol => Array<String>}
Updates the stored fingerprint and runs RailsAiBridge.generate_context. Regenerates only the formats configured via +config.watcher_formats+ (default +:all+; set to e.g. +%i[claude cursor]+ to limit churn).
27 28 29 30 31 |
# File 'lib/rails_ai_bridge/watcher/bridge_regenerator.rb', line 27 def regenerate! @last_fingerprint = Fingerprinter.compute(@app) formats = RailsAiBridge.configuration.watcher_formats RailsAiBridge.generate_context(@app, format: formats, split_rules: true) end |