pry 0.10.pre.1-java → 0.10.0.pre2-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +702 -0
- data/LICENSE +2 -2
- data/{README.markdown → README.md} +41 -35
- data/lib/pry.rb +82 -139
- data/lib/pry/cli.rb +77 -30
- data/lib/pry/code.rb +126 -182
- data/lib/pry/code/code_file.rb +103 -0
- data/lib/pry/code/code_range.rb +71 -0
- data/lib/pry/code/loc.rb +92 -0
- data/lib/pry/code_object.rb +172 -0
- data/lib/pry/color_printer.rb +55 -0
- data/lib/pry/command.rb +184 -28
- data/lib/pry/command_set.rb +113 -59
- data/lib/pry/commands.rb +4 -27
- data/lib/pry/commands/amend_line.rb +99 -0
- data/lib/pry/commands/bang.rb +20 -0
- data/lib/pry/commands/bang_pry.rb +17 -0
- data/lib/pry/commands/cat.rb +62 -0
- data/lib/pry/commands/cat/abstract_formatter.rb +27 -0
- data/lib/pry/commands/cat/exception_formatter.rb +77 -0
- data/lib/pry/commands/cat/file_formatter.rb +67 -0
- data/lib/pry/commands/cat/input_expression_formatter.rb +43 -0
- data/lib/pry/commands/cd.rb +41 -0
- data/lib/pry/commands/change_inspector.rb +27 -0
- data/lib/pry/commands/change_prompt.rb +26 -0
- data/lib/pry/commands/code_collector.rb +165 -0
- data/lib/pry/commands/disable_pry.rb +27 -0
- data/lib/pry/commands/disabled_commands.rb +2 -0
- data/lib/pry/commands/easter_eggs.rb +112 -0
- data/lib/pry/commands/edit.rb +195 -0
- data/lib/pry/commands/edit/exception_patcher.rb +25 -0
- data/lib/pry/commands/edit/file_and_line_locator.rb +36 -0
- data/lib/pry/commands/exit.rb +42 -0
- data/lib/pry/commands/exit_all.rb +29 -0
- data/lib/pry/commands/exit_program.rb +23 -0
- data/lib/pry/commands/find_method.rb +193 -0
- data/lib/pry/commands/fix_indent.rb +19 -0
- data/lib/pry/commands/gem_cd.rb +26 -0
- data/lib/pry/commands/gem_install.rb +32 -0
- data/lib/pry/commands/gem_list.rb +33 -0
- data/lib/pry/commands/gem_open.rb +29 -0
- data/lib/pry/commands/gist.rb +101 -0
- data/lib/pry/commands/help.rb +164 -0
- data/lib/pry/commands/hist.rb +180 -0
- data/lib/pry/commands/import_set.rb +22 -0
- data/lib/pry/commands/install_command.rb +53 -0
- data/lib/pry/commands/jump_to.rb +29 -0
- data/lib/pry/commands/list_inspectors.rb +35 -0
- data/lib/pry/commands/list_prompts.rb +35 -0
- data/lib/pry/commands/ls.rb +114 -0
- data/lib/pry/commands/ls/constants.rb +47 -0
- data/lib/pry/commands/ls/formatter.rb +49 -0
- data/lib/pry/commands/ls/globals.rb +48 -0
- data/lib/pry/commands/ls/grep.rb +21 -0
- data/lib/pry/commands/ls/instance_vars.rb +39 -0
- data/lib/pry/commands/ls/interrogatable.rb +18 -0
- data/lib/pry/commands/ls/jruby_hacks.rb +49 -0
- data/lib/pry/commands/ls/local_names.rb +35 -0
- data/lib/pry/commands/ls/local_vars.rb +39 -0
- data/lib/pry/commands/ls/ls_entity.rb +70 -0
- data/lib/pry/commands/ls/methods.rb +57 -0
- data/lib/pry/commands/ls/methods_helper.rb +46 -0
- data/lib/pry/commands/ls/self_methods.rb +32 -0
- data/lib/pry/commands/nesting.rb +25 -0
- data/lib/pry/commands/play.rb +103 -0
- data/lib/pry/commands/pry_backtrace.rb +25 -0
- data/lib/pry/commands/pry_version.rb +17 -0
- data/lib/pry/commands/raise_up.rb +32 -0
- data/lib/pry/commands/reload_code.rb +62 -0
- data/lib/pry/commands/reset.rb +18 -0
- data/lib/pry/commands/ri.rb +60 -0
- data/lib/pry/commands/save_file.rb +61 -0
- data/lib/pry/commands/shell_command.rb +48 -0
- data/lib/pry/commands/shell_mode.rb +25 -0
- data/lib/pry/commands/show_doc.rb +83 -0
- data/lib/pry/commands/show_info.rb +195 -0
- data/lib/pry/commands/show_input.rb +17 -0
- data/lib/pry/commands/show_source.rb +50 -0
- data/lib/pry/commands/simple_prompt.rb +22 -0
- data/lib/pry/commands/stat.rb +40 -0
- data/lib/pry/commands/switch_to.rb +23 -0
- data/lib/pry/commands/toggle_color.rb +24 -0
- data/lib/pry/commands/watch_expression.rb +105 -0
- data/lib/pry/commands/watch_expression/expression.rb +38 -0
- data/lib/pry/commands/whereami.rb +190 -0
- data/lib/pry/commands/wtf.rb +57 -0
- data/lib/pry/config.rb +20 -229
- data/lib/pry/config/behavior.rb +139 -0
- data/lib/pry/config/convenience.rb +26 -0
- data/lib/pry/config/default.rb +165 -0
- data/lib/pry/core_extensions.rb +59 -38
- data/lib/pry/editor.rb +133 -0
- data/lib/pry/exceptions.rb +77 -0
- data/lib/pry/helpers.rb +1 -0
- data/lib/pry/helpers/base_helpers.rb +40 -154
- data/lib/pry/helpers/command_helpers.rb +19 -130
- data/lib/pry/helpers/documentation_helpers.rb +21 -11
- data/lib/pry/helpers/table.rb +109 -0
- data/lib/pry/helpers/text.rb +8 -9
- data/lib/pry/history.rb +61 -45
- data/lib/pry/history_array.rb +11 -1
- data/lib/pry/hooks.rb +10 -32
- data/lib/pry/indent.rb +110 -38
- data/lib/pry/input_completer.rb +242 -0
- data/lib/pry/input_lock.rb +132 -0
- data/lib/pry/inspector.rb +27 -0
- data/lib/pry/last_exception.rb +61 -0
- data/lib/pry/method.rb +199 -200
- data/lib/pry/method/disowned.rb +53 -0
- data/lib/pry/method/patcher.rb +125 -0
- data/lib/pry/method/weird_method_locator.rb +186 -0
- data/lib/pry/module_candidate.rb +39 -33
- data/lib/pry/object_path.rb +82 -0
- data/lib/pry/output.rb +50 -0
- data/lib/pry/pager.rb +234 -0
- data/lib/pry/plugins.rb +4 -3
- data/lib/pry/prompt.rb +26 -0
- data/lib/pry/pry_class.rb +199 -227
- data/lib/pry/pry_instance.rb +344 -403
- data/lib/pry/rbx_path.rb +1 -1
- data/lib/pry/repl.rb +202 -0
- data/lib/pry/repl_file_loader.rb +20 -26
- data/lib/pry/rubygem.rb +82 -0
- data/lib/pry/terminal.rb +79 -0
- data/lib/pry/test/helper.rb +170 -0
- data/lib/pry/version.rb +1 -1
- data/lib/pry/wrapped_module.rb +133 -48
- metadata +132 -197
- data/.document +0 -2
- data/.gemtest +0 -0
- data/.gitignore +0 -16
- data/.travis.yml +0 -17
- data/.yardopts +0 -1
- data/CHANGELOG +0 -387
- data/CONTRIBUTORS +0 -36
- data/Gemfile +0 -2
- data/Rakefile +0 -137
- data/TODO +0 -117
- data/examples/example_basic.rb +0 -15
- data/examples/example_command_override.rb +0 -32
- data/examples/example_commands.rb +0 -36
- data/examples/example_hooks.rb +0 -9
- data/examples/example_image_edit.rb +0 -67
- data/examples/example_input.rb +0 -7
- data/examples/example_input2.rb +0 -29
- data/examples/example_output.rb +0 -11
- data/examples/example_print.rb +0 -6
- data/examples/example_prompt.rb +0 -9
- data/examples/helper.rb +0 -6
- data/lib/pry/completion.rb +0 -221
- data/lib/pry/custom_completions.rb +0 -6
- data/lib/pry/default_commands/cd.rb +0 -81
- data/lib/pry/default_commands/commands.rb +0 -62
- data/lib/pry/default_commands/context.rb +0 -98
- data/lib/pry/default_commands/easter_eggs.rb +0 -95
- data/lib/pry/default_commands/editing.rb +0 -420
- data/lib/pry/default_commands/find_method.rb +0 -169
- data/lib/pry/default_commands/gems.rb +0 -84
- data/lib/pry/default_commands/gist.rb +0 -187
- data/lib/pry/default_commands/help.rb +0 -127
- data/lib/pry/default_commands/hist.rb +0 -120
- data/lib/pry/default_commands/input_and_output.rb +0 -306
- data/lib/pry/default_commands/introspection.rb +0 -410
- data/lib/pry/default_commands/ls.rb +0 -272
- data/lib/pry/default_commands/misc.rb +0 -38
- data/lib/pry/default_commands/navigating_pry.rb +0 -110
- data/lib/pry/default_commands/whereami.rb +0 -92
- data/lib/pry/extended_commands/experimental.rb +0 -7
- data/lib/pry/rbx_method.rb +0 -13
- data/man/pry.1 +0 -195
- data/man/pry.1.html +0 -204
- data/man/pry.1.ronn +0 -141
- data/pry.gemspec +0 -46
- data/test/candidate_helper1.rb +0 -11
- data/test/candidate_helper2.rb +0 -8
- data/test/helper.rb +0 -223
- data/test/test_cli.rb +0 -78
- data/test/test_code.rb +0 -201
- data/test/test_command.rb +0 -712
- data/test/test_command_helpers.rb +0 -9
- data/test/test_command_integration.rb +0 -668
- data/test/test_command_set.rb +0 -610
- data/test/test_completion.rb +0 -62
- data/test/test_control_d_handler.rb +0 -45
- data/test/test_default_commands/example.erb +0 -5
- data/test/test_default_commands/test_cd.rb +0 -318
- data/test/test_default_commands/test_context.rb +0 -280
- data/test/test_default_commands/test_documentation.rb +0 -314
- data/test/test_default_commands/test_find_method.rb +0 -50
- data/test/test_default_commands/test_gems.rb +0 -18
- data/test/test_default_commands/test_help.rb +0 -57
- data/test/test_default_commands/test_input.rb +0 -428
- data/test/test_default_commands/test_introspection.rb +0 -511
- data/test/test_default_commands/test_ls.rb +0 -151
- data/test/test_default_commands/test_shell.rb +0 -343
- data/test/test_default_commands/test_show_source.rb +0 -432
- data/test/test_exception_whitelist.rb +0 -21
- data/test/test_history_array.rb +0 -65
- data/test/test_hooks.rb +0 -521
- data/test/test_indent.rb +0 -277
- data/test/test_input_stack.rb +0 -86
- data/test/test_method.rb +0 -401
- data/test/test_pry.rb +0 -463
- data/test/test_pry_defaults.rb +0 -419
- data/test/test_pry_history.rb +0 -84
- data/test/test_pry_output.rb +0 -41
- data/test/test_sticky_locals.rb +0 -155
- data/test/test_syntax_checking.rb +0 -65
- data/test/test_wrapped_module.rb +0 -174
- data/test/testrc +0 -2
- data/test/testrcbad +0 -2
- data/wiki/Customizing-pry.md +0 -397
- data/wiki/Home.md +0 -4
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1,137 +0,0 @@
|
|
1
|
-
require 'rake/clean'
|
2
|
-
require 'rubygems/package_task'
|
3
|
-
|
4
|
-
$:.unshift 'lib'
|
5
|
-
require 'pry/version'
|
6
|
-
|
7
|
-
CLOBBER.include('**/*~', '**/*#*', '**/*.log')
|
8
|
-
CLEAN.include('**/*#*', '**/*#*.*', '**/*_flymake*.*', '**/*_flymake', '**/*.rbc', '**/.#*.*')
|
9
|
-
|
10
|
-
def apply_spec_defaults(s)
|
11
|
-
s.name = 'pry'
|
12
|
-
s.summary = "An IRB alternative and runtime developer console"
|
13
|
-
s.version = Pry::VERSION
|
14
|
-
s.date = Time.now.strftime '%Y-%m-%d'
|
15
|
-
s.authors = ["John Mair (banisterfiend)", "Conrad Irwin"]
|
16
|
-
s.email = ['jrmair@gmail.com', 'conrad.irwin@gmail.com']
|
17
|
-
s.description = s.summary
|
18
|
-
s.homepage = 'http://pry.github.com'
|
19
|
-
s.executables = ['pry']
|
20
|
-
s.files = `git ls-files`.split("\n")
|
21
|
-
s.test_files = `git ls-files -- test/*`.split("\n")
|
22
|
-
s.add_dependency('coderay', '~> 1.0.5')
|
23
|
-
s.add_dependency('slop', ['~> 3.3.1'])
|
24
|
-
s.add_dependency('method_source','~> 0.8')
|
25
|
-
s.add_development_dependency('bacon', '~> 1.1')
|
26
|
-
s.add_development_dependency('open4', '~> 1.3')
|
27
|
-
s.add_development_dependency('rake', '~> 0.9')
|
28
|
-
end
|
29
|
-
|
30
|
-
def check_dependencies
|
31
|
-
require 'bundler'
|
32
|
-
Bundler.definition.missing_specs
|
33
|
-
|
34
|
-
eval('nil', TOPLEVEL_BINDING, '<main>') # workaround for issue #395
|
35
|
-
rescue LoadError
|
36
|
-
# if Bundler isn't installed, we'll just assume your setup is ok.
|
37
|
-
rescue Bundler::GemNotFound
|
38
|
-
raise RuntimeError, "You're missing one or more required gems. Run `bundle install` first."
|
39
|
-
end
|
40
|
-
|
41
|
-
desc "Set up and run tests"
|
42
|
-
task :default => [:test]
|
43
|
-
|
44
|
-
desc "Run tests"
|
45
|
-
task :test do
|
46
|
-
check_dependencies unless ENV['SKIP_DEP_CHECK']
|
47
|
-
sh "bacon -Itest -rubygems -a -q"
|
48
|
-
end
|
49
|
-
|
50
|
-
desc "Run pry"
|
51
|
-
task :pry do
|
52
|
-
check_dependencies unless ENV['SKIP_DEP_CHECK']
|
53
|
-
load 'bin/pry'
|
54
|
-
end
|
55
|
-
|
56
|
-
desc "Show pry version"
|
57
|
-
task :version do
|
58
|
-
puts "Pry version: #{Pry::VERSION}"
|
59
|
-
end
|
60
|
-
|
61
|
-
desc "Profile pry's startup time"
|
62
|
-
task :profile do
|
63
|
-
require 'profile'
|
64
|
-
require 'pry'
|
65
|
-
Pry.start(TOPLEVEL_BINDING, :input => StringIO.new('exit'))
|
66
|
-
end
|
67
|
-
|
68
|
-
desc "Build the gemspec file"
|
69
|
-
task :gemspec => "ruby:gemspec"
|
70
|
-
|
71
|
-
namespace :ruby do
|
72
|
-
spec = Gem::Specification.new do |s|
|
73
|
-
apply_spec_defaults(s)
|
74
|
-
s.platform = Gem::Platform::RUBY
|
75
|
-
end
|
76
|
-
|
77
|
-
Gem::PackageTask.new(spec) do |pkg|
|
78
|
-
pkg.need_zip = false
|
79
|
-
pkg.need_tar = false
|
80
|
-
end
|
81
|
-
|
82
|
-
task :gemspec do
|
83
|
-
File.open("#{spec.name}.gemspec", "w") do |f|
|
84
|
-
f << spec.to_ruby
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
namespace :jruby do
|
90
|
-
spec = Gem::Specification.new do |s|
|
91
|
-
apply_spec_defaults(s)
|
92
|
-
s.add_dependency('spoon', '~> 0.0')
|
93
|
-
s.platform = 'java'
|
94
|
-
end
|
95
|
-
|
96
|
-
Gem::PackageTask.new(spec) do |pkg|
|
97
|
-
pkg.need_zip = false
|
98
|
-
pkg.need_tar = false
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
|
103
|
-
[:mingw32, :mswin32].each do |v|
|
104
|
-
namespace v do
|
105
|
-
spec = Gem::Specification.new do |s|
|
106
|
-
apply_spec_defaults(s)
|
107
|
-
s.add_dependency('win32console', '~> 1.3')
|
108
|
-
s.platform = "i386-#{v}"
|
109
|
-
end
|
110
|
-
|
111
|
-
Gem::PackageTask.new(spec) do |pkg|
|
112
|
-
pkg.need_zip = false
|
113
|
-
pkg.need_tar = false
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
desc "build all platform gems at once"
|
119
|
-
task :gems => [:clean, :rmgems, 'ruby:gem', 'mswin32:gem', 'mingw32:gem', 'jruby:gem']
|
120
|
-
|
121
|
-
desc "remove all platform gems"
|
122
|
-
task :rmgems => ['ruby:clobber_package']
|
123
|
-
|
124
|
-
desc "reinstall gem"
|
125
|
-
task :reinstall => :gems do
|
126
|
-
sh "gem uninstall pry" rescue nil
|
127
|
-
sh "gem install #{File.dirname(__FILE__)}/pkg/pry-#{Pry::VERSION}.gem"
|
128
|
-
end
|
129
|
-
|
130
|
-
desc "build and push latest gems"
|
131
|
-
task :pushgems => :gems do
|
132
|
-
chdir("#{File.dirname(__FILE__)}/pkg") do
|
133
|
-
Dir["*.gem"].each do |gemfile|
|
134
|
-
sh "gem push #{gemfile}"
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
data/TODO
DELETED
@@ -1,117 +0,0 @@
|
|
1
|
-
0.9.5
|
2
|
-
* include method visiblity in show-doc and stat output
|
3
|
-
* tempfile should end in .rb (for edit -t)
|
4
|
-
* ls output should not be in array format
|
5
|
-
* exceptions should allow access to previous items in the backtrace
|
6
|
-
* input should allow multiple objects which are switched to automatically when EOF is reached on the preceding one
|
7
|
-
* pry -r should happen in pry
|
8
|
-
* more plugin-related commands in pry - see installed ones, see activated ones, see available on rubygems
|
9
|
-
* should also allow plugins be explicitly activated as a command line option
|
10
|
-
* should not raise if plugin activation fails (should show warning instead)
|
11
|
-
* more documentation on CommandContext, etc and also command helpers
|
12
|
-
* fix history saving (should not save all of Readline::HISTORY, but only what changed)
|
13
|
-
* prevent blank lines going to Readline::HISTORY
|
14
|
-
* ensure that cat --ex emulates the `whereami` format - includes line numbers and formatted the same, etc
|
15
|
-
* rename inp and out to _inp_ and _out_ otherwise than can overwrite locals by those names when debugging (not good)
|
16
|
-
* add source file to stat command
|
17
|
-
* make plugins use hash instead of array
|
18
|
-
* ensure edit -t has 'edit' alias (no parameters) and dumps eval_string into buffer
|
19
|
-
* whitelist exceptions
|
20
|
-
* hooks system
|
21
|
-
* jruby shell command support
|
22
|
-
|
23
|
-
0.9.3
|
24
|
-
* hist command now excludes last line of input (the command invocation itself)
|
25
|
-
* hist now has `history` alias
|
26
|
-
* `pry -r` requires now happen after plugin loading (so as not to interfere with
|
27
|
-
* new Pry.config.disable_auto_reload option, for turning off auto reloading by edit-method and related
|
28
|
-
* add better error messages for `cd` command
|
29
|
-
* add command_prefix
|
30
|
-
* change some command names to include hyphen, e.g version => pry-version, install => install-command
|
31
|
-
* do cat --ex and edit --ex
|
32
|
-
* add reload-method
|
33
|
-
* fixed exotic object regression - BasicObject.new etc now return "=> unknown"
|
34
|
-
* converted: import => import-set, version => pry-version, install => install-command
|
35
|
-
* fix show-doc bug for ruby 1.8 and Kernel.fork
|
36
|
-
* edit -t (opens a temporary file and evals it in current context when closed)
|
37
|
-
|
38
|
-
0.9.0
|
39
|
-
Major features
|
40
|
-
--------------
|
41
|
-
* Restructure command system and helpers (almost complete)
|
42
|
-
* Delete unnecessary commands, add a couple of new ones (e.g amend-line)
|
43
|
-
* Readline history
|
44
|
-
* Plugin support
|
45
|
-
* Support Rubinius core methods
|
46
|
-
* in[] and out[] arrays
|
47
|
-
* Improve test coverage (test some commands, etc)
|
48
|
-
|
49
|
-
Minor changes
|
50
|
-
-------------
|
51
|
-
* improve edit-method support for various editors
|
52
|
-
* ensure all commands have appropriate error handing and informative error messages
|
53
|
-
* show-doc should include signature of method
|
54
|
-
|
55
|
-
Optional
|
56
|
-
--------
|
57
|
-
* multi-line readline support
|
58
|
-
|
59
|
-
|
60
|
-
0.8.0
|
61
|
-
* allow #{} interpolation of all commands
|
62
|
-
* update documentation! new commands and features and change in behaviour of `run`
|
63
|
-
* add ; at end of line to suppress return value output
|
64
|
-
* Remove message spam (before/after hooks)
|
65
|
-
* stop commands returning a value
|
66
|
-
* use `redo` in the r() method when encounter a command
|
67
|
-
* shell functionality should just use system(), but redirect in and
|
68
|
-
out to Pry.input and Pry.output by reassining $stdin and $stdout
|
69
|
-
for duration of block.
|
70
|
-
* basicobject and no to_s/inspect support
|
71
|
-
* fix documentation, support rdoc and yard properly
|
72
|
-
* only load Ripper if 1.9 AND MRI (support jruby 1.9, using
|
73
|
-
RubyParser)
|
74
|
-
* shell commands invokable file .<command>
|
75
|
-
* supercharge cat-file so it can syntax highlight sourcecode files
|
76
|
-
|
77
|
-
|
78
|
-
0.7.0
|
79
|
-
* add pry-doc support with syntax highlighting for docs
|
80
|
-
* add 'mj' option to ls (restrict to singleton methods)
|
81
|
-
* add _ex_ local to hold last exception raised in an exception
|
82
|
-
|
83
|
-
0.6.8
|
84
|
-
* add whereami command, a la the `ir_b` gem
|
85
|
-
* make .pryrc be loaded by run-time pry sessions
|
86
|
-
|
87
|
-
0.6.7
|
88
|
-
* color support
|
89
|
-
* --simple-prompt for pry commandline
|
90
|
-
* -I mode for pry commandline
|
91
|
-
* --color mode for pry commandline
|
92
|
-
* clean up requires (put them all in one place)
|
93
|
-
* simple-prompt command and toggle-color commandd.
|
94
|
-
|
95
|
-
0.6.1
|
96
|
-
* !@ command alias for exit_all
|
97
|
-
* `cd /` for breaking out to pry top level (jump-to 0)
|
98
|
-
* made `-e` option work in a more effective way for `pry` command line invocation
|
99
|
-
* exit and exit-all commands now accept a parameter, this parameter becomes the return value of repl()
|
100
|
-
* `command` method from CommandBase now accepts a :keep_retval arg that determines if command value is returned to pry session or just `nil` (`nil` was old behaviour)
|
101
|
-
* tests for new :keep_retval and exit-all/exit behaviour; :keep_retval will remain undocumented.
|
102
|
-
|
103
|
-
0.5.0 release:
|
104
|
-
* !!!! UPDATE DOCUMENTATION !!!!
|
105
|
-
* Use clipped version of Pry.view() for large objects
|
106
|
-
* Exit Pry session on ^d
|
107
|
-
* Use Shellwords for breaking up parameters to pry commands
|
108
|
-
* Use OptionParser to parse options for default pry commands
|
109
|
-
* Add version command
|
110
|
-
* Refactor 'status' command: add current method info
|
111
|
-
* Add meth_name_from_binding utility lambda to commands.rb
|
112
|
-
* Add -M, -m, -v(erbose), -a(ll), -s(uper), -l(ocals), -i(ivars), -k(klass vars) options to ls
|
113
|
-
* add -i(nstance) option to show-method
|
114
|
-
* add --help option to most commands
|
115
|
-
* Get rid of ls_method and ls_imethods (subsumed by more powerful ls)
|
116
|
-
* Get rid of show_idoc and show_imethod
|
117
|
-
* Add special eval-file command that evals target file in current context
|
data/examples/example_basic.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
-
|
3
|
-
# define a local.
|
4
|
-
a = "a local variable"
|
5
|
-
|
6
|
-
# defing a top-level method.
|
7
|
-
def hello
|
8
|
-
puts "hello world!"
|
9
|
-
end
|
10
|
-
|
11
|
-
# Start pry session at top-level.
|
12
|
-
# The local variable `a` and the `hello` method will
|
13
|
-
# be accessible.
|
14
|
-
puts __LINE__
|
15
|
-
binding.pry
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
-
|
3
|
-
# Inherit standard command set, but tweak them by importing some and
|
4
|
-
# overriding others.
|
5
|
-
# Illustrates use of `command`, `run`, and `import_from` commands.
|
6
|
-
class MyCommands < Pry::CommandBase
|
7
|
-
|
8
|
-
# Override ls command
|
9
|
-
command "ls", "An unhelpful ls" do
|
10
|
-
output.puts "No, i refuse to display any useful information."
|
11
|
-
end
|
12
|
-
|
13
|
-
# bring in just the status command from Pry::Commands
|
14
|
-
import_from Pry::Commands, "status"
|
15
|
-
|
16
|
-
# analogy to Ruby's native alias_method idiom for decorating a method
|
17
|
-
alias_command "old_status", "status"
|
18
|
-
|
19
|
-
# Invoke one command from within another using `run`
|
20
|
-
command "status", "Modified status." do |x|
|
21
|
-
output.puts "About to show status, are you ready?"
|
22
|
-
run "old_status", x
|
23
|
-
output.puts "Finished showing status."
|
24
|
-
end
|
25
|
-
|
26
|
-
# bring in a few other commands
|
27
|
-
import_from Pry::Commands, "quit", "show-method"
|
28
|
-
end
|
29
|
-
|
30
|
-
# Start a Pry session using the commands defined in MyCommands
|
31
|
-
# Type 'help' in Pry to get a list of the commands and their descriptions
|
32
|
-
Pry.start(TOPLEVEL_BINDING, :commands => MyCommands)
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
-
|
3
|
-
class MathCommands < Pry::CommandBase
|
4
|
-
command "greet", "Greet a person, e.g: greet john" do |name|
|
5
|
-
output.puts "Good afternoon #{name.capitalize}! Do you like Math?"
|
6
|
-
end
|
7
|
-
|
8
|
-
command "add", "Add a list of numbers together, e.g: add 1 2 3 4" do |*args|
|
9
|
-
output.puts "Total: #{args.map(&:to_f).inject(&:+)}"
|
10
|
-
end
|
11
|
-
|
12
|
-
command "multiply", "Multiply a list of numbers together, e.g: multiply 1 2 3 4" do |*args|
|
13
|
-
output.puts "Total: #{args.map(&:to_f).inject(&:*)}"
|
14
|
-
end
|
15
|
-
|
16
|
-
# Explicitly giving a description of "" to prevent command being
|
17
|
-
# displayed in 'help'
|
18
|
-
command "exit", "" do
|
19
|
-
throw :breakout, 0
|
20
|
-
end
|
21
|
-
|
22
|
-
# Bring in the "!" method from Pry::Commands
|
23
|
-
import_from Pry::Commands, "!"
|
24
|
-
end
|
25
|
-
|
26
|
-
# Since we provide math commands, let's have mathematical
|
27
|
-
# before_session and after_session hooks, and a mathematical prompt
|
28
|
-
math_prompt = [proc { "math> " }, proc { "math* " }]
|
29
|
-
math_hooks = {
|
30
|
-
:before_session => proc { |output, *| output.puts "Welcome! Let's do some math! Type 'help' for a list of commands." },
|
31
|
-
:after_session => proc { |output, *| output.puts "Goodbye!" }
|
32
|
-
}
|
33
|
-
|
34
|
-
# Start a Pry session using the commands defined in MyCommands
|
35
|
-
# Type 'help' in Pry to get a list of the commands and their descriptions
|
36
|
-
Pry.start(TOPLEVEL_BINDING, :commands => MathCommands, :prompt => math_prompt, :hooks => math_hooks)
|
data/examples/example_hooks.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
-
|
3
|
-
my_hooks = {
|
4
|
-
:before_session => proc { |out, target| out.puts "Opening #{target.eval('self')}." },
|
5
|
-
:after_session => proc { |out, target| out.puts "Closing #{target.eval('self')}." }
|
6
|
-
}
|
7
|
-
|
8
|
-
# Start a Pry session using the hooks hash defined in my_hooks
|
9
|
-
Pry.start(TOPLEVEL_BINDING, :hooks => my_hooks)
|
@@ -1,67 +0,0 @@
|
|
1
|
-
# Note: this requires you to have Gosu and TexPlay installed.
|
2
|
-
# `gem install gosu`
|
3
|
-
# `gem install texplay`
|
4
|
-
#
|
5
|
-
# Extra instructions for installing Gosu on Linux can be found here:
|
6
|
-
# http://code.google.com/p/gosu/wiki/GettingStartedOnLinux
|
7
|
-
#
|
8
|
-
# Instructions for using TexPlay can be found here:
|
9
|
-
# http://banisterfiend.wordpress.com/2008/08/23/texplay-an-image-manipulation-tool-for-ruby-and-gosu/
|
10
|
-
#
|
11
|
-
# Have fun! :)
|
12
|
-
|
13
|
-
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
14
|
-
|
15
|
-
WIDTH = 640
|
16
|
-
HEIGHT = 480
|
17
|
-
|
18
|
-
IMAGE_PROMPT = [ proc { "(image edit)> " }, proc { "(image edit)* " } ]
|
19
|
-
|
20
|
-
class ImageCommands < Pry::CommandBase
|
21
|
-
command "drawing_methods", "Show a list of TexPlay methods" do
|
22
|
-
output.puts "#{Pry.view(TexPlay.public_instance_methods)}"
|
23
|
-
end
|
24
|
-
|
25
|
-
command "exit", "Exit the program." do
|
26
|
-
output.puts "Thanks for dropping by!"
|
27
|
-
exit
|
28
|
-
end
|
29
|
-
|
30
|
-
import_from Pry::Commands, "ls", "!"
|
31
|
-
end
|
32
|
-
|
33
|
-
class WinClass < Gosu::Window
|
34
|
-
|
35
|
-
def initialize
|
36
|
-
super(WIDTH, HEIGHT, false)
|
37
|
-
@img = TexPlay.create_image(self, 200, 200).clear :color => :black
|
38
|
-
@img.rect 0, 0, @img.width - 1, @img.height - 1
|
39
|
-
|
40
|
-
@binding = Pry.binding_for(@img)
|
41
|
-
|
42
|
-
@pry_instance = Pry.new(:commands => ImageCommands, :prompt => IMAGE_PROMPT)
|
43
|
-
end
|
44
|
-
|
45
|
-
def draw
|
46
|
-
@img.draw_rot(WIDTH / 2, HEIGHT / 2, 1, 0, 0.5, 0.5)
|
47
|
-
end
|
48
|
-
|
49
|
-
def update
|
50
|
-
exit if button_down?(Gosu::KbEscape)
|
51
|
-
|
52
|
-
# We do not want a REPL session as the loop prevents the image
|
53
|
-
# being updated; instead we do a REP session, and let the image
|
54
|
-
# update each time the user presses enter. We maintain the same
|
55
|
-
# binding object to keep locals between calls to `Pry#rep()`
|
56
|
-
@pry_instance.rep(@binding)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
puts "Welcome to ImageEdit; type `help` for a list of commands and `drawing_methods` for a list of drawing methods available."
|
61
|
-
puts "--"
|
62
|
-
puts "Example: Try typing 'circle width/2, height/2, 95, :color => :blue, :fill => true'"
|
63
|
-
puts "If you want to save your image, type: save(\"img.png\")"
|
64
|
-
|
65
|
-
w = WinClass.new
|
66
|
-
w.show
|
67
|
-
|
data/examples/example_input.rb
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
-
|
3
|
-
# Create a StringIO that contains the input data
|
4
|
-
str_input = StringIO.new("puts 'hello world!'\nputs \"I am in \#{self}\"\nexit")
|
5
|
-
|
6
|
-
# Start a Pry session on the Fixnum 5 using the input data in str_input
|
7
|
-
Pry.start(5, :input => str_input)
|
data/examples/example_input2.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
-
|
3
|
-
# Create a StringIO that contains the input data for all the Pry objects
|
4
|
-
cmds = <<-CMDS
|
5
|
-
cd 1
|
6
|
-
status
|
7
|
-
puts 'hello from 1!!'
|
8
|
-
cd 2
|
9
|
-
nesting
|
10
|
-
puts 'hello from 2!!'
|
11
|
-
_pry_.parent.input = Readline
|
12
|
-
back
|
13
|
-
exit-all
|
14
|
-
CMDS
|
15
|
-
|
16
|
-
# create our StringIO object
|
17
|
-
str_input = StringIO.new(cmds)
|
18
|
-
|
19
|
-
# set global input to str_input, this means that all pry sessions
|
20
|
-
# adopt this object as their input object.
|
21
|
-
Pry.input = str_input
|
22
|
-
|
23
|
-
# Start the session reading from str_input.
|
24
|
-
# Note that because `Pry.input` is set to `str_input` all nested pry
|
25
|
-
# sessions will read from `str_input` too. All pry sessions are there
|
26
|
-
# for non-interactive, except for `pry(1)` which starts off
|
27
|
-
# non-interactive but is set to be interactive by pry(2) (using
|
28
|
-
# _pry_.parent.input = Readline)
|
29
|
-
0.pry
|