Class: EasyHtmlGenerator::Workspace
- Inherits:
-
Object
- Object
- EasyHtmlGenerator::Workspace
- Defined in:
- lib/easy_html_generator/workspace.rb
Overview
this class creates project instances
Class Method Summary collapse
- .clean_dist_folder(project = nil) ⇒ Object
- .create_project(name) ⇒ Object
- .generate(project = nil) ⇒ Object
- .init ⇒ Object
- .project_by_name(name) ⇒ Object
- .project_folders ⇒ Object
- .project_instance_from_path(path) ⇒ Object
- .projects ⇒ Object
Class Method Details
.clean_dist_folder(project = nil) ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/easy_html_generator/workspace.rb', line 42 def self.clean_dist_folder(project=nil) if project.nil? paths = Dir["#{EasyHtmlGenerator::DIST_PATH}/*"] else project_instance = project_by_name project raise LoadError "no such project to load -- #{project}" paths = project_instance.dist_path end FileUtils.rm_rf paths end |
.create_project(name) ⇒ Object
26 27 28 29 30 |
# File 'lib/easy_html_generator/workspace.rb', line 26 def self.create_project(name) FileUtils.cp_r( File.join(EasyHtmlGenerator::EHG_SRC_PATH, 'template'), File.join(EasyHtmlGenerator::SRC_PATH, name)) end |
.generate(project = nil) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/easy_html_generator/workspace.rb', line 53 def self.generate(project=nil) if project.nil? projects_to_generate = projects else project_instance = project_by_name project raise LoadError "no such project to load -- #{project}" projects_to_generate = {project => project_instance} end projects_to_generate.each { |_name, project| project.generate } end |
.init ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/easy_html_generator/workspace.rb', line 32 def self.init EasyHtmlGenerator::CREATE_ON_INIT.each do |dir| FileUtils.mkdir_p dir end EasyHtmlGenerator::COPY_ON_INIT.each do |src, target| FileUtils.cp_r src, target end end |
.project_by_name(name) ⇒ Object
79 80 81 |
# File 'lib/easy_html_generator/workspace.rb', line 79 def self.project_by_name(name) projects[name.to_sym] end |
.project_folders ⇒ Object
20 21 22 23 24 |
# File 'lib/easy_html_generator/workspace.rb', line 20 def self.project_folders Dir[File.join(EasyHtmlGenerator::SRC_PATH, '*')] .reject { |o| !File.directory?(o) } .map { |o| File.(o) } end |
.project_instance_from_path(path) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/easy_html_generator/workspace.rb', line 65 def self.project_instance_from_path(path) name = path.split('/').last.sub('/', '') config_file = "#{EasyHtmlGenerator::SHARED_PATH}/project.yml" config_file = "#{path}/project.yml" if File.exist? "#{path}/project.yml" EasyHtmlGenerator::Project.new( name, "#{EasyHtmlGenerator::SRC_PATH}/#{name}", "#{EasyHtmlGenerator::DIST_PATH}/#{name}", config_file ) end |
.projects ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/easy_html_generator/workspace.rb', line 8 def self.projects if @project_instances.empty? project_folders.each do |path| next if path.include? 'shared' p = project_instance_from_path path @project_instances[p.name.to_sym] = p end end @project_instances end |