Class: Clerq::Cli
Class Method Summary collapse
Instance Method Summary collapse
- #build ⇒ Object
- #check ⇒ Object
- #new(project) ⇒ Object
- #node(id, title = '') ⇒ Object
- #promo ⇒ Object
- #toc ⇒ Object
- #version ⇒ Object
Class Method Details
.source_root ⇒ Object
13 14 15 |
# File 'lib/clerq/cli.rb', line 13 def self.source_root File.join Clerq.root, "lib/assets" end |
Instance Method Details
#build ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/clerq/cli.rb', line 94 def build stop_unless_clerq! document = [:output] || Clerq.document + '.md' template = [:tt] || Clerq.template build = File.join(Clerq.bin, document) node = LoadAssembly.() node = QueryNode.(assembly: node, query: [:query]) if [:query] text = RenderNode.(node: node, template: template) File.write(build, text) say "'#{build}' created!" rescue StandardError => e stop!(e.) end |
#check ⇒ Object
110 111 112 113 114 |
# File 'lib/clerq/cli.rb', line 110 def check stop_unless_clerq! puts "Checking assembly for writing errors..." CheckAssembly.(LoadAssembly.()) end |
#new(project) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/clerq/cli.rb', line 57 def new(project) stop! "'#{project}' folder already exists!" if Dir.exist?(project) say "Creating project '#{project}'..." settings = Clerq.settings tts = [ {tt: 'new/README.md.tt', target: 'README.md'}, {tt: 'new/clerq.yml.tt', target: Clerq::Settings::STORAGE}, {tt: 'new/clerq.thor.tt', target: thor_filename(project)}, {tt: 'new/content.md.tt', target: File.join(settings.src, "#{project}.md")} ] config = {project: project, klass: ruby_class_name(project)} Dir.mkdir(project) Dir.chdir(project) do settings.folders.each{|f| Dir.mkdir(f)} tts.each do |tt| template(tt[:tt], File.join(Dir.pwd, tt[:target]), config) end directory('tt', File.join(Dir.pwd, 'tt')) directory('lib', File.join(Dir.pwd, 'lib')) say "Project created!" end end |
#node(id, title = '') ⇒ Object
133 134 135 136 137 138 139 |
# File 'lib/clerq/cli.rb', line 133 def node(id, title = '') stop_unless_clerq! fn = CreateNode.(id: id, title: title, template: [:template] || '') say "'#{fn}' created" rescue StandardError => e stop!(e.) end |
#promo ⇒ Object
84 85 86 87 88 |
# File 'lib/clerq/cli.rb', line 84 def promo say "Copying promo content ..." directory('promo', Dir.pwd) say "Copied!" end |
#toc ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/clerq/cli.rb', line 118 def toc stop_unless_clerq! node = LoadAssembly.() node = QueryNode.(assembly: node, query: [:query]) if [:query] puts "% #{node.title}" puts "% #{node[:query]}" if node[:query] node.to_a.drop(1).each{|n| puts "#{' ' * (n.nesting_level - 1)}[#{n.id}] #{n.title}" } rescue StandardError => e stop!(e.) end |
#version ⇒ Object
18 19 20 |
# File 'lib/clerq/cli.rb', line 18 def version puts "Clerq v#{Clerq::VERSION}" end |