Sha256: 137a02efd166e84dda7c149c84976d91a828d840cfc250fb3dc7020c01759172

Contents?: true

Size: 1.8 KB

Versions: 1

Compression:

Stored size: 1.8 KB

Contents

# encoding: utf-8

module Nanoc3::CLI::Commands

  class Debug < Cri::Command

    def name
      'debug'
    end

    def aliases
      []
    end

    def short_desc
      'show debug information for this site'
    end

    def long_desc
      'Show information about all items, item representations and layouts ' \
      'in the current site.'
    end

    def usage
      "nanoc3 debug"
    end

    def option_definitions
      []
    end

    def run(options, arguments)
      # Make sure we are in a nanoc site directory
      print "Loading site data... "
      @base.require_site
      @base.site.load_data
      puts "done"
      puts

      # Get data
      items   = @base.site.items
      reps    = items.map { |i| i.reps }.flatten
      layouts = @base.site.layouts

      # Get dependency tracker
      # FIXME clean this up
      dependency_tracker = @base.site.compiler.send(:dependency_tracker)
      dependency_tracker.load_graph

      # Print items
      puts '=== Items'
      puts
      row = 0
      items.sort_by { |i| i.identifier }.each do |item|
        puts "item #{item.identifier}:"

        # Print item dependencies
        puts "  dependencies:"
        predecessors = dependency_tracker.direct_predecessors_of(item).sort_by { |i| i.identifier }
        predecessors.each do |pred|
          puts "    #{pred.identifier}"
        end
        puts "    (nothing)" if predecessors.empty?

        # Print item representations
        puts "  representations:"
        item.reps.sort_by { |r| r.name.to_s }.each do |rep|
          puts "    #{rep.name} -> #{rep.raw_path || '(not written)'}"
        end

        # Done
        puts
      end
      puts

      # Print layouts
      puts '=== Layouts'
      puts
      layouts.each do |layout|
        puts "layout #{layout.identifier}"
      end
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nanoc3-3.1.0b2 lib/nanoc3/cli/commands/debug.rb