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,7 +1,7 @@
1
1
  class Pry
2
2
  class Command::SimplePrompt < Pry::ClassCommand
3
3
  match 'simple-prompt'
4
- group 'Misc'
4
+ group 'prompts'
5
5
  description 'Toggle the simple prompt.'
6
6
 
7
7
  banner <<-'BANNER'
@@ -11,10 +11,14 @@ class Pry
11
11
  BANNER
12
12
 
13
13
  def process
14
- Pry.color = !Pry.color
15
- output.puts "Syntax highlighting #{Pry.color ? "on" : "off"}"
14
+ _pry_.color = color_toggle
15
+ output.puts "Syntax highlighting #{_pry_.color ? "on" : "off"}"
16
+ end
17
+
18
+ def color_toggle
19
+ !_pry_.color
16
20
  end
17
- end
18
21
 
19
- Pry::Commands.add_command(Pry::Command::ToggleColor)
22
+ Pry::Commands.add_command(self)
23
+ end
20
24
  end
@@ -0,0 +1,105 @@
1
+ class Pry
2
+ class Command::WatchExpression < Pry::ClassCommand
3
+ require 'pry/commands/watch_expression/expression.rb'
4
+
5
+ match 'watch'
6
+ group 'Context'
7
+ description 'Watch the value of an expression and print a notification whenever it changes.'
8
+ command_options :use_prefix => false
9
+
10
+ banner <<-'BANNER'
11
+ Usage: watch [EXPRESSION]
12
+ watch
13
+ watch --delete [INDEX]
14
+
15
+ watch [EXPRESSION] adds an expression to the list of those being watched.
16
+ It will be re-evaluated every time you hit enter in pry. If its value has
17
+ changed, the new value will be printed to the console.
18
+
19
+ This is useful if you are step-through debugging and want to see how
20
+ something changes over time. It's also useful if you're trying to write
21
+ a method inside pry and want to check that it gives the right answers
22
+ every time you redefine it.
23
+
24
+ watch on its own displays all the currently watched expressions and their
25
+ values, and watch --delete [INDEX] allows you to delete expressions from
26
+ the list being watched.
27
+ BANNER
28
+
29
+ def options(opt)
30
+ opt.on :d, :delete,
31
+ "Delete the watch expression with the given index. If no index is given; clear all watch expressions.",
32
+ :optional_argument => true, :as => Integer
33
+ opt.on :l, :list,
34
+ "Show all current watch expressions and their values. Calling watch with no expressions or options will also show the watch expressions."
35
+ end
36
+
37
+ def process
38
+ case
39
+ when opts.present?(:delete)
40
+ delete opts[:delete]
41
+ when opts.present?(:list) || args.empty?
42
+ list
43
+ else
44
+ add_hook
45
+ add_expression(args)
46
+ end
47
+ end
48
+
49
+ private
50
+
51
+ def expressions
52
+ _pry_.config.watch_expressions ||= []
53
+ end
54
+
55
+ def delete(index)
56
+ if index
57
+ output.puts "Deleting watch expression ##{index}: #{expressions[index-1]}"
58
+ expressions.delete_at(index-1)
59
+ else
60
+ output.puts "Deleting all watched expressions"
61
+ expressions.clear
62
+ end
63
+ end
64
+
65
+ def list
66
+ if expressions.empty?
67
+ output.puts "No watched expressions"
68
+ else
69
+ _pry_.pager.open do |pager|
70
+ pager.puts "Listing all watched expressions:"
71
+ pager.puts ""
72
+ expressions.each_with_index do |expr, index|
73
+ pager.print text.with_line_numbers(expr.to_s, index+1)
74
+ end
75
+ pager.puts ""
76
+ end
77
+ end
78
+ end
79
+
80
+ def eval_and_print_changed(output)
81
+ expressions.each do |expr|
82
+ expr.eval!
83
+ if expr.changed?
84
+ output.puts "#{text.blue "watch"}: #{expr.to_s}"
85
+ end
86
+ end
87
+ end
88
+
89
+ def add_expression(arguments)
90
+ expressions << Expression.new(_pry_, target, arg_string)
91
+ output.puts "Watching #{Code.new(arg_string)}"
92
+ end
93
+
94
+ def add_hook
95
+ hook = [:after_eval, :watch_expression]
96
+ unless _pry_.hooks.hook_exists?(*hook)
97
+ _pry_.hooks.add_hook(*hook) do |_, _pry_|
98
+ eval_and_print_changed _pry_.output
99
+ end
100
+ end
101
+ end
102
+ end
103
+
104
+ Pry::Commands.add_command(Pry::Command::WatchExpression)
105
+ end
@@ -0,0 +1,38 @@
1
+ class Pry
2
+ class Command::WatchExpression
3
+ class Expression
4
+ attr_reader :target, :source, :value, :previous_value, :_pry_
5
+
6
+ def initialize(_pry_, target, source)
7
+ @_pry_ = _pry_
8
+ @target = target
9
+ @source = source.strip
10
+ end
11
+
12
+ def eval!
13
+ @previous_value = @value
14
+ @value = Pry::ColorPrinter.pp(target_eval(target, source), "")
15
+ end
16
+
17
+ def to_s
18
+ "#{Code.new(source).strip} => #{value}"
19
+ end
20
+
21
+ # Has the value of the expression changed?
22
+ #
23
+ # We use the pretty-printed string represenation to detect differences
24
+ # as this avoids problems with dup (causes too many differences) and == (causes too few)
25
+ def changed?
26
+ (value != previous_value)
27
+ end
28
+
29
+ private
30
+
31
+ def target_eval(target, source)
32
+ target.eval(source)
33
+ rescue => e
34
+ e
35
+ end
36
+ end
37
+ end
38
+ end
@@ -88,10 +88,10 @@ class Pry
88
88
 
89
89
  set_file_and_dir_locals(@file)
90
90
 
91
- out = "\n#{text.bold('From:')} #{location}:\n\n" +
92
- code.with_line_numbers(use_line_numbers?).with_marker(marker).to_s + "\n"
91
+ out = "\n#{text.bold('From:')} #{location}:\n\n" <<
92
+ code.with_line_numbers(use_line_numbers?).with_marker(marker) << "\n"
93
93
 
94
- stagger_output(out)
94
+ _pry_.pager.page out
95
95
  end
96
96
 
97
97
  private
@@ -109,7 +109,7 @@ class Pry
109
109
  end
110
110
 
111
111
  def top_level?
112
- target_self == TOPLEVEL_BINDING.eval("self")
112
+ target_self == Pry.main
113
113
  end
114
114
 
115
115
  def handle_internal_binding
@@ -144,14 +144,21 @@ class Pry
144
144
  end
145
145
  end
146
146
 
147
+ # This either returns the `target_self`
148
+ # or it returns the class of `target_self` if `target_self` is not a class.
149
+ # @return [Pry::WrappedModule]
150
+ def target_class
151
+ target_self.is_a?(Module) ? Pry::WrappedModule(target_self) :
152
+ Pry::WrappedModule(target_self.class)
153
+ end
154
+
147
155
  def class_code
148
156
  return @class_code if @class_code
149
157
 
150
- if valid_method?
151
- mod = Pry::WrappedModule(@method.owner)
152
- idx = mod.candidates.find_index { |v| expand_path(v.source_file) == @file }
153
- @class_code = idx && Pry::Code.from_module(mod, idx)
154
- end
158
+ mod = @method ? Pry::WrappedModule(@method.owner) : target_class
159
+
160
+ idx = mod.candidates.find_index { |v| expand_path(v.source_file) == @file }
161
+ @class_code = idx && Pry::Code.from_module(mod, idx)
155
162
  end
156
163
 
157
164
  def valid_method?
@@ -171,7 +178,7 @@ class Pry
171
178
 
172
179
  def window_size
173
180
  if args.empty?
174
- Pry.config.default_window_size
181
+ _pry_.config.default_window_size
175
182
  else
176
183
  args.first.to_i
177
184
  end
@@ -179,4 +186,5 @@ class Pry
179
186
  end
180
187
 
181
188
  Pry::Commands.add_command(Pry::Command::Whereami)
189
+ Pry::Commands.alias_command '@', 'whereami'
182
190
  end
@@ -1,6 +1,6 @@
1
1
  class Pry
2
2
  class Command::Wtf < Pry::ClassCommand
3
- match /wtf([?!]*)/
3
+ match(/wtf([?!]*)/)
4
4
  group 'Context'
5
5
  description 'Show the backtrace of the most recent exception.'
6
6
  options :listing => 'wtf?'
@@ -50,8 +50,8 @@ class Pry
50
50
 
51
51
  def size_of_backtrace
52
52
  [captures[0].size, 0.5].max * 10
53
+ end
53
54
  end
54
- end
55
55
 
56
- Pry::Commands.add_command(Pry::Command::Wtf)
56
+ Pry::Commands.add_command(Pry::Command::Wtf)
57
57
  end
@@ -1,258 +1,24 @@
1
- require 'ostruct'
2
-
3
- class Pry
4
- class Config < OpenStruct
5
-
6
- # Get/Set the object to use for input by default by all Pry instances.
7
- # Pry.config.input is an option determining the input object - the object from
8
- # which Pry retrieves its lines of input. Pry accepts any object that
9
- # implements the readline method. This includes IO objects, StringIO,
10
- # Readline, File and custom objects. It can also be a Proc which returns an
11
- # object implementing the readline method.
12
- # @return [#readline] The object to use for input by default by all
13
- # Pry instances.
14
- # @example
15
- # Pry.config.input = StringIO.new("@x = 10\nexit")
16
- def input
17
- @reified_input ||=
18
- if @input.respond_to?(:call)
19
- @input.call
20
- else
21
- @input
22
- end
23
- end
24
-
25
- def input=(input)
26
- @reified_input = nil
27
- @input = input
28
- end
29
-
30
- # Get/Set the object to use for output by default by all Pry instances.
31
- # Pry.config.output is an option determining the output object - the object to which
32
- # Pry writes its output. Pry accepts any object that implements the puts method. This
33
- # includes IO objects, StringIO, File and custom objects.
34
- # @return [#puts] The object to use for output by default by all
35
- # Pry instances.
36
- # @example
37
- # Pry.config.output = StringIO.new
38
- attr_accessor :output
39
-
40
- # Get/Set the object to use for commands by default by all Pry instances.
41
- # @return [Pry::CommandBase] The object to use for commands by default by all
42
- # Pry instances.
43
- # @example
44
- # Pry.config.commands = Pry::CommandSet.new do
45
- # import_from Pry::Commands, "ls"
46
- #
47
- # command "greet" do |name|
48
- # output.puts "hello #{name}"
49
- # end
50
- # end
51
- attr_accessor :commands
52
-
53
- # Get/Set the Proc to use for printing by default by all Pry
54
- # instances.
55
- # Two parameters are passed to the print Proc: these are (1) the
56
- # output object for the current session and (2) the expression value to print. It is important
57
- # that you write to the output object instead of just stdout so that all Pry output can be redirected if necessary.
58
- # This is the 'print' component of the REPL.
59
- # @return [Proc] The Proc to use for printing by default by all
60
- # Pry instances.
61
- # @example
62
- # Pry.config.print = proc { |output, value| output.puts "=> #{value.inspect}" }
63
- attr_accessor :print
64
-
65
- # Pry.config.exception_handler is an option determining the exception handler object - the
66
- # Proc responsible for dealing with exceptions raised by user input to the REPL.
67
- # Three parameters are passed to the exception handler Proc: these
68
- # are (1) the output object for the current session, (2) the
69
- # exception object that was raised inside the Pry session, and (3)
70
- # a reference to the associated Pry instance.
71
- # @return [Proc] The Proc to use for printing exceptions by default by all
72
- # Pry instances.
73
- # @example
74
- # Pry.config.exception_handler = proc do |output, exception, _|
75
- # output.puts "#{exception.class}: #{exception.message}"
76
- # output.puts "from #{exception.backtrace.first}"
77
- # end
78
- attr_accessor :exception_handler
79
-
80
- # @return [Array] The classes of exception that will not be caught by Pry.
81
- # @example
82
- # Pry.config.exception_whitelist = [SystemExit, SignalException]
83
- attr_accessor :exception_whitelist
84
-
85
- # @return [Fixnum] The number of lines of context to show before and after
86
- # exceptions, etc.
87
- # @example
88
- # Pry.config.default_window_size = 10
89
- attr_accessor :default_window_size
90
-
91
- # Get/Set the `Pry::Hooks` instance that defines Pry hooks used by default by all Pry
92
- # instances.
93
- # @return [Pry::Hooks] The hooks used by default by all Pry instances.
94
- # @example
95
- # Pry.config.hooks = Pry::Hooks.new.add_hook(:before_session,
96
- # :default) { |output, target, _pry_| output.puts "Good morning!" }
97
- attr_reader :hooks
1
+ class Pry::Config
2
+ require_relative 'config/behavior'
3
+ require_relative 'config/default'
4
+ require_relative 'config/convenience'
5
+ include Pry::Config::Behavior
6
+
7
+ def self.shortcuts
8
+ Convenience::SHORTCUTS
9
+ end
98
10
 
99
- # FIXME:
100
- # This is a hack to alert people of the new API.
101
- # @param [Pry::Hooks] v Only accept `Pry::Hooks` now!
102
- def hooks=(v)
103
- if v.is_a?(Hash)
104
- warn "Hash-based hooks are now deprecated! Use a `Pry::Hooks` object instead! http://rubydoc.info/github/pry/pry/master/Pry/Hooks"
105
- @hooks = Pry::Hooks.from_hash(v)
106
- else
107
- @hooks = v
108
- end
11
+ #
12
+ # FIXME
13
+ # @param [Pry::Hooks] hooks
14
+ #
15
+ def hooks=(hooks)
16
+ if hooks.is_a?(Hash)
17
+ warn "Hash-based hooks are now deprecated! Use a `Pry::Hooks` object " \
18
+ "instead! http://rubydoc.info/github/pry/pry/master/Pry/Hooks"
19
+ self["hooks"] = Pry::Hooks.from_hash(hooks)
20
+ else
21
+ self["hooks"] = hooks
109
22
  end
110
-
111
- # Get/Set the stack of input objects that a Pry instance switches
112
- # to when its current input object encounters EOF.
113
- # @return [Array] The array of input objects.
114
- # @example
115
- # Pry.config.input_stack = [StringIO.new("puts 'hello world'\nexit")]
116
- attr_accessor :input_stack
117
-
118
- # Get the array of Procs (or single Proc) to be used for the prompts by default by
119
- # all Pry instances.
120
- # Three parameters are passed into the prompt procs, (1) the
121
- # object that is the target of the session, (2) the current
122
- # nesting level, and (3) a reference to the associated Pry instance. These objects can be used in the prompt, if desired.
123
- # @return [Array<Proc>, Proc] The array of Procs to be used for the
124
- # prompts by default by all Pry instances.
125
- # @example
126
- # Pry.config.prompt = proc { |obj, nest_level, _pry_| "#{obj}:#{nest_level}> " }
127
- attr_accessor :prompt
128
-
129
- # The display name that is part of the prompt. Default is 'pry'.
130
- # You can set your own name so you can identify which project your current pry session
131
- # is using. This is useful if you have a local pryrc file in a Rails project for example.
132
- # @return [String]
133
- # @example
134
- # Pry.config.prompt_name = 'my_rails_project'
135
- attr_accessor :prompt_name
136
-
137
- # The default editor to use. Defaults to $VISUAL, $EDITOR, or a sensible fallback
138
- # for the platform.
139
- # If `editor` is a String then that string is used as the shell
140
- # command to invoke the editor. If `editor` is callable (e.g a
141
- # Proc) then `file`, `line`, and `reloading` are passed in as parameters and the
142
- # return value of that callable invocation is used as the exact
143
- # shell command to invoke the editor. `reloading` indicates whether Pry will be
144
- # reloading code after the shell command returns. Any or all of these parameters
145
- # can be omitted from the callable's signature.
146
- # @example String
147
- # Pry.config.editor = "emacsclient"
148
- # @example Callable
149
- # Pry.config.editor = proc { |file, line| "emacsclient #{file} +#{line}" }
150
- # @example Callable waiting only if reloading
151
- # Pry.config.editor = proc { |file, line, reloading| "subl #{'--wait' if reloading} #{file}:#{line}" }
152
- # @return [String, #call]
153
- attr_accessor :editor
154
-
155
- # A string that must precede all Pry commands (e.g., if command_prefix is
156
- # set to "%", the "cd" command must be invoked as "%cd").
157
- # @return [String]
158
- attr_accessor :command_prefix
159
-
160
- # @return [Boolean] Toggle Pry color on and off.
161
- attr_accessor :color
162
-
163
- # @return [Boolean] Toggle paging on and off.
164
- attr_accessor :pager
165
-
166
- # Determines whether the rc file (~/.pryrc) should be loaded.
167
- # @return [Boolean]
168
- attr_accessor :should_load_rc
169
-
170
- # Determines whether the local rc file (./.pryrc) should be loaded.
171
- # @return [Boolean]
172
- attr_accessor :should_load_local_rc
173
-
174
- # Determines whether plugins should be loaded.
175
- # @return [Boolean]
176
- attr_accessor :should_load_plugins
177
-
178
- # Determines whether to load files specified with the -r flag.
179
- # @return [Boolean]
180
- attr_accessor :should_load_requires
181
-
182
- # Determines whether to disable edit-method's auto-reloading behavior.
183
- # @return [Boolean]
184
- attr_accessor :disable_auto_reload
185
-
186
- # Determines whether Pry should trap SIGINT and cause it to raise an
187
- # Interrupt exception. This is only useful on jruby, MRI does this
188
- # for us.
189
- # @return [Boolean]
190
- attr_accessor :should_trap_interrupts
191
-
192
- # Config option for history.
193
- # sub-options include history.file, history.load, and history.save
194
- # history.file is the file to save/load history to, e.g
195
- # Pry.config.history.file = "~/.pry_history".
196
- # history.should_load is a boolean that determines whether history will be
197
- # loaded from history.file at session start.
198
- # history.should_save is a boolean that determines whether history will be
199
- # saved to history.file at session end.
200
- # @return [OpenStruct]
201
- attr_accessor :history
202
-
203
- # Config option for plugins:
204
- # sub-options include:
205
- # `plugins.strict_loading` (Boolean) which toggles whether referring to a non-existent plugin should raise an exception (defaults to `false`)
206
- # @return [OpenStruct]
207
- attr_accessor :plugins
208
-
209
- # @return [Array<String>] Ruby files to be required after loading any plugins.
210
- attr_accessor :requires
211
-
212
- # @return [Integer] Amount of results that will be stored into out
213
- attr_accessor :memory_size
214
-
215
- # @return [Proc] The proc that manages ^D presses in the REPL.
216
- # The proc is passed the current eval_string and the current pry instance.
217
- attr_accessor :control_d_handler
218
-
219
- # @return [Proc] The proc that runs system commands
220
- # The proc is passed the pry output object, the command string
221
- # to eval, and a reference to the pry instance
222
- attr_accessor :system
223
-
224
- # @return [Boolean] Whether or not code should be indented
225
- # using Pry::Indent.
226
- attr_accessor :auto_indent
227
-
228
- # @return [Boolean] Whether or not indentation should be corrected
229
- # after hitting enter. This feature is not supported by all terminals.
230
- attr_accessor :correct_indent
231
-
232
- # @return [Boolean] Whether or not a warning will be displayed when
233
- # a command name collides with a method/local in the current context.
234
- attr_accessor :collision_warning
235
-
236
-
237
- # Config option for gist.
238
- # sub-options include `gist.inspecter`,
239
- # `gist.inspecter` is a callable that defines how the expression output
240
- # will be displayed when using the `gist -i` command.
241
- # @example Pretty inspect output
242
- # Pry.config.gist.inspecter = proc { |v| v.pretty_inspect }
243
- # @example Regular inspect
244
- # Pry.config.gist.inspecter = proc &:inspect
245
- # @return [OpenStruct]
246
- attr_accessor :gist
247
-
248
- # @return [Hash] Additional sticky locals (to the standard ones) to use in Pry sessions.
249
- # @example Inject `random_number` sticky local into Pry session
250
- # Pry.config.extra_sticky_locals = { :random_number => proc {
251
- # rand(10) } }
252
- attr_accessor :extra_sticky_locals
253
-
254
- # @return [#build_completion_proc] A completer to use.
255
- attr_accessor :completer
256
23
  end
257
24
  end
258
-