Class: ContextSpook::Generator
- Inherits:
-
Object
- Object
- ContextSpook::Generator
- Includes:
- OutputContext, VerbosePuts
- Defined in:
- lib/context_spook/generator.rb
Overview
The Generator class provides a DSL parser that interprets context definition files and constructs structured context objects containing project metadata, file contents, command outputs, and variables for AI assistance.
Defined Under Namespace
Classes: Context
Instance Attribute Summary collapse
-
#format ⇒ String
readonly
The format method returns the format identifier for the context output.
-
#token_estimator ⇒ Object
writeonly
The token_estimator attribute allows setting the logic used to estimate the number of tokens in a serialized context.
-
#verbose ⇒ TrueClass, FalseClass
readonly
The verbose method returns the verbose flag indicating whether verbose output is enabled.
Instance Method Summary collapse
-
#context(&block) ⇒ Context
The context method creates or returns a context object.
-
#initialize(verbose: false, format: nil, &block) ⇒ Generator
constructor
The initialize method sets up the object by evaluating the provided block in the object's context.
-
#parse(source) ⇒ ContextSpook::Generator
private
The parse method processes the given source code by interpreting it within the current binding context, allowing for dynamic evaluation and configuration setup.
Methods included from OutputContext
#output_context, #output_context_size
Methods included from VerbosePuts
Constructor Details
#initialize(verbose: false, format: nil, &block) ⇒ Generator
The initialize method sets up the object by evaluating the provided block in the object's context.
89 90 91 92 93 94 95 96 97 |
# File 'lib/context_spook/generator.rb', line 89 def initialize(verbose: false, format: nil, &block) @verbose = !!verbose @format = (format || 'JSON').upcase %w[ TOON JSON ].include?(@format) or raise ArgumentError, "format needs to be either JSON or TOON, was #{@format.inspect}" self.token_estimator = ContextSpook::Utils.method(:estimate_tokens) block and instance_eval(&block) end |
Instance Attribute Details
#format ⇒ String (readonly)
The format method returns the format identifier for the context output.
71 72 73 |
# File 'lib/context_spook/generator.rb', line 71 def format @format end |
#token_estimator=(value) ⇒ Object (writeonly)
The token_estimator attribute allows setting the logic used to estimate the number of tokens in a serialized context.
It expects an object that responds to #call(text), where text is the serialized context string.
80 81 82 |
# File 'lib/context_spook/generator.rb', line 80 def token_estimator=(value) @token_estimator = value end |
#verbose ⇒ TrueClass, FalseClass (readonly)
The verbose method returns the verbose flag indicating whether verbose output is enabled.
66 67 68 |
# File 'lib/context_spook/generator.rb', line 66 def verbose @verbose end |
Instance Method Details
#context(&block) ⇒ Context
The context method creates or returns a context object.
104 105 106 107 108 109 110 111 |
# File 'lib/context_spook/generator.rb', line 104 def context(&block) if block @context and raise ArgumentError, "only one context allowed" @context = Context.new(generator: self, &block) else @context end end |
#parse(source) ⇒ ContextSpook::Generator (private)
The parse method processes the given source code by interpreting it within the current binding context, allowing for dynamic evaluation and configuration setup.
chaining after parsing
368 369 370 371 |
# File 'lib/context_spook/generator.rb', line 368 def parse(source) interpret_with_binding source, binding self end |