class ColonizeRepo
Creates clerq repository sources in current work directory Warning! Change work dierectory before calling for the serice Usage
node = Clerq.node_repository.assembly Dir.chdir(Clerq.src) { ColonizeRepo.(node) }
Constants
- TEMPLATE
Public Class Methods
new(node, on_create_dir = nil, on_create_file = nil)
click to toggle source
@param node [Node] the node for colonization @param on_create_file [Block(arg)] on create new file callback @param on_create_dir [Block(arg)] on create new directory callback
# File lib/assets/lib/colonize_repo.rb, line 35 def initialize(node, on_create_dir = nil, on_create_file = nil) @node = node @on_create_dir = on_create_dir @on_create_file = on_create_file end
Public Instance Methods
call()
click to toggle source
# File lib/assets/lib/colonize_repo.rb, line 14 def call write(@node) end
filename(node)
click to toggle source
# File lib/assets/lib/colonize_repo.rb, line 57 def filename(node) "#{node.id} #{node.title}.md" end
folder(node)
click to toggle source
# File lib/assets/lib/colonize_repo.rb, line 47 def folder(node) dir = '' n = node while n != @node.root && n.parent != @node.root dir = File.join("#{n.parent.id} #{n.parent.title}", dir) n = n.parent end dir end
source(node)
click to toggle source
# File lib/assets/lib/colonize_repo.rb, line 41 def source(node) fld = folder(node) src = filename(node) fld.empty? ? src : File.join(fld, src) end
text(node)
click to toggle source
TODO replace to services
# File lib/assets/lib/colonize_repo.rb, line 62 def text(node) RenderErb.(erb: TEMPLATE, object: node) end
write(node)
click to toggle source
TODO callback? and calback for ReadNode.()?
# File lib/assets/lib/colonize_repo.rb, line 19 def write(node) dir = folder(node) src = source(node) txt = text(node) unless dir.empty? || Dir.exist?(dir) Dir.mkdir(dir) @on_create_dir.call(dir) if @on_create_dir end File.write(src, txt) @on_create_file.call(src) if @on_create_file node.items.reject{|n| n.items.empty?}.each{|n| write(n)} end