Class: Nanoc3::CLI::Commands::Info

### Home Classes Methods

### In Files

- lib/nanoc3/cli/commands/info.rb

### Parent

Cri::Command

### Methods

- #aliases
- #long_desc
- #name
- #option_definitions
- #run
- #short_desc
- #usage

### Files

- ChangeLog
- LICENSE

### Class/Module Index

Quicksearch

- Nanoc3
- Nanoc3::ArrayExtensions
- Nanoc3::CLI
- Nanoc3::CLI::Base
- Nanoc3::CLI::Commands
- Nanoc3::CLI::Commands::Autocompile
- Nanoc3::CLI::Commands::Compile
- Nanoc3::CLI::Commands::CreateItem
- Nanoc3::CLI::Commands::CreateLayout
- Nanoc3::CLI::Commands::CreateSite
- Nanoc3::CLI::Commands::Debug
- Nanoc3::CLI::Commands::Help
- Nanoc3::CLI::Commands::Info
- Nanoc3::CLI::Commands::Update
- Nanoc3::CLI::Commands::View
- Nanoc3::CLI::Logger
- Nanoc3::CodeSnippet
- Nanoc3::Compiler
- Nanoc3::CompilerDSL
- Nanoc3::Context
- Nanoc3::DataSource
- Nanoc3::DataSources
- Nanoc3::DataSources::Delicious
- Nanoc3::DataSources::Filesystem
- Nanoc3::DataSources::FilesystemUnified
- Nanoc3::DataSources::FilesystemVerbose
- Nanoc3::DataSources::LastFM
- Nanoc3::DataSources::Twitter
- Nanoc3::DependencyTracker
- Nanoc3::DirectedGraph
- Nanoc3::Errors
- Nanoc3::Errors::CannotDetermineFilter
- Nanoc3::Errors::CannotLayoutBinaryItem
- Nanoc3::Errors::CannotUseBinaryFilter
- Nanoc3::Errors::CannotUseTextualFilter
- Nanoc3::Errors::DataNotYetAvailable
- Nanoc3::Errors::Generic
- Nanoc3::Errors::NoMatchingCompilationRuleFound
- Nanoc3::Errors::NoMatchingRoutingRuleFound
- Nanoc3::Errors::NoRulesFileFound
- Nanoc3::Errors::RecursiveCompilation
- Nanoc3::Errors::UnknownDataSource
- Nanoc3::Errors::UnknownFilter
- Nanoc3::Errors::UnknownLayout
- Nanoc3::Errors::UnmetDependency
- Nanoc3::Extra
- Nanoc3::Extra::AutoCompiler
- Nanoc3::Extra::CHiCk
- Nanoc3::Extra::CHiCk::CacheController
- Nanoc3::Extra::CHiCk::Client
- Nanoc3::Extra::CHiCk::RackClient
- Nanoc3::Extra::Deployers
- Nanoc3::Extra::Deployers::Rsync
- Nanoc3::Extra::FileProxy
- Nanoc3::Extra::TimeExtensions
- Nanoc3::Extra::VCS
- Nanoc3::Extra::VCSes
- Nanoc3::Extra::VCSes::Bazaar
- Nanoc3::Extra::VCSes::Dummy
- Nanoc3::Extra::VCSes::Git
- Nanoc3::Extra::VCSes::Mercurial
- Nanoc3::Extra::VCSes::Subversion
- Nanoc3::Extra::Validators
- Nanoc3::Extra::Validators::Links
- Nanoc3::Extra::Validators::Links::EachPairEnumerator
- Nanoc3::Extra::Validators::W3C
- Nanoc3::Filter
- Nanoc3::Filters
- Nanoc3::Filters::BlueCloth
- Nanoc3::Filters::CodeRay
- Nanoc3::Filters::ColorizeSyntax
- Nanoc3::Filters::ERB
- Nanoc3::Filters::Erubis
- Nanoc3::Filters::Haml
- Nanoc3::Filters::Kramdown
- Nanoc3::Filters::Less
- Nanoc3::Filters::Markaby
- Nanoc3::Filters::Maruku
- Nanoc3::Filters::RDiscount
- Nanoc3::Filters::RDoc
- Nanoc3::Filters::Rainpress
- Nanoc3::Filters::RedCloth
- Nanoc3::Filters::RelativizePaths
- Nanoc3::Filters::RubyPants
- Nanoc3::Filters::Sass
- Nanoc3::HashExtensions
- Nanoc3::Helpers
- Nanoc3::Helpers::Blogging
- Nanoc3::Helpers::Breadcrumbs
- Nanoc3::Helpers::Capturing
- Nanoc3::Helpers::Filtering
- Nanoc3::Helpers::HTMLEscape
- Nanoc3::Helpers::LinkTo
- Nanoc3::Helpers::Rendering
- Nanoc3::Helpers::Tagging
- Nanoc3::Helpers::Text
- Nanoc3::Helpers::XMLSitemap
- Nanoc3::Item
- Nanoc3::ItemRep
- Nanoc3::Layout
- Nanoc3::NotificationCenter
- Nanoc3::PluginRegistry
- Nanoc3::PluginRegistry::PluginMethods
- Nanoc3::Rule
- Nanoc3::RuleContext
- Nanoc3::Site
- Nanoc3::StringExtensions
- Nanoc3::Tasks
- Nanoc3::Tasks::Clean
- Array
- Enumerable
- Hash
- Object
- OrderedHash
- String
- Time

No matching classes.

# Nanoc3::CLI::Commands::Info

### Constants

PLUGIN_CLASSES
PLUGIN_CLASS_ORDER

### Public Instance Methods

aliases() click to toggle source

    # File lib/nanoc3/cli/commands/info.rb, line 10
    def aliases
      []
    end

long_desc() click to toggle source

    # File lib/nanoc3/cli/commands/info.rb, line 18
    def long_desc
      'Show a list of available plugins, including filters, data sources ' +
      'and VCSes. If the current directory contains a nanoc web site, ' +
      'the plugins defined in this site will be shown as well.'
    end

name() click to toggle source

    # File lib/nanoc3/cli/commands/info.rb, line 6
    def name
      'info'
    end

option_definitions() click to toggle source

    # File lib/nanoc3/cli/commands/info.rb, line 28
    def option_definitions
      []
    end

run(options, arguments) click to toggle source

    # File lib/nanoc3/cli/commands/info.rb, line 32
    def run(options, arguments)
      # Check arguments
      if arguments.size != 0
        $stderr.puts "usage: #{usage}"
        exit 1
      end

      # Get list of plugins (before and after)
      plugins_before = Nanoc3::Plugin.all
      @base.site
      @base.site.load_data if @base.site
      plugins_after  = Nanoc3::Plugin.all

      # Divide list of plugins into builtin and custom
      plugins_builtin = plugins_before
      plugins_custom  = plugins_after - plugins_before

      # Find max identifiers length
      plugin_with_longest_identifiers = plugins_after.inject do |longest, current|
        longest[:identifiers].join(', ').size > current[:identifiers].join(', ').size ? longest : current
      end
      max_identifiers_length = plugin_with_longest_identifiers[:identifiers].join(', ').size

      PLUGIN_CLASS_ORDER.each do |superclass|
        plugins_with_this_superclass = {
          :builtin => plugins_builtin.select { |p| p[:superclass] == superclass },
          :custom  => plugins_custom.select  { |p| p[:superclass] == superclass }
        }

        # Print kind
        kind = name_for_plugin_class(superclass)
        puts "#{kind}:"
        puts

        # Print plugins organised by subtype
        [ :builtin, :custom ].each do |type|
          # Find relevant plugins
          relevant_plugins = plugins_with_this_superclass[type]

          # Print type
          puts "  #{type}:"
          if relevant_plugins.empty?
            puts "    (none)"
            next
          end

          # Print plugins
          relevant_plugins.sort_by { |k| k[:identifiers].join(', ') }.each do |plugin|
            # Display
            puts sprintf(
              "    %-#{max_identifiers_length}s (%s)",
              plugin[:identifiers].join(', '),
              plugin[:class].to_s.sub(/^::/, '')
            )
          end
        end

        puts
      end
    end

short_desc() click to toggle source

    # File lib/nanoc3/cli/commands/info.rb, line 14
    def short_desc
      'show info about available plugins'
    end

usage() click to toggle source

    # File lib/nanoc3/cli/commands/info.rb, line 24
    def usage
      "nanoc3 info [options]"
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.