summaryrefslogtreecommitdiff
path: root/spec/tasks/run-all-models.rb
blob: a7f45707861fb7cbb50d5f4e28993c05d4728473 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# frozen_string_literal: true

require 'dotenv/load'

require 'yaml'

require_relative '../../ports/dsl/nano-bots'
require_relative '../../logic/helpers/hash'

def run_model!(cartridge, stream = true)
  if stream == false
    cartridge[:provider][:options] = {} unless cartridge[:provider].key?(:options)
    cartridge[:provider][:options][:stream] = false

    cartridge[:provider][:settings] = {} unless cartridge[:provider].key?(:settings)
    cartridge[:provider][:settings][:stream] = false
  end

  puts "\n#{cartridge[:meta][:symbol]} #{cartridge[:meta][:name]}\n\n"

  bot = NanoBot.new(cartridge:)

  output = bot.eval('Hi!') do |_content, fragment, _finished, _meta|
    print fragment unless fragment.nil?
  end
  puts ''
  puts '-' * 20
  puts ''
  puts output
  puts ''
  puts '*' * 20
end

puts '[NO STREAM]'

Dir['spec/data/cartridges/models/*/*.yml'].each do |path|
  run_model!(
    NanoBot::Logic::Helpers::Hash.symbolize_keys(
      YAML.safe_load_file(path, permitted_classes: [Symbol])
    ),
    false
  )
end

puts "\n[STREAM]"

Dir['spec/data/cartridges/models/*/*.yml'].each do |path|
  run_model!(
    NanoBot::Logic::Helpers::Hash.symbolize_keys(
      YAML.safe_load_file(path, permitted_classes: [Symbol])
    )
  )
end