lib/bhook/directory.rb in bhook-0.1.4 vs lib/bhook/directory.rb in bhook-0.1.5
- old
+ new
@@ -2,20 +2,20 @@
# frozen_string_literal: true
module Bhook
class Directory
extend T::Sig
-
+
GIT_DIR = '.git'
MD_EXT = '.md'
-
+
sig { params(src_path: Pathname, out_path: Pathname).returns(Bhook::Directory) }
def self.new_root_directory(src_path, out_path)
self.new(src_path, out_path, Git.open(src_path), Bhook::Config.new(src_path))
end
-
-
+
+
sig { params(src_path: Pathname, out_path: Pathname, git: Git::Base, config: Bhook::Config).void }
def initialize(src_path, out_path, git, config)
@src_path = src_path
@out_path = T.let(out_path.join(src_path.basename), Pathname)
@git = git
@@ -28,33 +28,33 @@
sig { params(theme: Theme).void }
def write!(theme)
FileUtils.mkdir_p(@out_path)
L.debug("mkdir: #{@out_path}")
@sub_dirs.each { |dir| dir.write!(theme) }
- @md_files.map do |file|
+ @md_files.map do |file|
Thread.new { file.write!(theme) }
end.each do |thread|
thread.join
end
end
-
+
sig { returns(T::Array[MdFile]) }
def all_md_files
@md_files + @sub_dirs.map(&:all_md_files).flatten
end
sig { returns(String) }
def to_s
@src_path.to_s
end
-
+
private
sig { void }
def build_next_level_nodes
children = @src_path.children
children.delete(@src_path.join(GIT_DIR))
-
+
file_threads = []
children.each do |child_path|
if child_path.directory?
@sub_dirs << Directory.new(child_path, @out_path, @git, @config)
elsif child_path.extname == MD_EXT