class Pry::Command::Play
Public Instance Methods
code_object()
click to toggle source
# File lib/pry/commands/play.rb, line 74 def code_object Pry::Code.new(content) end
content()
click to toggle source
# File lib/pry/commands/play.rb, line 82 def content if should_use_default_file? file_content else @cc.content end end
content_after_options()
click to toggle source
# File lib/pry/commands/play.rb, line 60 def content_after_options if opts.present?(:open) restrict_to_lines(content, (0..-2)) elsif opts.present?(:expression) content_at_expression else content end end
content_at_expression()
click to toggle source
# File lib/pry/commands/play.rb, line 70 def content_at_expression code_object.expression_at(opts[:expression]) end
default_file()
click to toggle source
The file to play from when no code object is specified. e.g `play –lines 4..10`
# File lib/pry/commands/play.rb, line 92 def default_file file = if target.respond_to?(:source_location) target.source_location.first else target.eval("__FILE__") end file && File.expand_path(file) end
file_content()
click to toggle source
# File lib/pry/commands/play.rb, line 102 def file_content if !default_file || !File.exist?(default_file) raise CommandError, "File does not exist! File was: #{default_file.inspect}" end @cc.restrict_to_lines(File.read(default_file), @cc.line_range) end
options(opt)
click to toggle source
# File lib/pry/commands/play.rb, line 29 def options(opt) CodeCollector.inject_options(opt) opt.on :open, 'Plays the selected content except the last line. Useful' \ ' for replaying methods and leaving the method definition' \ ' "open". `amend-line` can then be used to' \ ' modify the method.' opt.on :e, :expression=, 'Executes until end of valid expression', as: Integer opt.on :p, :print, 'Prints executed code' end
perform_play()
click to toggle source
# File lib/pry/commands/play.rb, line 48 def perform_play eval_string << content_after_options run "fix-indent" end
process()
click to toggle source
# File lib/pry/commands/play.rb, line 41 def process @cc = CodeCollector.new(args, opts, pry_instance) perform_play show_input end
should_use_default_file?()
click to toggle source
# File lib/pry/commands/play.rb, line 78 def should_use_default_file? !args.first && !opts.present?(:in) && !opts.present?(:out) end
show_input()
click to toggle source
# File lib/pry/commands/play.rb, line 53 def show_input return unless opts.present?(:print) return unless Pry::Code.complete_expression?(eval_string) run 'show-input' end