Commit e67b0d6
Changed files (3)
lib
elelem
lib/elelem/configuration.rb
@@ -1,41 +1,6 @@
# frozen_string_literal: true
module Elelem
- class TUI
- attr_reader :stdin, :stdout
-
- def initialize(stdin = $stdin, stdout = $stdout)
- @stdin = stdin
- @stdout = stdout
- end
-
- def prompt(message)
- say(message)
- stdin.gets&.chomp
- end
-
- def say(message, colour: :default, newline: false)
- formatted_message = colourize(message, colour: colour)
- if newline
- stdout.puts(formatted_message)
- else
- stdout.print(formatted_message)
- end
- stdout.flush
- end
-
- private
-
- def colourize(text, colour: :default)
- case colour
- when :gray
- "\e[90m#{text}\e[0m"
- else
- text
- end
- end
- end
-
class Configuration
attr_reader :host, :model, :token, :debug
@@ -54,7 +19,7 @@ module Elelem
end
def tui
- @tui ||= TUI.new
+ @tui ||= TUI.new($stdin, $stdout)
end
def api
lib/elelem/tui.rb
@@ -0,0 +1,38 @@
+# frozen_string_literal: true
+
+module Elelem
+ class TUI
+ attr_reader :stdin, :stdout
+
+ def initialize(stdin = $stdin, stdout = $stdout)
+ @stdin = stdin
+ @stdout = stdout
+ end
+
+ def prompt(message)
+ say(message)
+ stdin.gets&.chomp
+ end
+
+ def say(message, colour: :default, newline: false)
+ formatted_message = colourize(message, colour: colour)
+ if newline
+ stdout.puts(formatted_message)
+ else
+ stdout.print(formatted_message)
+ end
+ stdout.flush
+ end
+
+ private
+
+ def colourize(text, colour: :default)
+ case colour
+ when :gray
+ "\e[90m#{text}\e[0m"
+ else
+ text
+ end
+ end
+ end
+end
lib/elelem.rb
@@ -13,6 +13,7 @@ require_relative "elelem/application"
require_relative "elelem/configuration"
require_relative "elelem/conversation"
require_relative "elelem/tools"
+require_relative "elelem/tui"
require_relative "elelem/version"
module Elelem