Sha256: 2da2369c36f5b64ba26947f215be4529545a06f3c1ce29aa94c7c1f30b02f087

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

# CLI Module
module Middleman::Cli

  # A thor task for creating new projects
  class Console < Thor
    include Thor::Actions

    check_unknown_options!

    namespace :console

    desc 'console [options]', 'Start an interactive console in the context of your Middleman application'
    method_option :environment,
      :aliases => '-e',
      :default => ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development',
      :desc    => 'The environment Middleman will run under'
    method_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.server.inst do
        if opts[:environment]
          set :environment, opts[:environment].to_sym
        end

        logger(opts[:debug] ? 0 : 1, opts[:instrumenting] || false)
      end

      # TODO: get file watcher / reload! working in console

      IRB.setup nil
      IRB.conf[:MAIN_CONTEXT] = IRB::Irb.new.context
      require 'irb/ext/multi-irb'
      IRB.irb nil, @app
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
middleman-core-3.2.2 lib/middleman-core/cli/console.rb