Class: ContextSpook::Generator

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

Methods included from OutputContext

#output_context, #output_context_size

Methods included from VerbosePuts

#verbose_puts

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.

Parameters:

  • verbose (TrueClass, FalseClass) (defaults to: false)

    flag to enable verbose output during processing, defaults to lfalse.

  • block (Proc)

    a block of code to be evaluated within the object’s context If no block is given, the method does nothing.



80
81
82
83
84
# File 'lib/context_spook/generator.rb', line 80

def initialize(verbose: false, format: nil, &block)
  @verbose = !!verbose
  @format  = (format || 'JSON').upcase
  block and instance_eval(&block)
end

Instance Attribute Details

#formatString (readonly)

The format method returns the format identifier for the context output.

Returns:

  • (String)

    the format identifier, either ‘JSON’ or ‘TOON’



69
70
71
# File 'lib/context_spook/generator.rb', line 69

def format
  @format
end

#verboseTrueClass, FalseClass (readonly)

The verbose method returns the verbose flag indicating whether verbose output is enabled.

Returns:

  • (TrueClass, FalseClass)

    true if verbose output is enabled, false otherwise



64
65
66
# File 'lib/context_spook/generator.rb', line 64

def verbose
  @verbose
end

Instance Method Details

#context(&block) ⇒ Context

The context method creates or returns a context object.

Parameters:

  • block (Proc)

    optional block to initialize the context

Returns:



91
92
93
94
95
96
97
98
# File 'lib/context_spook/generator.rb', line 91

def context(&block)
  if block
    @context and raise ArgumentError, "only one context allowed"
    @context = Context.new(generator: self, &block)
  else
    @context
  end
end