class Atom::Scaffold
Public Class Methods
create(root_dir)
click to toggle source
# File lib/atom/scaffold.rb, line 3 def self.create(root_dir) dirs = [ 'source', ['source', 'topics'], ['source', 'maps'], 'config', 'temp', 'output', ['output', 'html'], 'templates', 'plugins' ] if mkdirs(root_dir, dirs) mk_dotatom(root_dir) mk_dotgitignore(root_dir) mk_atom(root_dir) mk_concept(root_dir) mk_procedure(root_dir) mk_map(root_dir) mk_html_skeleton(root_dir) end end
mk_atom(root_dir)
click to toggle source
# File lib/atom/scaffold.rb, line 43 def self.mk_atom(root_dir) $stdout.puts "create [File]: #{root_dir}/config/atom.yml" File.open("#{root_dir}/config/atom.yml", "w") do |file| file.puts <<EOS markup: textile plugins: { pre: [], post: [] } EOS end end
mk_concept(root_dir)
click to toggle source
# File lib/atom/scaffold.rb, line 55 def self.mk_concept(root_dir) $stdout.puts "create [File]: #{root_dir}/templates/concept.textile" File.open("#{root_dir}/templates/concept.textile", "w") do |file| file.puts <<EOS --- author: {{author}} class: concept --- h1(topic-title). {{title}} EOS end end
mk_dotatom(root_dir)
click to toggle source
# File lib/atom/scaffold.rb, line 27 def self.mk_dotatom(root_dir) $stdout.puts "create [File]: #{root_dir}/.atom" FileUtils.touch "#{root_dir}/.atom" end
mk_dotgitignore(root_dir)
click to toggle source
# File lib/atom/scaffold.rb, line 32 def self.mk_dotgitignore(root_dir) $stdout.puts "create [File]: #{root_dir}/.gitignore" File.open("#{root_dir}/.gitignore", "w") do |file| file.puts <<EOS config/ output/ temp/ EOS end end
mk_html_skeleton(root_dir)
click to toggle source
# File lib/atom/scaffold.rb, line 112 def self.mk_html_skeleton(root_dir) $stdout.puts "create [File]: #{root_dir}/templates/default.html" File.open("#{root_dir}/templates/default.html", "w") do |file| file.puts <<EOS <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>{{title}}</title> </head> <body> {{{body}}} </body> </html> EOS end end
mk_map(root_dir)
click to toggle source
# File lib/atom/scaffold.rb, line 93 def self.mk_map(root_dir) $stdout.puts "create [File]: #{root_dir}/templates/map.textile" File.open("#{root_dir}/templates/map.textile", "w") do |file| file.puts <<EOS --- author: {{author}} class: map --- h1(map-title). {{title}} To include topics in this document, begin a line with @=@ followed by a space and the title of the topic. Like so: bc. = Title of My Topic EOS end end
mk_procedure(root_dir)
click to toggle source
# File lib/atom/scaffold.rb, line 70 def self.mk_procedure(root_dir) $stdout.puts "create [File]: #{root_dir}/templates/procedure.textile" File.open("#{root_dir}/templates/procedure.textile", "w") do |file| file.puts <<EOS --- author: {{author}} class: procedure --- h1(topic-title). {{title}} p(preparation). Before you begin h2. Procedure # Step 1 p(result). Result of procedure EOS end end
mkdirs(root_dir, dirs)
click to toggle source
# File lib/atom/scaffold.rb, line 130 def self.mkdirs(root_dir, dirs) if File.exist? root_dir raise "'#{root_dir}' already exists" return false end FileUtils.mkdir root_dir dirs.each do |dir| $stdout.puts "create [Dir]: #{File.join(root_dir, dir)}" FileUtils.mkdir "#{File.join(root_dir, dir)}" end end