Class: Nanoc3::CLI::Commands::Compile
- Cri::Command
- Nanoc3::CLI::Commands::Compile
Public Visibility
Public Instance Method Summary
| #aliases | |
|---|---|
| #long_desc | |
| #name | |
| #option_definitions | |
| #run(options, arguments) | |
| #short_desc | |
| #usage |
Public Instance Method Details
aliases
public
aliases
[View source]
11 12 13 |
# File 'lib/nanoc3/cli/commands/compile.rb', line 11 def aliases [] end |
long_desc
public
long_desc
[View source]
19 20 21 22 23 24 25 26 27 |
# File 'lib/nanoc3/cli/commands/compile.rb', line 19 def long_desc 'Compile all items of the current site. If an identifier is given, ' + 'only the item with the given identifier will be compiled. ' + "\n\n" + 'By default, only item that are outdated will be compiled. This can ' + 'speed up the compilation process quite a bit, but items that include ' + 'content from other items may have to be recompiled manually. In ' + 'order to compile items even when they are outdated, use the --force option.' end |
name
public
name
[View source]
7 8 9 |
# File 'lib/nanoc3/cli/commands/compile.rb', line 7 def name 'compile' end |
option_definitions
public
option_definitions
[View source]
33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/nanoc3/cli/commands/compile.rb', line 33 def option_definitions [ # --all { :long => 'all', :short => 'a', :argument => :forbidden, :desc => 'alias for --force (DEPRECATED)' }, # --force { :long => 'force', :short => 'f', :argument => :forbidden, :desc => 'compile items even when they are not outdated' } ] end |
run
public
run(options, arguments)
[View source]
48 49 50 51 52 53 54 55 56 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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/nanoc3/cli/commands/compile.rb', line 48 def run(, arguments) # Make sure we are in a nanoc site directory puts "Loading site data..." @base.require_site @base.site.load_data # Check presence of --all option if .has_key?(:all) $stderr.puts "Warning: the --all option is deprecated; please use --force instead." end # Find item(s) to compile if arguments.size == 0 item = nil elsif arguments.size == 1 # Find item identifier = arguments[0].cleaned_identifier item = @base.site.items.find { |item| item.identifier == identifier } # Ensure item if item.nil? $stderr.puts "Unknown item: #{identifier}" exit 1 end end # Give feedback puts "Compiling #{item.nil? ? 'site' : 'item'}..." # Initialize profiling stuff time_before = Time.now @filter_times ||= {} @times_stack ||= [] setup_notifications # Compile @base.site.compiler.run( item, :force => .has_key?(:all) || .has_key?(:force) ) # Find reps reps = @base.site.items.map { |i| i.reps }.flatten # Show skipped reps reps.select { |r| !r.compiled? }.each do |rep| next if rep.raw_path.nil? duration = @rep_times[rep.raw_path] Nanoc3::CLI::Logger.instance.file(:low, :skip, rep.raw_path, duration) end # Give general feedback puts puts "No items were modified." unless reps.any? { |r| r.modified? } puts "#{item.nil? ? 'Site' : 'Item'} compiled in #{format('%.2f', Time.now - time_before)}s." if .has_key?(:verbose) print_state_feedback(reps) print_profiling_feedback(reps) end rescue Interrupt => e exit(1) rescue StandardError, ScriptError => e print_error(e) exit(1) end |
short_desc
public
short_desc
[View source]
15 16 17 |
# File 'lib/nanoc3/cli/commands/compile.rb', line 15 def short_desc 'compile items of this site' end |
usage
public
usage
[View source]
29 30 31 |
# File 'lib/nanoc3/cli/commands/compile.rb', line 29 def usage "nanoc3 compile [options] [identifier]" end |