Class: WritersRoom::Commands::Scene

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

Instance Method Summary collapse

Instance Method Details

#create(name) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/writers_room/cli/scene.rb', line 22

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

  producer = WritersRoom::Producer.new

  scene_file = producer.create_scene(
    name,
    options[:description],
    options[:characters]
  )

  say "Created scene: #{scene_file}", :green
  say "Characters: #{options[:characters].join(', ')}", :white if options[:characters].any?
rescue WritersRoom::Error => e
  say "Error: #{e.message}", :red
  exit 1
rescue StandardError => e
  say "Error creating scene: #{e.message}", :red
  say e.backtrace.join("\n"), :red if ENV["DEBUG"]
  exit 1
end

#listObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/writers_room/cli/scene.rb', line 45

def list
  require_relative "../producer"

  producer = WritersRoom::Producer.new
  scenes = producer.list_scenes

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

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