Sha256: d0d06bd0ec1a3fb41cf02cf9c8c70608ea6ba1a022e9308ff3efbfa2ea584efd

Contents?: true

Size: 1.14 KB

Versions: 15

Compression:

Stored size: 1.14 KB

Contents

require 'pry'

class Pry
  class REPL
    # To make the console more useful, we make it so we flush the event registry
    # after each line.  This makes it so events are triggered after each line.
    # To accomplish this we monkey-patch pry.
    def repl
      loop do
        case val = read
        when :control_c
          output.puts ""
          pry.reset_eval_string
        when :no_more_input
          output.puts "" if output.tty?
          break
        else
          output.puts "" if val.nil? && output.tty?
          return pry.exit_value unless pry.eval(val)
        end

        # Flush after each line
        Volt::Computation.flush!
        Volt::Timers.flush_next_tick_timers!
      end
    end
  end
end

module Volt
  class Console
    def self.start
      require 'pry'

      $LOAD_PATH << 'lib'
      ENV['SERVER'] = 'true'

      require 'volt'
      require 'volt/boot'
      require 'volt/server/socket_connection_handler_stub'

      SocketConnectionHandlerStub.dispatcher = Dispatcher.new

      Volt.boot(Dir.pwd)

      Pry.config.prompt_name = 'volt'

      # start a REPL session
      # Pry.start

      $page.pry
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
volt-0.9.1.pre1 lib/volt/cli/console.rb
volt-0.9.0 lib/volt/cli/console.rb
volt-0.9.0.pre7 lib/volt/cli/console.rb
volt-0.9.0.pre6 lib/volt/cli/console.rb
volt-0.9.0.pre5 lib/volt/cli/console.rb
volt-0.9.0.pre4 lib/volt/cli/console.rb
volt-0.9.0.pre3 lib/volt/cli/console.rb
volt-0.9.0.pre2 lib/volt/cli/console.rb
volt-0.9.0.pre1 lib/volt/cli/console.rb
volt-0.8.27.beta9 lib/volt/cli/console.rb
volt-0.8.27.beta8 lib/volt/cli/console.rb
volt-0.8.27.beta7 lib/volt/cli/console.rb
volt-0.8.27.beta6 lib/volt/cli/console.rb
volt-0.8.27.beta5 lib/volt/cli/console.rb
volt-0.8.27.beta4 lib/volt/cli/console.rb