pry 0.9.12.6-i386-mingw32 → 0.10.0-i386-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +702 -0
  3. data/LICENSE +2 -2
  4. data/{README.markdown → README.md} +37 -31
  5. data/lib/pry.rb +38 -151
  6. data/lib/pry/cli.rb +35 -17
  7. data/lib/pry/code.rb +19 -63
  8. data/lib/pry/code/code_file.rb +103 -0
  9. data/lib/pry/code/code_range.rb +2 -1
  10. data/lib/pry/code/loc.rb +2 -2
  11. data/lib/pry/code_object.rb +40 -21
  12. data/lib/pry/color_printer.rb +55 -0
  13. data/lib/pry/command.rb +12 -9
  14. data/lib/pry/command_set.rb +81 -38
  15. data/lib/pry/commands.rb +1 -1
  16. data/lib/pry/commands/amend_line.rb +2 -2
  17. data/lib/pry/commands/bang.rb +1 -1
  18. data/lib/pry/commands/cat.rb +11 -2
  19. data/lib/pry/commands/cat/exception_formatter.rb +6 -7
  20. data/lib/pry/commands/cat/file_formatter.rb +15 -32
  21. data/lib/pry/commands/cat/input_expression_formatter.rb +1 -1
  22. data/lib/pry/commands/cd.rb +14 -3
  23. data/lib/pry/commands/change_inspector.rb +27 -0
  24. data/lib/pry/commands/change_prompt.rb +26 -0
  25. data/lib/pry/commands/code_collector.rb +4 -4
  26. data/lib/pry/commands/easter_eggs.rb +3 -3
  27. data/lib/pry/commands/edit.rb +10 -22
  28. data/lib/pry/commands/edit/exception_patcher.rb +2 -2
  29. data/lib/pry/commands/edit/file_and_line_locator.rb +0 -2
  30. data/lib/pry/commands/exit_program.rb +0 -1
  31. data/lib/pry/commands/find_method.rb +16 -22
  32. data/lib/pry/commands/gem_install.rb +5 -2
  33. data/lib/pry/commands/gem_open.rb +1 -1
  34. data/lib/pry/commands/gist.rb +10 -11
  35. data/lib/pry/commands/help.rb +14 -14
  36. data/lib/pry/commands/hist.rb +27 -8
  37. data/lib/pry/commands/install_command.rb +14 -12
  38. data/lib/pry/commands/list_inspectors.rb +35 -0
  39. data/lib/pry/commands/list_prompts.rb +35 -0
  40. data/lib/pry/commands/ls.rb +72 -296
  41. data/lib/pry/commands/ls/constants.rb +47 -0
  42. data/lib/pry/commands/ls/formatter.rb +49 -0
  43. data/lib/pry/commands/ls/globals.rb +48 -0
  44. data/lib/pry/commands/ls/grep.rb +21 -0
  45. data/lib/pry/commands/ls/instance_vars.rb +39 -0
  46. data/lib/pry/commands/ls/interrogatable.rb +18 -0
  47. data/lib/pry/commands/ls/jruby_hacks.rb +49 -0
  48. data/lib/pry/commands/ls/local_names.rb +35 -0
  49. data/lib/pry/commands/ls/local_vars.rb +39 -0
  50. data/lib/pry/commands/ls/ls_entity.rb +70 -0
  51. data/lib/pry/commands/ls/methods.rb +57 -0
  52. data/lib/pry/commands/ls/methods_helper.rb +46 -0
  53. data/lib/pry/commands/ls/self_methods.rb +32 -0
  54. data/lib/pry/commands/play.rb +44 -10
  55. data/lib/pry/commands/pry_backtrace.rb +1 -2
  56. data/lib/pry/commands/raise_up.rb +2 -2
  57. data/lib/pry/commands/reload_code.rb +16 -19
  58. data/lib/pry/commands/ri.rb +7 -3
  59. data/lib/pry/commands/shell_command.rb +18 -13
  60. data/lib/pry/commands/shell_mode.rb +2 -4
  61. data/lib/pry/commands/show_doc.rb +5 -0
  62. data/lib/pry/commands/show_info.rb +8 -13
  63. data/lib/pry/commands/show_source.rb +15 -3
  64. data/lib/pry/commands/simple_prompt.rb +1 -1
  65. data/lib/pry/commands/toggle_color.rb +8 -4
  66. data/lib/pry/commands/watch_expression.rb +105 -0
  67. data/lib/pry/commands/watch_expression/expression.rb +38 -0
  68. data/lib/pry/commands/whereami.rb +18 -10
  69. data/lib/pry/commands/wtf.rb +3 -3
  70. data/lib/pry/config.rb +20 -254
  71. data/lib/pry/config/behavior.rb +139 -0
  72. data/lib/pry/config/convenience.rb +26 -0
  73. data/lib/pry/config/default.rb +165 -0
  74. data/lib/pry/core_extensions.rb +31 -21
  75. data/lib/pry/editor.rb +107 -103
  76. data/lib/pry/exceptions.rb +77 -0
  77. data/lib/pry/helpers/base_helpers.rb +22 -109
  78. data/lib/pry/helpers/command_helpers.rb +10 -8
  79. data/lib/pry/helpers/documentation_helpers.rb +1 -2
  80. data/lib/pry/helpers/text.rb +4 -5
  81. data/lib/pry/history.rb +46 -45
  82. data/lib/pry/history_array.rb +6 -1
  83. data/lib/pry/hooks.rb +9 -29
  84. data/lib/pry/indent.rb +6 -6
  85. data/lib/pry/input_completer.rb +242 -0
  86. data/lib/pry/input_lock.rb +132 -0
  87. data/lib/pry/inspector.rb +27 -0
  88. data/lib/pry/last_exception.rb +61 -0
  89. data/lib/pry/method.rb +82 -87
  90. data/lib/pry/{commands/edit/method_patcher.rb → method/patcher.rb} +41 -38
  91. data/lib/pry/module_candidate.rb +4 -14
  92. data/lib/pry/object_path.rb +82 -0
  93. data/lib/pry/output.rb +50 -0
  94. data/lib/pry/pager.rb +193 -48
  95. data/lib/pry/plugins.rb +1 -1
  96. data/lib/pry/prompt.rb +26 -0
  97. data/lib/pry/pry_class.rb +149 -230
  98. data/lib/pry/pry_instance.rb +302 -413
  99. data/lib/pry/rbx_path.rb +1 -1
  100. data/lib/pry/repl.rb +202 -0
  101. data/lib/pry/repl_file_loader.rb +20 -26
  102. data/lib/pry/rubygem.rb +13 -5
  103. data/lib/pry/terminal.rb +2 -1
  104. data/lib/pry/test/helper.rb +26 -41
  105. data/lib/pry/version.rb +1 -1
  106. data/lib/pry/wrapped_module.rb +45 -59
  107. metadata +62 -225
  108. data/.document +0 -2
  109. data/.gitignore +0 -16
  110. data/.travis.yml +0 -25
  111. data/.yardopts +0 -1
  112. data/CHANGELOG +0 -534
  113. data/CONTRIBUTORS +0 -55
  114. data/Gemfile +0 -12
  115. data/Rakefile +0 -140
  116. data/TODO +0 -117
  117. data/lib/pry/completion.rb +0 -321
  118. data/lib/pry/custom_completions.rb +0 -6
  119. data/lib/pry/rbx_method.rb +0 -13
  120. data/man/pry.1 +0 -195
  121. data/man/pry.1.html +0 -204
  122. data/man/pry.1.ronn +0 -141
  123. data/pry.gemspec +0 -29
  124. data/spec/Procfile +0 -3
  125. data/spec/cli_spec.rb +0 -78
  126. data/spec/code_object_spec.rb +0 -277
  127. data/spec/code_spec.rb +0 -219
  128. data/spec/command_helpers_spec.rb +0 -29
  129. data/spec/command_integration_spec.rb +0 -644
  130. data/spec/command_set_spec.rb +0 -627
  131. data/spec/command_spec.rb +0 -821
  132. data/spec/commands/amend_line_spec.rb +0 -247
  133. data/spec/commands/bang_spec.rb +0 -19
  134. data/spec/commands/cat_spec.rb +0 -164
  135. data/spec/commands/cd_spec.rb +0 -250
  136. data/spec/commands/disable_pry_spec.rb +0 -25
  137. data/spec/commands/edit_spec.rb +0 -727
  138. data/spec/commands/exit_all_spec.rb +0 -34
  139. data/spec/commands/exit_program_spec.rb +0 -19
  140. data/spec/commands/exit_spec.rb +0 -34
  141. data/spec/commands/find_method_spec.rb +0 -70
  142. data/spec/commands/gem_list_spec.rb +0 -26
  143. data/spec/commands/gist_spec.rb +0 -79
  144. data/spec/commands/help_spec.rb +0 -56
  145. data/spec/commands/hist_spec.rb +0 -181
  146. data/spec/commands/jump_to_spec.rb +0 -15
  147. data/spec/commands/ls_spec.rb +0 -181
  148. data/spec/commands/play_spec.rb +0 -140
  149. data/spec/commands/raise_up_spec.rb +0 -56
  150. data/spec/commands/save_file_spec.rb +0 -177
  151. data/spec/commands/show_doc_spec.rb +0 -510
  152. data/spec/commands/show_input_spec.rb +0 -17
  153. data/spec/commands/show_source_spec.rb +0 -782
  154. data/spec/commands/whereami_spec.rb +0 -203
  155. data/spec/completion_spec.rb +0 -241
  156. data/spec/control_d_handler_spec.rb +0 -58
  157. data/spec/documentation_helper_spec.rb +0 -73
  158. data/spec/editor_spec.rb +0 -79
  159. data/spec/exception_whitelist_spec.rb +0 -21
  160. data/spec/fixtures/candidate_helper1.rb +0 -11
  161. data/spec/fixtures/candidate_helper2.rb +0 -8
  162. data/spec/fixtures/example.erb +0 -5
  163. data/spec/fixtures/example_nesting.rb +0 -33
  164. data/spec/fixtures/show_source_doc_examples.rb +0 -15
  165. data/spec/fixtures/testrc +0 -2
  166. data/spec/fixtures/testrcbad +0 -2
  167. data/spec/fixtures/whereami_helper.rb +0 -6
  168. data/spec/helper.rb +0 -34
  169. data/spec/helpers/bacon.rb +0 -86
  170. data/spec/helpers/mock_pry.rb +0 -43
  171. data/spec/helpers/table_spec.rb +0 -105
  172. data/spec/history_array_spec.rb +0 -67
  173. data/spec/hooks_spec.rb +0 -522
  174. data/spec/indent_spec.rb +0 -301
  175. data/spec/input_stack_spec.rb +0 -90
  176. data/spec/method_spec.rb +0 -482
  177. data/spec/prompt_spec.rb +0 -60
  178. data/spec/pry_defaults_spec.rb +0 -419
  179. data/spec/pry_history_spec.rb +0 -99
  180. data/spec/pry_output_spec.rb +0 -95
  181. data/spec/pry_spec.rb +0 -515
  182. data/spec/run_command_spec.rb +0 -25
  183. data/spec/sticky_locals_spec.rb +0 -157
  184. data/spec/syntax_checking_spec.rb +0 -81
  185. data/spec/wrapped_module_spec.rb +0 -261
  186. data/wiki/Customizing-pry.md +0 -397
  187. data/wiki/Home.md +0 -4
@@ -1,73 +0,0 @@
1
- require 'helper'
2
-
3
- describe Pry::Helpers::DocumentationHelpers do
4
- before do
5
- @helper = Pry::Helpers::DocumentationHelpers
6
- end
7
-
8
- describe "get_comment_content" do
9
- it "should strip off the hash and unindent" do
10
- @helper.get_comment_content(" # hello\n # world\n").should == "hello\nworld\n"
11
- end
12
-
13
- it "should strip out leading lines of hashes" do
14
- @helper.get_comment_content("###############\n#hello\n#world\n").should == "hello\nworld\n"
15
- end
16
-
17
- it "should remove shebangs" do
18
- @helper.get_comment_content("#!/usr/bin/env ruby\n# This is a program\n").should == "This is a program\n"
19
- end
20
-
21
- it "should unindent past separators" do
22
- @helper.get_comment_content(" # Copyright Me <me@cirw.in>\n #--\n # So there.\n").should == "Copyright Me <me@cirw.in>\n--\nSo there.\n"
23
- end
24
- end
25
-
26
- describe "process_rdoc" do
27
- before do
28
- Pry.color = true
29
- end
30
-
31
- after do
32
- Pry.color = false
33
- end
34
-
35
- it "should syntax highlight indented code" do
36
- @helper.process_rdoc(" 4 + 4\n").should.not == " 4 + 4\n"
37
- end
38
-
39
- it "should highlight words surrounded by +s" do
40
- @helper.process_rdoc("the +parameter+").should =~ /the \e.*parameter\e.*/
41
- end
42
-
43
- it "should syntax highlight things in backticks" do
44
- @helper.process_rdoc("for `Example`").should =~ /for `\e.*Example\e.*`/
45
- end
46
-
47
- it "should emphasise em tags" do
48
- @helper.process_rdoc("for <em>science</em>").should == "for \e[1mscience\e[0m"
49
- end
50
-
51
- it "should emphasise italic tags" do
52
- @helper.process_rdoc("for <i>science</i>").should == "for \e[1mscience\e[0m"
53
- end
54
-
55
- it "should syntax highlight code in <code>" do
56
- @helper.process_rdoc("for <code>Example</code>").should =~ /for \e.*Example\e.*/
57
- end
58
-
59
- it "should not double-highlight backticks inside indented code" do
60
- @helper.process_rdoc(" `echo 5`").should =~ /echo 5/
61
- end
62
-
63
- it "should not remove ++" do
64
- @helper.process_rdoc("--\n comment in a bubble\n++").should =~ /\+\+/
65
- end
66
-
67
- it "should do nothing if Pry.color is false" do
68
- Pry.color = false
69
- @helper.process_rdoc(" 4 + 4\n").should == " 4 + 4\n"
70
- end
71
- end
72
-
73
- end
@@ -1,79 +0,0 @@
1
- require 'pathname'
2
- require 'helper'
3
-
4
- describe Pry::Editor do
5
- class << Pry::Editor
6
- public :build_editor_invocation_string
7
- end
8
-
9
- before do
10
- # OS-specific tempdir name. For GNU/Linux it's "tmp", for Windows it's
11
- # something "Temp".
12
- @tf_dir =
13
- if Pry::Helpers::BaseHelpers.mri_19?
14
- Pathname.new(Dir::Tmpname.tmpdir)
15
- else
16
- Pathname.new(Dir.tmpdir)
17
- end
18
-
19
- @tf_path = File.join(@tf_dir.to_s, 'hello world.rb')
20
- end
21
-
22
- unless Pry::Helpers::BaseHelpers.windows?
23
- describe "build_editor_invocation_string" do
24
- before do
25
- class << Pry::Editor
26
- public :build_editor_invocation_string
27
- end
28
- end
29
-
30
- it 'should shell-escape files' do
31
- invocation_str = Pry::Editor.build_editor_invocation_string(@tf_path, 5, true)
32
- invocation_str.should =~ /#@tf_dir.+hello\\ world\.rb/
33
- end
34
- end
35
- end
36
-
37
- describe "build_editor_invocation_string on windows" do
38
- before do
39
- class << Pry::Editor
40
- def windows?; true; end
41
- end
42
- end
43
-
44
- after do
45
- class << Pry::Editor
46
- undef windows?
47
- end
48
- end
49
-
50
- it "should replace / by \\" do
51
- invocation_str = Pry::Editor.build_editor_invocation_string(@tf_path, 5, true)
52
- invocation_str.should =~ %r(\\#{@tf_dir.basename}\\)
53
- end
54
-
55
- it "should not shell-escape files" do
56
- invocation_str = Pry::Editor.build_editor_invocation_string(@tf_path, 5, true)
57
- invocation_str.should =~ /hello world\.rb/
58
- end
59
- end
60
-
61
- describe 'invoke_editor with a proc' do
62
- before do
63
- @old_editor = Pry.config.editor
64
- Pry.config.editor = proc{ |file, line, blocking|
65
- @file = file
66
- nil
67
- }
68
- end
69
-
70
- after do
71
- Pry.config.editor = @old_editor
72
- end
73
-
74
- it 'should not shell-escape files' do
75
- Pry::Editor.invoke_editor(@tf_path, 10, true)
76
- @file.should == @tf_path
77
- end
78
- end
79
- end
@@ -1,21 +0,0 @@
1
- require 'helper'
2
-
3
- describe "Pry.config.exception_whitelist" do
4
- before do
5
- @str_output = StringIO.new
6
- end
7
-
8
- it 'should rescue all exceptions NOT specified on whitelist' do
9
- Pry.config.exception_whitelist.include?(NameError).should == false
10
- lambda { Pry.start(self, :input => StringIO.new("raise NameError\nexit"), :output => @str_output) }.should.not.raise NameError
11
- end
12
-
13
- it 'should NOT rescue exceptions specified on whitelist' do
14
- old_whitelist = Pry.config.exception_whitelist
15
- Pry.config.exception_whitelist = [NameError]
16
- lambda { Pry.start(self, :input => StringIO.new("raise NameError"), :output => @str_output) }.should.raise NameError
17
- Pry.config.exception_whitelist = old_whitelist
18
- end
19
- end
20
-
21
-
@@ -1,11 +0,0 @@
1
- # rank 0
2
- class CandidateTest
3
- def test1
4
- end
5
-
6
- def test2
7
- end
8
-
9
- def test3
10
- end
11
- end
@@ -1,8 +0,0 @@
1
- # rank 1
2
- class CandidateTest
3
- def test4
4
- end
5
-
6
- def test5
7
- end
8
- end
@@ -1,5 +0,0 @@
1
- <html>
2
-
3
- Look at me, testing my erb!
4
-
5
- </html>
@@ -1,33 +0,0 @@
1
- # []
2
- class A # ["class A"]
3
- def a; end # ["class A"]
4
- class B; def b; end; end # ["class A", "class B"]
5
- end # []
6
- # []
7
- class << A # ["class << A"]
8
- class B # ["class << A", "class B"]
9
- def c; end # ["class << A", "class B"]
10
- end # ["class << A"]
11
- # ["class << A"]
12
- module F::B # ["class << A", "module F::B"]
13
- def foo; end # ["class << A", "module F::B"]
14
- end # ["class << A"]
15
- end # []
16
- # []
17
- module (:symbol.class)::Exciting #
18
- def foo; end #
19
- class B #
20
- def goo; end #
21
- end #
22
- end # []
23
- # []
24
- module C # ["module C"]
25
- class D # ["module C", "class D"]
26
- def guh; foo.end; end # ["module C", "class D"]
27
- end # ["module C"]
28
- def bar; :end; end # ["module C"]
29
- class << new.bar; end # ["module C"]
30
- class << new.bar; def f; end; end #
31
- # ["module C"]
32
- class << self; def mug; end; end # ["module C", "class << self"]
33
- end # []
@@ -1,15 +0,0 @@
1
- # used by test_show_source.rb and test_documentation.rb
2
- class TestClassForShowSource
3
- def alpha
4
- end
5
- end
6
-
7
- class TestClassForShowSourceClassEval
8
- def alpha
9
- end
10
- end
11
-
12
- class TestClassForShowSourceInstanceEval
13
- def alpha
14
- end
15
- end
@@ -1,2 +0,0 @@
1
- TEST_RC = [] if !Object.const_defined?(:TEST_RC)
2
- TEST_RC << 0
@@ -1,2 +0,0 @@
1
- TEST_BEFORE_RAISE = 1
2
- raise "messin with ya"
@@ -1,6 +0,0 @@
1
- class Cor
2
- def a; end
3
- def b; end
4
- def c; end
5
- def d; end
6
- end
@@ -1,34 +0,0 @@
1
- unless Object.const_defined? 'Pry'
2
- $:.unshift File.expand_path '../../lib', __FILE__
3
- require 'pry'
4
- end
5
-
6
- require 'mocha/api'
7
-
8
- require 'pry/test/helper'
9
- require 'helpers/bacon'
10
- require 'helpers/mock_pry'
11
-
12
- class Module
13
- public :remove_const
14
- public :remove_method
15
- end
16
-
17
- # turn warnings off (esp for Pry::Hooks which will generate warnings
18
- # in tests)
19
- $VERBOSE = nil
20
-
21
- Pad = OpenStruct.new
22
- def Pad.clear
23
- @table = {}
24
- end
25
-
26
- # to help with tracking down bugs that cause an infinite loop in the test suite
27
- if ENV["SET_TRACE_FUNC"]
28
- require 'set_trace' if Pry::Helpers::BaseHelpers.rbx?
29
- set_trace_func proc { |event, file, line, id, binding, classname|
30
- STDERR.printf "%8s %s:%-2d %10s %8s\n", event, file, line, id, classname
31
- }
32
- end
33
-
34
- puts "Ruby v#{RUBY_VERSION} (#{defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby"}), Pry v#{Pry::VERSION}, method_source v#{MethodSource::VERSION}, CodeRay v#{CodeRay::VERSION}, Slop v#{Slop::VERSION}"
@@ -1,86 +0,0 @@
1
- # Colorize output (based on greeneggs (c) 2009 Michael Fleet)
2
- # TODO: Make own gem (assigned to rking)
3
- module Bacon
4
- class Context
5
- include PryTestHelpers
6
- end
7
-
8
- COLORS = {'F' => 31, 'E' => 35, 'M' => 33, '.' => 32}
9
- USE_COLOR = !(ENV['NO_PRY_COLORED_BACON'] == 'true') && Pry::Helpers::BaseHelpers.use_ansi_codes?
10
-
11
- module TestUnitOutput
12
- def handle_requirement(description)
13
- error = yield
14
-
15
- if error.empty?
16
- print colorize_string('.')
17
- else
18
- print colorize_string(error[0..0])
19
- end
20
- end
21
-
22
- def handle_summary
23
- puts
24
- puts ErrorLog if Backtraces
25
-
26
- out = "%d tests, %d assertions, %d failures, %d errors" %
27
- Counter.values_at(:specifications, :requirements, :failed, :errors)
28
-
29
- if Counter.values_at(:failed, :errors).inject(:+) > 0
30
- puts colorize_string(out, 'F')
31
- else
32
- puts colorize_string(out, '.')
33
- end
34
- end
35
-
36
- def colorize_string(text, color = nil)
37
- if USE_COLOR
38
- "\e[#{ COLORS[color || text] }m#{ text }\e[0m"
39
- else
40
- text
41
- end
42
- end
43
- end
44
- end
45
-
46
- # Reset top-level binding at the beginning of each test case.
47
- module Bacon
48
- class Context
49
- def it_with_reset_binding(description, &block)
50
- Pry.toplevel_binding = nil
51
- it_without_reset_binding(description, &block)
52
- end
53
- alias it_without_reset_binding it
54
- alias it it_with_reset_binding
55
- end
56
- end
57
-
58
- # Support mocha
59
- # mocha-on-bacon (c) Copyright (C) 2011, Eloy Durán <eloy.de.enige@gmail.com>
60
- module Bacon
61
- module MochaRequirementsCounter
62
- def self.increment
63
- Counter[:requirements] += 1
64
- end
65
- end
66
-
67
- class Context
68
- include Mocha::API
69
-
70
- def it_with_mocha(description, &block)
71
- it_without_mocha(description) do
72
- begin
73
- mocha_setup
74
- block.call
75
- mocha_verify(MochaRequirementsCounter)
76
- rescue Mocha::ExpectationError => e
77
- raise Error.new(:failed, e.message)
78
- ensure
79
- mocha_teardown
80
- end
81
- end
82
- end
83
- alias it_without_mocha it
84
- alias it it_with_mocha
85
- end
86
- end
@@ -1,43 +0,0 @@
1
- def mock_pry(*args)
2
- args.flatten!
3
- binding = args.first.is_a?(Binding) ? args.shift : binding()
4
-
5
- input = InputTester.new(*args)
6
- output = StringIO.new
7
-
8
- redirect_pry_io(input, output) do
9
- binding.pry
10
- end
11
-
12
- output.string
13
- end
14
-
15
- # Set I/O streams. Out defaults to an anonymous StringIO.
16
- def redirect_pry_io(new_in, new_out = StringIO.new)
17
- old_in = Pry.input
18
- old_out = Pry.output
19
-
20
- Pry.input = new_in
21
- Pry.output = new_out
22
- begin
23
- yield
24
- ensure
25
- Pry.input = old_in
26
- Pry.output = old_out
27
- end
28
- end
29
-
30
- class InputTester
31
- def initialize(*actions)
32
- @orig_actions = actions.dup
33
- @actions = actions
34
- end
35
-
36
- def readline(*)
37
- @actions.shift
38
- end
39
-
40
- def rewind
41
- @actions = @orig_actions.dup
42
- end
43
- end
@@ -1,105 +0,0 @@
1
- require 'helper'
2
-
3
- describe 'Formatting Table' do
4
- it 'knows about colorized fitting' do
5
- t = Pry::Helpers::Table.new %w(hihi), :column_count => 1
6
- t.fits_on_line?(4).should == true
7
- t.items = []
8
- t.fits_on_line?(4).should == true
9
-
10
- t.items = %w(hi hi)
11
- t.fits_on_line?(4).should == true
12
- t.column_count = 2
13
- t.fits_on_line?(4).should == false
14
-
15
- t.items = %w(
16
- a ccc
17
- bb dddd
18
- ).sort
19
- t.fits_on_line?(8).should == true
20
- t.fits_on_line?(7).should == false
21
- end
22
-
23
- describe 'formatting - should order downward and wrap to columns' do
24
- FAKE_COLUMNS = 62
25
- def try_round_trip(expected)
26
- things = expected.split(/\s+/).sort
27
- actual = Pry::Helpers.tablify(things, FAKE_COLUMNS).to_s.strip
28
- [expected, actual].each{|e| e.gsub! /\s+$/, ''}
29
- if actual != expected
30
- bar = '-'*25
31
- puts \
32
- bar+'expected'+bar,
33
- expected,
34
- bar+'actual'+bar,
35
- actual
36
- end
37
- actual.should == expected
38
- end
39
-
40
- it 'should handle a tiny case' do
41
- try_round_trip(<<-eot)
42
- asdf asfddd fdass
43
- eot
44
- end
45
-
46
- it 'should handle the basic case' do
47
- try_round_trip(<<-eot)
48
- aadd ddasffssdad sdsaadaasd ssfasaafssd
49
- adassdfffaasds f sdsfasddasfds ssssdaa
50
- assfsafsfsds fsasa ssdsssafsdasdf
51
- eot
52
- end
53
-
54
- it 'should handle... another basic case' do
55
- try_round_trip(<<-EOT)
56
- aaad dasaasffaasf fdasfdfss safdfdddsasd
57
- aaadfasassdfff ddadadassasdf fddsasadfssdss sasf
58
- aaddaafaf dddasaaaaaa fdsasad sddsa
59
- aas dfsddffdddsdfd ff sddsfsaa
60
- adasadfaaffds dsfafdsfdfssda ffadsfafsaafa ss
61
- asddaadaaadfdd dssdss ffssfsfafaadss ssas
62
- asdsdaa faadf fsddfff ssdfssff
63
- asfadsssaaad fasfaafdssd s
64
- EOT
65
- end
66
-
67
- it 'should handle colors' do
68
- try_round_trip(<<-EOT)
69
- \e[31maaaaaaaaaa\e[0m \e[31mccccccccccccccccccccccccccccc\e[0m
70
- \e[31mbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\e[0m \e[31mddddddddddddd\e[0m
71
- EOT
72
- end
73
-
74
- it 'should handle empty input' do
75
- try_round_trip('')
76
- end
77
-
78
- it 'should handle one-token input' do
79
- try_round_trip('asdf')
80
- end
81
- end
82
-
83
- describe 'line length is smaller than the length of the longest word' do
84
- before do
85
- element = 'swizzle'
86
- @elem_len = element.length
87
- @out = [element, 'crime', 'fun']
88
- end
89
-
90
- it 'should not raise error' do
91
- should.not.raise(FloatDomainError) {
92
- Pry::Helpers.tablify(@out, @elem_len - 1)
93
- }
94
- end
95
-
96
- it 'should format output as one column' do
97
- table = Pry::Helpers.tablify(@out, @elem_len - 1).to_s
98
- table.should == "swizzle\ncrime \nfun "
99
- end
100
- end
101
-
102
- describe 'decide between one-line or indented output' do
103
- Pry::Helpers.tablify_or_one_line('head', %w(ing)).should == 'head: ing'
104
- end
105
- end