Sha256: 1135ca3ba503effe9a17c8e3b774292f62c62465c75c79003f12d6b05163c7f1
Contents?: true
Size: 1.4 KB
Versions: 2
Compression:
Stored size: 1.4 KB
Contents
module Daigaku require 'fileutils' require 'active_support' require 'active_support/core_ext' class Generator SOLUTION_SUFFIX = '_solution.rb' def scaffold(courses_path, target_path) Dir[File.join(courses_path, "**/*.md")].each do |file| content_dir = File.join(*file.split('/')[-4..-2]) directory = File.join(target_path, File.dirname(content_dir)) unit_name = File.basename(content_dir) solution_file = unit_name.gsub(/(\_+|\-+|\.+)/, '_') + SOLUTION_SUFFIX file_path = File.join(directory, solution_file) create_dir(directory) create_file(file_path) end end def prepare begin solutions_path = Daigaku.config.solutions_path rescue ConfigurationError => e base_dir = File.dirname(Daigaku.config.courses_path) solutions_dir = Daigaku::Configuration::SOLUTIONS_DIR solutions_path = File.join(base_dir, solutions_dir) end create_dir(Daigaku.config.courses_path) create_dir(solutions_path) Daigaku.config.solutions_path = solutions_path Daigaku.config.save end private def create_dir(path) return if path.blank? FileUtils.makedirs(path) unless Dir.exist?(path) end def create_file(path) return if path.blank? create_dir(File.dirname(path)) FileUtils.touch(path) unless File.exist?(path) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
daigaku-0.0.2 | lib/daigaku/generator.rb |
daigaku-0.0.1 | lib/daigaku/generator.rb |