Class: Ai::Commit::Config
- Inherits:
-
Object
- Object
- Ai::Commit::Config
- Defined in:
- lib/ai/commit/config.rb
Constant Summary collapse
- CONFIG_FILE =
File.('~/.smart-commit/config.yml').freeze
- PROMPTS_FILE =
'.commit-prompts'.freeze
Class Method Summary collapse
- .api_key ⇒ Object
- .api_key_configured? ⇒ Boolean
- .custom_prompts ⇒ Object
- .find_prompts_file ⇒ Object
- .has_custom_prompts? ⇒ Boolean
- .set_api_key(key) ⇒ Object
Class Method Details
.api_key ⇒ Object
12 13 14 15 |
# File 'lib/ai/commit/config.rb', line 12 def self.api_key config = load_config config['api_key'] || ENV['ANTHROPIC_API_KEY'] end |
.api_key_configured? ⇒ Boolean
23 24 25 |
# File 'lib/ai/commit/config.rb', line 23 def self.api_key_configured? !api_key.nil? && !api_key.empty? end |
.custom_prompts ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/ai/commit/config.rb', line 27 def self.custom_prompts prompts_file = find_prompts_file return [] unless prompts_file && File.exist?(prompts_file) File.readlines(prompts_file) .map(&:strip) .reject(&:empty?) .reject { |line| line.start_with?('#') } end |
.find_prompts_file ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/ai/commit/config.rb', line 37 def self.find_prompts_file # Look for .commit-prompts in current directory or parent directories current_dir = Dir.pwd while current_dir != File.dirname(current_dir) prompts_file = File.join(current_dir, PROMPTS_FILE) return prompts_file if File.exist?(prompts_file) current_dir = File.dirname(current_dir) end nil end |
.has_custom_prompts? ⇒ Boolean
48 49 50 |
# File 'lib/ai/commit/config.rb', line 48 def self.has_custom_prompts? !custom_prompts.empty? end |
.set_api_key(key) ⇒ Object
17 18 19 20 21 |
# File 'lib/ai/commit/config.rb', line 17 def self.set_api_key(key) config = load_config config['api_key'] = key save_config(config) end |