Sha256: 88f4ccd068382642c40496b30af1e3b06378417737c05bd612371622cc842e7e

Contents?: true

Size: 1.42 KB

Versions: 47

Compression:

Stored size: 1.42 KB

Contents

# CLI Module
module Middleman::Cli
  # The CLI Console class
  class Console < Thor::Group
    include Thor::Actions

    check_unknown_options!

    class_option :environment,
                 aliases: '-e',
                 default: ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development',
                 desc: 'The environment Middleman will run under'
    class_option :verbose,
                 type: :boolean,
                 default: false,
                 desc: 'Print debug messages'
    def console
      require 'middleman-core'
      require 'irb'

      opts = {
        environment: options['environment'],
        debug: options['verbose']
      }

      @app = ::Middleman::Application.new do
        config[:environment] = opts[:environment].to_sym if opts[:environment]

        ::Middleman::Logger.singleton(opts[:debug] ? 0 : 1, opts[:instrumenting] || false)
      end

      self.class.interact_with @app
    end

    # Start an interactive console in the context of the provided object.
    # @param [Object] context
    # @return [void]
    def self.interact_with(context)
      IRB.setup nil
      IRB.conf[:MAIN_CONTEXT] = IRB::Irb.new.context
      require 'irb/ext/multi-irb'
      IRB.irb nil, context
    end

    # Add to CLI
    Base.register(self, 'console', 'console [options]', 'Start an interactive console in the context of your Middleman application')

    # Map "c" to "console"
    Base.map('c' => 'console')
  end
end

Version data entries

47 entries across 47 versions & 2 rubygems

Version Path
middleman-cli-4.6.0 lib/middleman-cli/console.rb
middleman-cli-4.5.1 lib/middleman-cli/console.rb
middleman-cli-4.5.0 lib/middleman-cli/console.rb
middleman-cli-4.4.3 lib/middleman-cli/console.rb
middleman-cli-4.4.2 lib/middleman-cli/console.rb
middleman-cli-4.4.0 lib/middleman-cli/console.rb
middleman-cli-4.3.11 lib/middleman-cli/console.rb
middleman-cli-4.3.10 lib/middleman-cli/console.rb
middleman-cli-4.3.8 lib/middleman-cli/console.rb
middleman-cli-4.3.7 lib/middleman-cli/console.rb
files.com-1.0.55 docs/vendor/bundle/ruby/2.5.0/gems/middleman-cli-4.3.3/lib/middleman-cli/console.rb
middleman-cli-4.3.6 lib/middleman-cli/console.rb
middleman-cli-4.3.5 lib/middleman-cli/console.rb
middleman-cli-5.0.0.rc.1 lib/middleman-cli/console.rb
middleman-cli-4.3.4 lib/middleman-cli/console.rb
middleman-cli-4.3.3 lib/middleman-cli/console.rb
middleman-cli-4.3.2 lib/middleman-cli/console.rb
middleman-cli-4.3.1 lib/middleman-cli/console.rb
middleman-cli-4.3.0 lib/middleman-cli/console.rb
middleman-cli-4.3.0.rc.4 lib/middleman-cli/console.rb