Sha256: 1c020e9d59be181013ef919e1216b75c1751afeef168f47709e3abf0a54786ff

Contents?: true

Size: 906 Bytes

Versions: 2

Compression:

Stored size: 906 Bytes

Contents

require 'bundler/console/version'

module Bundler
  module Console
    class Command
      Plugin::API.command('console', self)

      def exec(_, args)
        if args.any?
          Bundler.require(:default, *args.map!(&:to_sym))
        else
          Bundler.require
        end

        ARGV.clear
        get_console(Bundler.settings[:console] || 'irb').start
      end

      private

      def get_console(name)
        require name
        get_constant(name)
      rescue LoadError
        Bundler.ui.error("Couldn't load console #{name}, falling back to irb")
        require 'irb'
        get_constant('irb')
      end

      def get_constant(name)
        const_name = { 'pry' => :Pry, 'ripl' => :Ripl, 'irb' => :IRB }[name]
        Object.const_get(const_name)
      rescue NameError
        Bundler.ui.error("Could not find constant #{const_name}")
        exit 1
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bundler-console-0.0.2 lib/bundler/console.rb
bundler-console-0.0.1 lib/bundler/console.rb