diff --git a/spec/commands/play_spec.rb b/spec/commands/play_spec.rb index ba1ba438..c2e967ce 100644 --- a/spec/commands/play_spec.rb +++ b/spec/commands/play_spec.rb @@ -3,13 +3,10 @@ require 'helper' describe "play" do before do @t = pry_tester + @eval_str = '' end describe "with an argument" do - before do - @eval_str = '' - end - describe "string variable" do it "without --lines switch" do @t.eval 'x = "\"hello\""' @@ -67,91 +64,78 @@ describe "play" do end end - it 'should play documentation with the -d switch' do - eval_str = '' - o = Object.new - - # @v = 10 - # @y = 20 - def o.test_method - :test_method_content - end - - pry_tester(o).process_command 'play -d test_method', eval_str - - eval_str.should == unindent(<<-STR) - @v = 10 - @y = 20 - STR - end - - it 'should restrict -d switch with --lines' do - eval_str = '' - o = Object.new - - # @x = 0 - # @v = 10 - # @y = 20 - # @z = 30 - def o.test_method - :test_method_content - end - - pry_tester(o).process_command 'play -d test_method --lines 2..3', eval_str - - eval_str.should == unindent(<<-STR) - @v = 10 - @y = 20 - STR - end - - it 'should play a method with the -m switch (a single line)' do - eval_str = '' - o = Object.new - - def o.test_method - :test_method_content - end - - pry_tester(o).process_command 'play -m test_method --lines 2', eval_str - - eval_str.should == " :test_method_content\n" - end - - it 'should APPEND to the input buffer when playing a line with play -m, not replace it' do - eval_str = unindent(<<-STR) - def another_test_method - STR - - o = Object.new - def o.test_method - :test_method_content - end - - pry_tester(o).process_command 'play -m test_method --lines 2', eval_str - - eval_str.should == unindent(<<-STR) - def another_test_method + describe "without argument (switches only)" do + before do + @o = Object.new + def @o.test_method :test_method_content - STR - end - - it 'should play a method with the -m switch (multiple line)' do - eval_str = '' - o = Object.new - - def o.test_method - @var0 = 10 - @var1 = 20 - @var2 = 30 - @var3 = 40 + end end - pry_tester(o).process_command 'play -m test_method --lines 3..4', eval_str + it 'should play documentation with the -d switch' do + # @v = 10 + # @y = 20 + def @o.test_method + :test_method_content + end - eval_str.should == unindent(<<-STR, 2) - @var1 = 20 - @var2 = 30 - STR + pry_tester(@o).process_command 'play -d test_method', @eval_str + + @eval_str.should == unindent(<<-STR) + @v = 10 + @y = 20 + STR + end + + it 'should restrict -d switch with --lines' do + # @x = 0 + # @v = 10 + # @y = 20 + # @z = 30 + def @o.test_method + :test_method_content + end + + pry_tester(@o).process_command 'play -d test_method --lines 2..3', @eval_str + + @eval_str.should == unindent(<<-STR) + @v = 10 + @y = 20 + STR + end + + it 'should play a method with the -m switch (a single line)' do + pry_tester(@o).process_command 'play -m test_method --lines 2', @eval_str + @eval_str.should == " :test_method_content\n" + end + + it 'should APPEND to the input buffer when playing a line with play -m, not replace it' do + @eval_str = unindent(<<-STR) + def another_test_method + STR + + pry_tester(@o).process_command 'play -m test_method --lines 2', @eval_str + + @eval_str.should == unindent(<<-STR) + def another_test_method + :test_method_content + STR + end + + it 'should play a method with the -m switch (multiple line)' do + def @o.test_method + @var0 = 10 + @var1 = 20 + @var2 = 30 + @var3 = 40 + end + + pry_tester(@o).process_command 'play -m test_method --lines 3..4', @eval_str + + @eval_str.should == unindent(<<-STR, 2) + @var1 = 20 + @var2 = 30 + STR + end end end