pry 0.9.12.2 → 0.14.2

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 (237) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +1141 -0
  3. data/LICENSE +2 -2
  4. data/README.md +466 -0
  5. data/bin/pry +4 -7
  6. data/lib/pry/basic_object.rb +10 -0
  7. data/lib/pry/block_command.rb +22 -0
  8. data/lib/pry/class_command.rb +194 -0
  9. data/lib/pry/cli.rb +97 -92
  10. data/lib/pry/code/code_file.rb +114 -0
  11. data/lib/pry/code/code_range.rb +7 -4
  12. data/lib/pry/code/loc.rb +27 -14
  13. data/lib/pry/code.rb +62 -90
  14. data/lib/pry/code_object.rb +83 -39
  15. data/lib/pry/color_printer.rb +66 -0
  16. data/lib/pry/command.rb +202 -371
  17. data/lib/pry/command_set.rb +151 -133
  18. data/lib/pry/command_state.rb +31 -0
  19. data/lib/pry/commands/amend_line.rb +86 -82
  20. data/lib/pry/commands/bang.rb +18 -14
  21. data/lib/pry/commands/bang_pry.rb +15 -11
  22. data/lib/pry/commands/cat/abstract_formatter.rb +23 -18
  23. data/lib/pry/commands/cat/exception_formatter.rb +85 -73
  24. data/lib/pry/commands/cat/file_formatter.rb +56 -63
  25. data/lib/pry/commands/cat/input_expression_formatter.rb +35 -30
  26. data/lib/pry/commands/cat.rb +64 -47
  27. data/lib/pry/commands/cd.rb +42 -26
  28. data/lib/pry/commands/change_inspector.rb +34 -0
  29. data/lib/pry/commands/change_prompt.rb +51 -0
  30. data/lib/pry/commands/clear_screen.rb +20 -0
  31. data/lib/pry/commands/code_collector.rb +148 -131
  32. data/lib/pry/commands/disable_pry.rb +23 -19
  33. data/lib/pry/commands/easter_eggs.rb +23 -34
  34. data/lib/pry/commands/edit/exception_patcher.rb +21 -17
  35. data/lib/pry/commands/edit/file_and_line_locator.rb +33 -24
  36. data/lib/pry/commands/edit.rb +183 -167
  37. data/lib/pry/commands/exit.rb +40 -35
  38. data/lib/pry/commands/exit_all.rb +24 -20
  39. data/lib/pry/commands/exit_program.rb +20 -17
  40. data/lib/pry/commands/find_method.rb +167 -167
  41. data/lib/pry/commands/fix_indent.rb +16 -12
  42. data/lib/pry/commands/help.rb +140 -133
  43. data/lib/pry/commands/hist.rb +153 -132
  44. data/lib/pry/commands/import_set.rb +20 -15
  45. data/lib/pry/commands/jump_to.rb +25 -21
  46. data/lib/pry/commands/list_inspectors.rb +42 -0
  47. data/lib/pry/commands/ls/constants.rb +75 -0
  48. data/lib/pry/commands/ls/formatter.rb +55 -0
  49. data/lib/pry/commands/ls/globals.rb +50 -0
  50. data/lib/pry/commands/ls/grep.rb +23 -0
  51. data/lib/pry/commands/ls/instance_vars.rb +40 -0
  52. data/lib/pry/commands/ls/interrogatable.rb +24 -0
  53. data/lib/pry/commands/ls/jruby_hacks.rb +55 -0
  54. data/lib/pry/commands/ls/local_names.rb +37 -0
  55. data/lib/pry/commands/ls/local_vars.rb +47 -0
  56. data/lib/pry/commands/ls/ls_entity.rb +65 -0
  57. data/lib/pry/commands/ls/methods.rb +55 -0
  58. data/lib/pry/commands/ls/methods_helper.rb +50 -0
  59. data/lib/pry/commands/ls/self_methods.rb +34 -0
  60. data/lib/pry/commands/ls.rb +100 -303
  61. data/lib/pry/commands/nesting.rb +21 -17
  62. data/lib/pry/commands/play.rb +93 -49
  63. data/lib/pry/commands/pry_backtrace.rb +22 -18
  64. data/lib/pry/commands/pry_version.rb +15 -11
  65. data/lib/pry/commands/raise_up.rb +33 -27
  66. data/lib/pry/commands/reload_code.rb +57 -48
  67. data/lib/pry/commands/reset.rb +16 -12
  68. data/lib/pry/commands/ri.rb +57 -38
  69. data/lib/pry/commands/save_file.rb +45 -43
  70. data/lib/pry/commands/shell_command.rb +66 -34
  71. data/lib/pry/commands/shell_mode.rb +22 -20
  72. data/lib/pry/commands/show_doc.rb +80 -65
  73. data/lib/pry/commands/show_info.rb +193 -159
  74. data/lib/pry/commands/show_input.rb +16 -11
  75. data/lib/pry/commands/show_source.rb +113 -33
  76. data/lib/pry/commands/stat.rb +35 -31
  77. data/lib/pry/commands/switch_to.rb +21 -15
  78. data/lib/pry/commands/toggle_color.rb +21 -13
  79. data/lib/pry/commands/watch_expression/expression.rb +43 -0
  80. data/lib/pry/commands/watch_expression.rb +110 -0
  81. data/lib/pry/commands/whereami.rb +157 -134
  82. data/lib/pry/commands/wtf.rb +78 -40
  83. data/lib/pry/config/attributable.rb +22 -0
  84. data/lib/pry/config/lazy_value.rb +29 -0
  85. data/lib/pry/config/memoized_value.rb +34 -0
  86. data/lib/pry/config/value.rb +24 -0
  87. data/lib/pry/config.rb +290 -220
  88. data/lib/pry/control_d_handler.rb +28 -0
  89. data/lib/pry/core_extensions.rb +50 -27
  90. data/lib/pry/editor.rb +130 -102
  91. data/lib/pry/env.rb +18 -0
  92. data/lib/pry/exception_handler.rb +43 -0
  93. data/lib/pry/exceptions.rb +73 -0
  94. data/lib/pry/forwardable.rb +27 -0
  95. data/lib/pry/helpers/base_helpers.rb +22 -151
  96. data/lib/pry/helpers/command_helpers.rb +55 -63
  97. data/lib/pry/helpers/documentation_helpers.rb +21 -13
  98. data/lib/pry/helpers/options_helpers.rb +15 -8
  99. data/lib/pry/helpers/platform.rb +55 -0
  100. data/lib/pry/helpers/table.rb +44 -32
  101. data/lib/pry/helpers/text.rb +96 -86
  102. data/lib/pry/helpers.rb +3 -0
  103. data/lib/pry/history.rb +101 -70
  104. data/lib/pry/hooks.rb +67 -137
  105. data/lib/pry/indent.rb +79 -73
  106. data/lib/pry/input_completer.rb +283 -0
  107. data/lib/pry/input_lock.rb +129 -0
  108. data/lib/pry/inspector.rb +39 -0
  109. data/lib/pry/last_exception.rb +61 -0
  110. data/lib/pry/method/disowned.rb +19 -5
  111. data/lib/pry/{commands/edit/method_patcher.rb → method/patcher.rb} +51 -42
  112. data/lib/pry/method/weird_method_locator.rb +80 -44
  113. data/lib/pry/method.rb +225 -176
  114. data/lib/pry/object_path.rb +91 -0
  115. data/lib/pry/output.rb +136 -0
  116. data/lib/pry/pager.rb +227 -68
  117. data/lib/pry/prompt.rb +214 -0
  118. data/lib/pry/pry_class.rb +216 -289
  119. data/lib/pry/pry_instance.rb +438 -500
  120. data/lib/pry/repl.rb +256 -0
  121. data/lib/pry/repl_file_loader.rb +34 -35
  122. data/lib/pry/ring.rb +89 -0
  123. data/lib/pry/slop/LICENSE +20 -0
  124. data/lib/pry/slop/commands.rb +190 -0
  125. data/lib/pry/slop/option.rb +210 -0
  126. data/lib/pry/slop.rb +672 -0
  127. data/lib/pry/syntax_highlighter.rb +26 -0
  128. data/lib/pry/system_command_handler.rb +17 -0
  129. data/lib/pry/testable/evalable.rb +24 -0
  130. data/lib/pry/testable/mockable.rb +22 -0
  131. data/lib/pry/testable/pry_tester.rb +88 -0
  132. data/lib/pry/testable/utility.rb +34 -0
  133. data/lib/pry/testable/variables.rb +52 -0
  134. data/lib/pry/testable.rb +68 -0
  135. data/lib/pry/version.rb +3 -1
  136. data/lib/pry/warning.rb +20 -0
  137. data/lib/pry/{module_candidate.rb → wrapped_module/candidate.rb} +36 -43
  138. data/lib/pry/wrapped_module.rb +102 -103
  139. data/lib/pry.rb +135 -261
  140. metadata +94 -283
  141. data/.document +0 -2
  142. data/.gitignore +0 -16
  143. data/.travis.yml +0 -21
  144. data/.yardopts +0 -1
  145. data/CHANGELOG +0 -534
  146. data/CONTRIBUTORS +0 -55
  147. data/Gemfile +0 -9
  148. data/Guardfile +0 -62
  149. data/README.markdown +0 -400
  150. data/Rakefile +0 -140
  151. data/TODO +0 -117
  152. data/lib/pry/commands/disabled_commands.rb +0 -2
  153. data/lib/pry/commands/gem_cd.rb +0 -26
  154. data/lib/pry/commands/gem_install.rb +0 -29
  155. data/lib/pry/commands/gem_list.rb +0 -33
  156. data/lib/pry/commands/gem_open.rb +0 -29
  157. data/lib/pry/commands/gist.rb +0 -102
  158. data/lib/pry/commands/install_command.rb +0 -51
  159. data/lib/pry/commands/simple_prompt.rb +0 -22
  160. data/lib/pry/commands.rb +0 -6
  161. data/lib/pry/completion.rb +0 -304
  162. data/lib/pry/custom_completions.rb +0 -6
  163. data/lib/pry/history_array.rb +0 -116
  164. data/lib/pry/plugins.rb +0 -103
  165. data/lib/pry/rbx_method.rb +0 -13
  166. data/lib/pry/rbx_path.rb +0 -22
  167. data/lib/pry/rubygem.rb +0 -74
  168. data/lib/pry/terminal.rb +0 -78
  169. data/lib/pry/test/helper.rb +0 -185
  170. data/man/pry.1 +0 -195
  171. data/man/pry.1.html +0 -204
  172. data/man/pry.1.ronn +0 -141
  173. data/pry.gemspec +0 -30
  174. data/spec/Procfile +0 -3
  175. data/spec/cli_spec.rb +0 -78
  176. data/spec/code_object_spec.rb +0 -277
  177. data/spec/code_spec.rb +0 -219
  178. data/spec/command_helpers_spec.rb +0 -29
  179. data/spec/command_integration_spec.rb +0 -644
  180. data/spec/command_set_spec.rb +0 -627
  181. data/spec/command_spec.rb +0 -821
  182. data/spec/commands/amend_line_spec.rb +0 -247
  183. data/spec/commands/bang_spec.rb +0 -19
  184. data/spec/commands/cat_spec.rb +0 -164
  185. data/spec/commands/cd_spec.rb +0 -250
  186. data/spec/commands/disable_pry_spec.rb +0 -25
  187. data/spec/commands/edit_spec.rb +0 -727
  188. data/spec/commands/exit_all_spec.rb +0 -34
  189. data/spec/commands/exit_program_spec.rb +0 -19
  190. data/spec/commands/exit_spec.rb +0 -34
  191. data/spec/commands/find_method_spec.rb +0 -70
  192. data/spec/commands/gem_list_spec.rb +0 -26
  193. data/spec/commands/gist_spec.rb +0 -79
  194. data/spec/commands/help_spec.rb +0 -56
  195. data/spec/commands/hist_spec.rb +0 -181
  196. data/spec/commands/jump_to_spec.rb +0 -15
  197. data/spec/commands/ls_spec.rb +0 -181
  198. data/spec/commands/play_spec.rb +0 -140
  199. data/spec/commands/raise_up_spec.rb +0 -56
  200. data/spec/commands/save_file_spec.rb +0 -177
  201. data/spec/commands/show_doc_spec.rb +0 -510
  202. data/spec/commands/show_input_spec.rb +0 -17
  203. data/spec/commands/show_source_spec.rb +0 -782
  204. data/spec/commands/whereami_spec.rb +0 -203
  205. data/spec/completion_spec.rb +0 -239
  206. data/spec/control_d_handler_spec.rb +0 -58
  207. data/spec/documentation_helper_spec.rb +0 -73
  208. data/spec/editor_spec.rb +0 -79
  209. data/spec/exception_whitelist_spec.rb +0 -21
  210. data/spec/fixtures/candidate_helper1.rb +0 -11
  211. data/spec/fixtures/candidate_helper2.rb +0 -8
  212. data/spec/fixtures/example.erb +0 -5
  213. data/spec/fixtures/example_nesting.rb +0 -33
  214. data/spec/fixtures/show_source_doc_examples.rb +0 -15
  215. data/spec/fixtures/testrc +0 -2
  216. data/spec/fixtures/testrcbad +0 -2
  217. data/spec/fixtures/whereami_helper.rb +0 -6
  218. data/spec/helper.rb +0 -34
  219. data/spec/helpers/bacon.rb +0 -86
  220. data/spec/helpers/mock_pry.rb +0 -43
  221. data/spec/helpers/table_spec.rb +0 -105
  222. data/spec/history_array_spec.rb +0 -67
  223. data/spec/hooks_spec.rb +0 -522
  224. data/spec/indent_spec.rb +0 -301
  225. data/spec/input_stack_spec.rb +0 -90
  226. data/spec/method_spec.rb +0 -482
  227. data/spec/prompt_spec.rb +0 -60
  228. data/spec/pry_defaults_spec.rb +0 -419
  229. data/spec/pry_history_spec.rb +0 -99
  230. data/spec/pry_output_spec.rb +0 -95
  231. data/spec/pry_spec.rb +0 -504
  232. data/spec/run_command_spec.rb +0 -25
  233. data/spec/sticky_locals_spec.rb +0 -157
  234. data/spec/syntax_checking_spec.rb +0 -81
  235. data/spec/wrapped_module_spec.rb +0 -261
  236. data/wiki/Customizing-pry.md +0 -397
  237. data/wiki/Home.md +0 -4
@@ -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
data/spec/fixtures/testrc DELETED
@@ -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
data/spec/helper.rb DELETED
@@ -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
@@ -1,67 +0,0 @@
1
- require 'helper'
2
-
3
- describe Pry::HistoryArray do
4
- before do
5
- @array = Pry::HistoryArray.new 10
6
- @populated = @array.dup << 1 << 2 << 3 << 4
7
- end
8
-
9
- it 'should have a maximum size specifed at creation time' do
10
- @array.max_size.should == 10
11
- end
12
-
13
- it 'should be able to be added objects to' do
14
- @populated.size.should == 4
15
- @populated.to_a.should == [1, 2, 3, 4]
16
- end
17
-
18
- it 'should be able to access single elements' do
19
- @populated[2].should == 3
20
- end
21
-
22
- it 'should be able to access negative indices' do
23
- @populated[-1].should == 4
24
- end
25
-
26
- it 'should be able to access ranges' do
27
- @populated[1..2].should == [2, 3]
28
- end
29
-
30
- it 'should be able to access ranges starting from a negative index' do
31
- @populated[-2..3].should == [3, 4]
32
- end
33
-
34
- it 'should be able to access ranges ending at a negative index' do
35
- @populated[2..-1].should == [3, 4]
36
- end
37
-
38
- it 'should be able to access ranges using only negative indices' do
39
- @populated[-2..-1].should == [3, 4]
40
- end
41
-
42
- it 'should be able to use range where end is excluded' do
43
- @populated[-2...-1].should == [3]
44
- end
45
-
46
- it 'should be able to access slices using a size' do
47
- @populated[-3, 2].should == [2, 3]
48
- end
49
-
50
- it 'should remove older entries' do
51
- 11.times { |n| @array << n }
52
-
53
- @array[0].should == nil
54
- @array[1].should == 1
55
- @array[10].should == 10
56
- end
57
-
58
- it 'should not be larger than specified maximum size' do
59
- 12.times { |n| @array << n }
60
- @array.entries.compact.size.should == 10
61
- end
62
-
63
- it 'should pop!' do
64
- @populated.pop!
65
- @populated.to_a.should == [1, 2, 3]
66
- end
67
- end