Sha256: 21713e59075452248ef20c9c1e966c71f919516cc9a803db40ad46a431e170ce

Contents?: true

Size: 970 Bytes

Versions: 1

Compression:

Stored size: 970 Bytes

Contents

# frozen_string_literal: true

require 'yaml'
require 'dry/files'

module Vercon
  class Config
    CLAUDE_MODELS = %w[
      claude-3-haiku-20240307
      claude-3-sonnet-20240229
      claude-3-opus-20240229
    ].freeze
    DEFAULT_CLAUDE_MODEL = 'claude-3-sonnet-20240229'
    LOWEST_CLAUDE_MODEL = 'claude-3-haiku-20240307'
    PATH = '~/.vercon.yml'

    def initialize
      @files = Dry::Files.new
      @config = YAML.load_file(@files.expand_path(PATH))
    rescue Errno::ENOENT
      @config = {}
    end

    def exists?
      !@config.empty?
    end

    def token
      @config['claude_token']
    end

    def token=(value)
      @config['claude_token'] = value
      @files.write(@files.expand_path(PATH), YAML.safe_dump(@config))
    end

    def claude_model
      @config['claude_model']
    end

    def claude_model=(value)
      @config['claude_model'] = value
      @files.write(@files.expand_path(PATH), YAML.safe_dump(@config))
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vercon-0.0.1 lib/vercon/config.rb