Class: WritersRoom::Commands::Character

Inherits:
Thor
  • Object
show all
Defined in:
lib/writers_room/cli/character.rb

Instance Method Summary collapse

Instance Method Details

#create(name) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/writers_room/cli/character.rb', line 27

def create(name)
  require_relative "../producer"

  producer = WritersRoom::Producer.new

  traits = {
    personality: options[:personality],
    speaking_style: options[:speaking_style],
    background: options[:background]
  }

  character_file = producer.create_character(name, traits)
  say "Created character: #{character_file}", :green
rescue WritersRoom::Error => e
  say "Error: #{e.message}", :red
  exit 1
rescue StandardError => e
  say "Error creating character: #{e.message}", :red
  say e.backtrace.join("\n"), :red if ENV["DEBUG"]
  exit 1
end

#listObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/writers_room/cli/character.rb', line 50

def list
  require_relative "../producer"

  producer = WritersRoom::Producer.new
  characters = producer.list_characters

  if characters.empty?
    say "No characters found in characters/ directory", :yellow
    exit 0
  end

  say "Characters:", :cyan
  characters.each do |char|
    say "  #{char[:name]}", :white
    say "    File: #{File.basename(char[:file])}", :white
    say "    Personality: #{char[:personality]}", :white
    say ""
  end
rescue WritersRoom::Error => e
  say "Error: #{e.message}", :red
  exit 1
rescue StandardError => e
  say "Error listing characters: #{e.message}", :red
  say e.backtrace.join("\n"), :red if ENV["DEBUG"]
  exit 1
end