Class: LLMed

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/llmed/release.rb,
lib/llm.rb,
lib/llmed.rb,
lib/llmed/context.rb,
lib/llmed/deployment.rb,
lib/llmed/application.rb,
lib/llmed/configuration.rb,
lib/llmed/literate_programming.rb

Overview

Copyright 2025 Jovany Leandro G.C <[email protected]> frozen_string_literal: true

Defined Under Namespace

Modules: LLM Classes: Application, Configuration, Context, Deployment, LiterateProgramming, Release, UserContexts

Instance Method Summary collapse

Constructor Details

#initialize(logger:, output_dir:, release_dir:) ⇒ LLMed

Returns a new instance of LLMed.



16
17
18
19
20
21
22
23
# File 'lib/llmed.rb', line 16

def initialize(logger:, output_dir:, release_dir:)
  @logger = logger
  @applications = []
  @deploys = []
  @configuration = Configuration.new(logger: logger)
  @release_dir = release_dir || output_dir
  @output_dir = output_dir
end

Instance Method Details

#application(name, output_file:, language: nil, release: nil, output_dir: nil, release_dir: nil, &block) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/llmed.rb', line 36

def application(name, output_file:, language: nil, release: nil, output_dir: nil, release_dir: nil, &block)
  @app = Application.new(
    name: name,
    language: @configuration.language(language),
    output_file: output_file,
    block: block,
    logger: @logger,
    release: release,
    release_dir: release_dir || @release_dir,
    output_dir: output_dir || @output_dir
  )
  @applications << @app
end

#compileObject



54
55
56
57
58
59
60
61
62
# File 'lib/llmed.rb', line 54

def compile
  @applications.each do |app|
    compile_application(app)
  end

  @deploys.each do |deploy|
    deploy.execute
  end
end

#deploy(name, &block) ⇒ Object



50
51
52
# File 'lib/llmed.rb', line 50

def deploy(name, &block)
  @deploys << Deployment.new(name: name, output_dir: @output_dir, logger: @logger, block: block)
end

#eval_source(code) ⇒ Object



25
26
27
# File 'lib/llmed.rb', line 25

def eval_source(code)
  instance_eval(code)
end