Class: WritersRoom::ProjectScaffolder
- Inherits:
-
Object
- Object
- WritersRoom::ProjectScaffolder
- Defined in:
- lib/writers_room/project_scaffolder.rb
Overview
Creates project directory structure based on medium type.
Instance Attribute Summary collapse
-
#medium ⇒ Object
readonly
Returns the value of attribute medium.
-
#project_path ⇒ Object
readonly
Returns the value of attribute project_path.
Instance Method Summary collapse
- #create_directories ⇒ Object
- #create_story_bible ⇒ Object
-
#initialize(project_path, medium_id: :dialog) ⇒ ProjectScaffolder
constructor
A new instance of ProjectScaffolder.
- #scaffold! ⇒ Object
Constructor Details
#initialize(project_path, medium_id: :dialog) ⇒ ProjectScaffolder
Returns a new instance of ProjectScaffolder.
10 11 12 13 |
# File 'lib/writers_room/project_scaffolder.rb', line 10 def initialize(project_path, medium_id: :dialog) @project_path = File.(project_path) @medium = MediumRegistry.find(medium_id) end |
Instance Attribute Details
#medium ⇒ Object (readonly)
Returns the value of attribute medium.
8 9 10 |
# File 'lib/writers_room/project_scaffolder.rb', line 8 def medium @medium end |
#project_path ⇒ Object (readonly)
Returns the value of attribute project_path.
8 9 10 |
# File 'lib/writers_room/project_scaffolder.rb', line 8 def project_path @project_path end |
Instance Method Details
#create_directories ⇒ Object
22 23 24 25 26 27 |
# File 'lib/writers_room/project_scaffolder.rb', line 22 def create_directories @medium.scaffolded_dirs.each do |dir| dir_path = File.join(@project_path, dir) FileUtils.mkdir_p(dir_path) unless Dir.exist?(dir_path) end end |
#create_story_bible ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/writers_room/project_scaffolder.rb', line 29 def create_story_bible bible_path = File.join(@project_path, "story_bible.yml") return if File.exist?(bible_path) File.write(bible_path, YAML.dump( "elements" => {}, "generated_at" => nil )) end |
#scaffold! ⇒ Object
15 16 17 18 19 20 |
# File 'lib/writers_room/project_scaffolder.rb', line 15 def scaffold! FileUtils.mkdir_p(@project_path) create_directories create_story_bible @medium.scaffolded_dirs end |