Sha256: 2eee547aef51105025afaf6a20c969add479d2c65f962bef9093bf6fd126c5c1

Contents?: true

Size: 1.3 KB

Versions: 17

Compression:

Stored size: 1.3 KB

Contents

usage 'shell'
summary 'open a shell on the Nanoc environment'
aliases 'console'
description "
Open an IRB shell on a context that contains @items, @layouts, and @config.
"

module Nanoc::CLI::Commands
  class Shell < ::Nanoc::CLI::CommandRunner
    def run
      require 'pry'

      load_site

      Nanoc::Int::Context.new(env).pry
    end

    protected

    def env
      self.class.env_for_site(site)
    end

    def self.reps_for(site)
      Nanoc::Int::ItemRepRepo.new.tap do |reps|
        action_provider = Nanoc::Int::ActionProvider.named(:rule_dsl).for(site)
        builder = Nanoc::Int::ItemRepBuilder.new(site, action_provider, reps)
        builder.run
      end
    end

    def self.view_context_for(site)
      Nanoc::ViewContext.new(
        reps: reps_for(site),
        items: site.items,
        dependency_tracker: Nanoc::Int::DependencyTracker::Null.new,
        compilation_context: nil,
        snapshot_repo: nil,
      )
    end

    def self.env_for_site(site)
      view_context = view_context_for(site)

      {
        items: Nanoc::ItemCollectionWithRepsView.new(site.items, view_context),
        layouts: Nanoc::LayoutCollectionView.new(site.layouts, view_context),
        config: Nanoc::ConfigView.new(site.config, view_context),
      }
    end
  end
end

runner Nanoc::CLI::Commands::Shell

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
nanoc-4.7.9 lib/nanoc/cli/commands/shell.rb
nanoc-4.7.8 lib/nanoc/cli/commands/shell.rb
nanoc-4.7.7 lib/nanoc/cli/commands/shell.rb
nanoc-4.7.6 lib/nanoc/cli/commands/shell.rb
nanoc-4.7.5 lib/nanoc/cli/commands/shell.rb
nanoc-4.7.4 lib/nanoc/cli/commands/shell.rb
nanoc-4.7.3 lib/nanoc/cli/commands/shell.rb
nanoc-4.7.2 lib/nanoc/cli/commands/shell.rb
nanoc-4.7.1 lib/nanoc/cli/commands/shell.rb
nanoc-4.7.0 lib/nanoc/cli/commands/shell.rb
nanoc-4.6.4 lib/nanoc/cli/commands/shell.rb
nanoc-4.6.3 lib/nanoc/cli/commands/shell.rb
nanoc-4.6.2 lib/nanoc/cli/commands/shell.rb
nanoc-4.6.1 lib/nanoc/cli/commands/shell.rb
nanoc-4.6.0 lib/nanoc/cli/commands/shell.rb
nanoc-4.5.4 lib/nanoc/cli/commands/shell.rb
nanoc-4.5.3 lib/nanoc/cli/commands/shell.rb