Class: WritersRoom::Commands::Bible
- Inherits:
-
Thor
- Object
- Thor
- WritersRoom::Commands::Bible
- Defined in:
- lib/writers_room/cli/bible.rb
Instance Method Summary collapse
Instance Method Details
#regenerate ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/writers_room/cli/bible.rb', line 11 def regenerate project = Dir.pwd bible = WritersRoom::StoryBible.new(project) bible.regenerate say "Story bible regenerated: #{bible.element_count} elements indexed", :green rescue StandardError => e say "Error: #{e.message}", :red exit 1 end |
#search(term) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/writers_room/cli/bible.rb', line 43 def search(term) project = Dir.pwd bible = WritersRoom::StoryBible.new(project) result = bible.resolve(term) if result say "Found: #{result['name']} (#{result['type']})", :green say " Path: #{result['path']}", :white say " Aliases: #{result['aliases'].join(', ')}", :white if result["aliases"]&.any? say " Status: #{result['status']}", :white if result["status"] else say "No match for '#{term}'", :yellow end end |
#show ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/writers_room/cli/bible.rb', line 23 def show project = Dir.pwd bible = WritersRoom::StoryBible.new(project) if bible.element_count.zero? say "Story bible is empty. Run 'wr bible regenerate' first.", :yellow return end bible.elements_by_type.each do |type, entries| say "\n#{type.capitalize}:", :cyan entries.each do |entry| aliases_str = entry["aliases"]&.any? ? " (aka #{entry['aliases'].join(', ')})" : "" status_str = entry["status"] ? " [#{entry['status']}]" : "" say " #{entry['name']}#{aliases_str}#{status_str}", :white end end end |