pry 0.9.0pre3-java → 0.9.4pre2-java
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/CHANGELOG +84 -6
- data/CONTRIBUTORS +13 -0
- data/README.markdown +23 -183
- data/Rakefile +22 -19
- data/TODO +36 -6
- data/bin/pry +12 -1
- data/lib/pry.rb +60 -12
- data/lib/pry/command_context.rb +21 -0
- data/lib/pry/command_processor.rb +62 -16
- data/lib/pry/command_set.rb +25 -11
- data/lib/pry/commands.rb +0 -3
- data/lib/pry/completion.rb +6 -6
- data/lib/pry/config.rb +25 -5
- data/lib/pry/default_commands/basic.rb +27 -6
- data/lib/pry/default_commands/context.rb +84 -35
- data/lib/pry/default_commands/documentation.rb +69 -31
- data/lib/pry/default_commands/easter_eggs.rb +5 -0
- data/lib/pry/default_commands/input.rb +193 -56
- data/lib/pry/default_commands/introspection.rb +98 -50
- data/lib/pry/default_commands/ls.rb +51 -21
- data/lib/pry/default_commands/shell.rb +57 -13
- data/lib/pry/extended_commands/experimental.rb +0 -32
- data/lib/pry/extended_commands/user_command_api.rb +33 -2
- data/lib/pry/helpers/base_helpers.rb +30 -10
- data/lib/pry/helpers/command_helpers.rb +75 -16
- data/lib/pry/helpers/text.rb +12 -11
- data/lib/pry/history.rb +61 -0
- data/lib/pry/plugins.rb +23 -12
- data/lib/pry/pry_class.rb +51 -50
- data/lib/pry/pry_instance.rb +129 -119
- data/lib/pry/version.rb +1 -1
- data/pry.gemspec +46 -0
- data/test/helper.rb +37 -3
- data/test/test_command_processor.rb +62 -19
- data/test/test_command_set.rb +40 -2
- data/test/test_completion.rb +27 -0
- data/test/test_default_commands/test_context.rb +185 -1
- data/test/test_default_commands/test_documentation.rb +10 -0
- data/test/test_default_commands/test_input.rb +207 -11
- data/test/test_default_commands/test_introspection.rb +20 -1
- data/test/test_default_commands/test_shell.rb +18 -0
- data/test/test_pry.rb +261 -45
- data/test/test_pry_history.rb +82 -0
- data/test/test_pry_output.rb +44 -0
- data/test/test_special_locals.rb +35 -0
- metadata +185 -159
data/.gitignore
CHANGED
data/CHANGELOG
CHANGED
@@ -1,3 +1,81 @@
|
|
1
|
+
*/8/2011 version 0.9.4
|
2
|
+
* tempfile should end in .rb (for edit -t)
|
3
|
+
* ls output should not be in array format
|
4
|
+
* fix history saving (should not save all of Readline::HISTORY, but only what changed)
|
5
|
+
* prevent blank lines going to Readline::HISTORY (thanks cirwin!)
|
6
|
+
* ensure that cat --ex emulates the `whereami` format - includes line numbers and formatted the same, etc
|
7
|
+
* fixed bug #200 ( https://github.com/pry/pry/issues/200 )- string interpolation bug (thanks to ryanf)
|
8
|
+
* show-doc and stat now display method visibility (update WIKI)
|
9
|
+
* got rid of warnings caused by stricter ruby 1.9.3 rules
|
10
|
+
* remove interpolation of command names and fix interpolation error messag (update WIKI) (thanks ryanf!)
|
11
|
+
* 'nested sessions' now use binding stacks (so each instance manages its own collection of bindings without spawning other instances)
|
12
|
+
* changed `exit` command so that it now called Kernel#exit (after saving history)
|
13
|
+
* 'quit' now behaves like 'exit-all' (and aliased to exit-all) - it breaks out of the repl loop and sets empties the binding_stack
|
14
|
+
* 'cd ..' just pops a binding off the binding_stack with special behaviour when only one binding in stack - it breaks out of the repl loop
|
15
|
+
* added switch-to command (like jump-to but doesnt unwind the stack)
|
16
|
+
* show-method and show-doc now accept multiple method names
|
17
|
+
* control_d hook added (Pry.config.control_d_handler)
|
18
|
+
* behaviour of ^d is now to break out of current expr if in multi-line expr, or break out of current context if nested, or break out of pry repl loop if at top-level
|
19
|
+
* can no longer interpolate command name itself e.g #{x}-#{y} where x = "show" and y = "doc"
|
20
|
+
* ^C no longer captured
|
21
|
+
* got rid of Pry.active_instance, Pry.last_exception and friends.
|
22
|
+
* also special locals now shared among bindings in a pry instance (i.e _ex_ (and friends) re-injected into new binding entered with 'cd')
|
23
|
+
* renamed inp and out to _in_ and _out_ (to avoid collisions with actual locals in debugging scope)
|
24
|
+
* added third parameter to prompts, the pry instance itself (_pry) see https://github.com/pry/pry/issues/233 for why it's important
|
25
|
+
* cd behaviour when no args performs the same as `cd /`
|
26
|
+
* commands with keep_retval can now return nil (to suppress output now return 'void' instead)
|
27
|
+
* Pry::CommandProcessor::Result introduced
|
28
|
+
* Pry.view_clip() modified to be more robust and properly display Class#name
|
29
|
+
* edit command when invoked with no args now works like edit -t
|
30
|
+
* when edit is invoked (with no args or with -t) inside a multi-line expression input buffer, it dumps that buffer into a temp file and takes you to it
|
31
|
+
* got rid of Pry#null_input? since all that was needed was eval_string.empty?
|
32
|
+
* cd command now supports complex syntax: cd ../@y/y/../z
|
33
|
+
* JRuby is no longer a 2nd class citizen, almost full JRuby support, passing 100% tests
|
34
|
+
|
35
|
+
*/7/2011 version 0.9.3
|
36
|
+
* cat --ex (cats 5 lines above and below line in file where exception was raised)
|
37
|
+
* edit --ex (edits line in file where exception was raised)
|
38
|
+
* edit -t (opens a temporary file and evals it in current context when closed)
|
39
|
+
* `pry -r` requires now happen after plugin loading (so as not to interfere with
|
40
|
+
* new Pry.config.disable_auto_reload option, for turning off auto reloading by edit-method and related (thanks ryanf)
|
41
|
+
* add better error messages for `cd` command
|
42
|
+
* fixed exotic object regression - BasicObject.new etc now return "=> unknown"
|
43
|
+
* added reload-method command (reloads the associated file of a method)
|
44
|
+
* converted: import => import-set, version => pry-version, install => install-command
|
45
|
+
* Pry.config.command_prefix support (thanks ryanf!)
|
46
|
+
* fixed indentation for simple-prompt
|
47
|
+
* hist command now excludes last line of input (the command invocation itself)
|
48
|
+
* hist now has `history` alias
|
49
|
+
* missing plugins no longer raise exception, just print a warning to $stderr
|
50
|
+
* fixed jedit editor support
|
51
|
+
|
52
|
+
21/6/2011 version 0.9.2
|
53
|
+
* fixed string interpolation bug (caused valid ruby code not to execute, sorry!)
|
54
|
+
* fixed `ls` command, so it can properly display members of Object and classes, and BasicObject, etc
|
55
|
+
* added a few git related commands to experimental command set, blame and diff
|
56
|
+
|
57
|
+
17/6/2011 version 0.9.0
|
58
|
+
* plugin system
|
59
|
+
* regex commands
|
60
|
+
* show-method works on methods defined in REPL
|
61
|
+
* new command system/API
|
62
|
+
* rubinius core support
|
63
|
+
* more backports to ruby 1.8
|
64
|
+
* inp/out special locals
|
65
|
+
* _ex_ backtrace navigation object (_ex_.line, _ex_.file)
|
66
|
+
* readline history saving/loading
|
67
|
+
* prompt stack
|
68
|
+
* more hooks
|
69
|
+
* amend-line
|
70
|
+
* play
|
71
|
+
* show-input
|
72
|
+
* edit
|
73
|
+
* much more comprehensive test suite
|
74
|
+
* support for new and old rubygems API
|
75
|
+
* changed -s behaviour of ls (now excludes Object methods)
|
76
|
+
* removed eval-file, lls, lcd, and a few other commands
|
77
|
+
|
78
|
+
|
1
79
|
26/3/2011 version 0.7.6.1
|
2
80
|
* added slightly better support for YARD
|
3
81
|
* now @param and @return tags are colored green and markdown `code` is syntax highlighted using coderay
|
@@ -24,11 +102,11 @@
|
|
24
102
|
* --color mode for pry commandline
|
25
103
|
* clean up requires (put them all in one place)
|
26
104
|
* simple-prompt command and toggle-color commandd.
|
27
|
-
|
105
|
+
|
28
106
|
28/2/2011 version 0.6.3
|
29
107
|
* Using MethodSource 0.3.4 so 1.8 show-method support provided
|
30
108
|
* `Set` class added to list of classes that are inspected
|
31
|
-
|
109
|
+
|
32
110
|
26/2/2011 version 0.6.1
|
33
111
|
* !@ command alias for exit_all
|
34
112
|
* `cd /` for breaking out to pry top level (jump-to 0)
|
@@ -40,11 +118,11 @@
|
|
40
118
|
22/2/2011 version 0.5.8
|
41
119
|
* Added -c (context) option to show-doc, show-methods and eval-file
|
42
120
|
* Fixed up ordering issue of -c and -r parameters to command line pry
|
43
|
-
|
121
|
+
|
44
122
|
21/2/2011 version 0.5.7
|
45
123
|
* Added pry executable, auto-loads .pryrc in user's home directory, if it
|
46
124
|
exists.
|
47
|
-
|
125
|
+
|
48
126
|
19/2/2011 version 0.5.5
|
49
127
|
* Added Pry.run_command
|
50
128
|
* More useful error messages
|
@@ -65,7 +143,7 @@
|
|
65
143
|
* Get rid of ls_method and ls_imethods (subsumed by more powerful ls)
|
66
144
|
* Get rid of show_idoc and show_imethod
|
67
145
|
* Add special eval-file command that evals target file in current context
|
68
|
-
|
146
|
+
|
69
147
|
27/1/2011 version 0.4.5
|
70
148
|
* fixed show_method (though fragile as it references __binding_impl__
|
71
149
|
directly, making a name change to that method difficult
|
@@ -99,4 +177,4 @@
|
|
99
177
|
* now rescuing SyntaxError as well as Racc::Parser error in valid_expression?
|
100
178
|
8/12/2010 version 0.1.0
|
101
179
|
* release!
|
102
|
-
|
180
|
+
|
data/CONTRIBUTORS
ADDED
data/README.markdown
CHANGED
@@ -1,9 +1,17 @@
|
|
1
|
-
![Alt text](http://dl.dropbox.com/u/
|
1
|
+
![Alt text](http://dl.dropbox.com/u/26521875/pry_logo_350.png)
|
2
2
|
|
3
3
|
(C) John Mair (banisterfiend) 2011
|
4
4
|
|
5
5
|
_Get to the code_
|
6
6
|
|
7
|
+
**Note that JRuby is not yet supported in this release, but will be
|
8
|
+
soon.**
|
9
|
+
|
10
|
+
**Please** [DONATE](http://www.pledgie.com/campaigns/15899) to the Pry project - Pry was a **huge** amount of work and every donation received is encouraging and supports Pry's continued development!
|
11
|
+
|
12
|
+
[Skip to the website (recommended)](http://pry.github.com) <br />
|
13
|
+
[Skip to the wiki](https://github.com/pry/pry/wiki)
|
14
|
+
|
7
15
|
Pry is a powerful alternative to the standard IRB shell for Ruby. It is
|
8
16
|
written from scratch to provide a number of advanced features, some of
|
9
17
|
these include:
|
@@ -28,7 +36,7 @@ currently not nearly as powerful as tools like [SLIME](http://en.wikipedia.org/w
|
|
28
36
|
general direction Pry is heading.
|
29
37
|
|
30
38
|
Pry is also fairly flexible and allows significant user
|
31
|
-
[customization](
|
39
|
+
[customization](https://github.com/pry/pry/wiki/Customization-and-configuration)
|
32
40
|
is trivial to set it to read from any object that has a `readline` method and write to any object that has a
|
33
41
|
`puts` method - many other aspects of Pry are also configurable making
|
34
42
|
it a good choice for implementing custom shells.
|
@@ -43,8 +51,9 @@ methods. The additional docs are accessed through the `show-doc` and
|
|
43
51
|
`show-method` commands.
|
44
52
|
|
45
53
|
* Install the [gem](https://rubygems.org/gems/pry): `gem install pry`
|
46
|
-
*
|
47
|
-
*
|
54
|
+
* Browse the comprehensive [documentation at the official Pry wiki](https://github.com/pry/pry/wiki)
|
55
|
+
* Read the [YARD API documentation](http://rdoc.info/github/pry/pry/master/file/README.markdown)
|
56
|
+
* See the [source code](http://github.com/pry/pry)
|
48
57
|
|
49
58
|
Pry also has `rubygems-test` support; to participate, first install
|
50
59
|
Pry, then:
|
@@ -62,7 +71,7 @@ whitespace in between. Commands support a flexible syntax and allow
|
|
62
71
|
Pry command will show a list of all private instance methods (in
|
63
72
|
scope) that begin with 'pa'
|
64
73
|
|
65
|
-
pry(YARD::Parser::SourceParser):5> ls -Mp --grep pa
|
74
|
+
pry(YARD::Parser::SourceParser):5> ls -Mp --grep ^pa
|
66
75
|
[:parser_class, :parser_type=, :parser_type_for_filename]
|
67
76
|
|
68
77
|
### Navigating around state
|
@@ -193,8 +202,6 @@ current directory and count the number of lines in that file with
|
|
193
202
|
|
194
203
|
### Code Browsing
|
195
204
|
|
196
|
-
#### show-method
|
197
|
-
|
198
205
|
You can browse method source code with the `show-method` command. Nearly all Ruby methods (and some C methods, with the pry-doc
|
199
206
|
gem) can have their source viewed. Code that is longer than a page is
|
200
207
|
sent through a pager (such as less), and all code is properly syntax
|
@@ -224,7 +231,7 @@ instance methods beginning with 're' and display the source code for the `rep` m
|
|
224
231
|
148: end
|
225
232
|
|
226
233
|
Note that we can also view C methods (from Ruby Core) using the
|
227
|
-
`pry-doc`
|
234
|
+
`pry-doc` plugin; we also show off the alternate syntax for
|
228
235
|
`show-method`:
|
229
236
|
|
230
237
|
pry(main)> show-method Array#select
|
@@ -248,47 +255,6 @@ Note that we can also view C methods (from Ruby Core) using the
|
|
248
255
|
return result;
|
249
256
|
}
|
250
257
|
|
251
|
-
#### Special locals
|
252
|
-
|
253
|
-
Some commands such as `show-method`, `show-doc`, `show-command`, `stat`
|
254
|
-
and `cat` update the `_file_` and `_dir_` local variables after they
|
255
|
-
run. These locals contain the full path to the file involved in the
|
256
|
-
last command as well as the directory containing that file.
|
257
|
-
|
258
|
-
You can then use these special locals in conjunction with shell
|
259
|
-
commands to do such things as change directory into the directory
|
260
|
-
containing the file, open the file in an editor, display the file using `cat`, and so on.
|
261
|
-
|
262
|
-
In the following example we wil use Pry to fix a bug in a method:
|
263
|
-
|
264
|
-
pry(main)> greet "john"
|
265
|
-
hello johnhow are you?=> nil
|
266
|
-
pry(main)> show-method greet
|
267
|
-
|
268
|
-
From: /Users/john/ruby/play/bug.rb @ line 2:
|
269
|
-
Number of lines: 4
|
270
|
-
|
271
|
-
def greet(name)
|
272
|
-
print "hello #{name}"
|
273
|
-
print "how are you?"
|
274
|
-
end
|
275
|
-
pry(main)> .emacsclient #{_file_}
|
276
|
-
pry(main)> load _file_
|
277
|
-
pry(main)> greet "john"
|
278
|
-
hello john
|
279
|
-
how are you?
|
280
|
-
=> nil
|
281
|
-
pry(main)> show-method greet
|
282
|
-
|
283
|
-
From: /Users/john/ruby/play/bug.rb @ line 2:
|
284
|
-
Number of lines: 4
|
285
|
-
|
286
|
-
def greet(name)
|
287
|
-
puts "hello #{name}"
|
288
|
-
puts "how are you?"
|
289
|
-
end
|
290
|
-
|
291
|
-
|
292
258
|
### Documentation Browsing
|
293
259
|
|
294
260
|
One use-case for Pry is to explore a program at run-time by `cd`-ing
|
@@ -343,63 +309,6 @@ We can also use `ri` in the normal way:
|
|
343
309
|
|
344
310
|
a -- b -- c --
|
345
311
|
|
346
|
-
|
347
|
-
### History
|
348
|
-
|
349
|
-
Readline history can be viewed and replayed using the `hist`
|
350
|
-
command. When `hist` is invoked with no arguments it simply displays
|
351
|
-
the history (passing the output through a pager if necessary))
|
352
|
-
when the `--replay` option is used a line or a range of lines of
|
353
|
-
history can be replayed.
|
354
|
-
|
355
|
-
In the example below we will enter a few lines in a Pry session and
|
356
|
-
then view history; we will then replay one of those lines:
|
357
|
-
|
358
|
-
pry(main)> hist
|
359
|
-
0: hist -h
|
360
|
-
1: ls
|
361
|
-
2: ls
|
362
|
-
3: show-method puts
|
363
|
-
4: x = rand
|
364
|
-
5: hist
|
365
|
-
pry(main)> hist --replay 3
|
366
|
-
|
367
|
-
From: io.c in Ruby Core (C Method):
|
368
|
-
Number of lines: 8
|
369
|
-
|
370
|
-
static VALUE
|
371
|
-
rb_f_puts(int argc, VALUE *argv, VALUE recv)
|
372
|
-
{
|
373
|
-
if (recv == rb_stdout) {
|
374
|
-
return rb_io_puts(argc, argv, recv);
|
375
|
-
}
|
376
|
-
return rb_funcall2(rb_stdout, rb_intern("puts"), argc, argv);
|
377
|
-
}
|
378
|
-
|
379
|
-
In the next example we will replay a range of lines in history. Note
|
380
|
-
that we replay to a point where a class definition is still open and so
|
381
|
-
we can continue to add instance methods to the class:
|
382
|
-
|
383
|
-
pry(main)> hist
|
384
|
-
0: class Hello
|
385
|
-
1: def hello_world
|
386
|
-
2: puts "hello world!"
|
387
|
-
3: end
|
388
|
-
4: end
|
389
|
-
5: hist
|
390
|
-
pry(main)> hist --replay 0..3
|
391
|
-
pry(main)* def goodbye_world
|
392
|
-
pry(main)* puts "goodbye world!"
|
393
|
-
pry(main)* end
|
394
|
-
pry(main)* end
|
395
|
-
=> nil
|
396
|
-
pry(main)> Hello.new.goodbye_world;
|
397
|
-
goodbye world!
|
398
|
-
pry(main)>
|
399
|
-
|
400
|
-
Also note that in the above the line `Hello.new.goodbye_world;` ends
|
401
|
-
with a semi-colon which causes expression evaluation output to be suppressed.
|
402
|
-
|
403
312
|
### Gist integration
|
404
313
|
|
405
314
|
If the `gist` gem is installed then method source or documentation can be gisted to github with the
|
@@ -447,54 +356,12 @@ avaiable.
|
|
447
356
|
|
448
357
|
MyArtChannel has kindly provided a hack to replace the `rails console` command in Rails 3: [https://gist.github.com/941174](https://gist.github.com/941174) This is not recommended for code bases with multiple developers, as they may not all want to use Pry.
|
449
358
|
|
450
|
-
###
|
451
|
-
|
452
|
-
#### Other Features:
|
453
|
-
|
454
|
-
* Pry can be invoked both at the command-line and used as a more
|
455
|
-
powerful alternative to IRB or it can be invoked at runtime and used
|
456
|
-
as a developer consoler / debugger.
|
457
|
-
* Additional documentation and source code for Ruby Core methods are supported when the `pry-doc` gem is installed.
|
458
|
-
* Pry sessions can nest arbitrarily deeply -- to go back one level of nesting type 'exit' or 'quit' or 'back'
|
459
|
-
* Pry comes with syntax highlighting on by default just use the `toggle-color` command to turn it on and off.
|
460
|
-
* Use `_` to recover last result.
|
461
|
-
* Use `_pry_` to reference the Pry instance managing the current session.
|
462
|
-
* Use `_ex_` to recover the last exception.
|
463
|
-
* Use `_file_` and `_dir_` to refer to the associated file or
|
464
|
-
directory containing the definition for a method.
|
465
|
-
* A trailing `;` on an entered expression suppresses the display of
|
466
|
-
the evaluation output.
|
467
|
-
* Typing `!` on a line by itself will clear the input buffer - useful for
|
468
|
-
getting you out of a situation where the parsing process
|
469
|
-
goes wrong and you get stuck in an endless read loop.
|
470
|
-
* Pry supports tab completion.
|
471
|
-
* Pry has multi-line support built in.
|
472
|
-
* Use `^d` (control-d) to quickly break out of a session.
|
473
|
-
* Pry has special commands not found in many other Ruby REPLs: `show-method`, `show-doc`
|
474
|
-
`jump-to`, `ls`, `cd`, `cat`
|
475
|
-
* Pry gives good control over nested sessions (important when exploring complicated runtime state)
|
476
|
-
* Pry is not based on the IRB codebase.
|
477
|
-
* Pry allows significant customizability.
|
478
|
-
* Pry uses the [method_source](https://github.com/banister/method_source) gem; so
|
479
|
-
this functionality is available to a Pry session.
|
480
|
-
* Pry uses [RubyParser](https://github.com/seattlerb/ruby_parser) to
|
481
|
-
validate expressions in 1.8, and [Ripper](http://rdoc.info/docs/ruby-core/1.9.2/Ripper) for 1.9.
|
482
|
-
* Pry implements all the methods in the REPL chain separately: `Pry#r`
|
483
|
-
for reading; `Pry#re` for eval; `Pry#rep` for printing; and `Pry#repl`
|
484
|
-
for the loop (`Pry.start` simply wraps `Pry.new.repl`). You can
|
485
|
-
invoke any of these methods directly depending on exactly what aspect of the functionality you need.
|
486
|
-
|
487
|
-
#### Limitations:
|
488
|
-
|
489
|
-
* Some Pry commands (e.g `show-command`) do not work in Ruby 1.8
|
490
|
-
MRI. But many other commands do work in Ruby 1.8 MRI, e.g
|
491
|
-
`show-method`, due to a functional 1.8 source_location implementation.
|
359
|
+
### Limitations:
|
360
|
+
|
492
361
|
* JRuby not officially supported due to currently too many quirks and
|
493
|
-
strange behaviour.
|
494
|
-
OK in JRuby. Full JRuby support coming in a future version.
|
495
|
-
* `method_source` functionality does not work in JRuby with Ruby 1.8
|
362
|
+
strange behaviour. This will be fixed soon.
|
496
363
|
* Tab completion is currently a bit broken/limited this will have a
|
497
|
-
|
364
|
+
major overhaul in a future version.
|
498
365
|
|
499
366
|
### Syntax Highlighting
|
500
367
|
|
@@ -503,40 +370,15 @@ off in a session by using the `toggle-color` command. Alternatively,
|
|
503
370
|
you can turn it off permanently by putting the line `Pry.color =
|
504
371
|
false` in your `~/.pryrc` file.
|
505
372
|
|
506
|
-
### Example Programs
|
507
|
-
|
508
|
-
Pry comes bundled with a few example programs to illustrate some
|
509
|
-
features, see the `examples/` directory.
|
510
|
-
|
511
|
-
* `example_basic.rb` - Demonstrate basic Pry functionality
|
512
|
-
* `example_input.rb` - Demonstrates how to set the `input` object.
|
513
|
-
* `example_output.rb` - Demonstrates how to set the `output` object.
|
514
|
-
* `example_hooks.rb` - Demonstrates how to set the `hooks` hash.
|
515
|
-
* `example_print.rb` - Demonstrates how to set the `print` object.
|
516
|
-
* `example_prompt.rb` - Demonstrates how to set the `prompt`.
|
517
|
-
* `example_input2.rb` - An advanced `input` example.
|
518
|
-
* `example_commands.rb` - Implementing a mathematical command set.
|
519
|
-
* `example_commands_override.rb` - An advanced `commands` example.
|
520
|
-
* `example_image_edit.rb` - A simple image editor using a Pry REPL (requires `Gosu` and `TexPlay` gems).
|
521
|
-
|
522
|
-
### Customizing Pry
|
523
|
-
|
524
|
-
Pry allows a large degree of customization.
|
525
|
-
|
526
|
-
[Read how to customize Pry here.](http://rdoc.info/github/banister/pry/master/file/wiki/Customizing-pry.md)
|
527
|
-
|
528
373
|
### Future Directions
|
529
374
|
|
530
375
|
Many new features are planned such as:
|
531
376
|
|
377
|
+
* Increase modularity (rely more on plugin system)
|
532
378
|
* Much improved tab completion (using [Bond](http://github.com/cldwalker/bond))
|
533
379
|
* Improved JRuby support
|
534
|
-
* Support for viewing source-code of binary gems and C stdlib
|
535
|
-
* git integration
|
536
380
|
* Much improved documentation system, better support for YARD
|
537
|
-
*
|
538
|
-
* Get rid of `.` prefix for shell commands in `shell-mode`
|
539
|
-
* Better support for code and method reloading
|
381
|
+
* Better support for code and method reloading and saving code
|
540
382
|
* Extended and more sophisticated command system, allowing piping
|
541
383
|
between commands and running commands in background
|
542
384
|
|
@@ -549,8 +391,6 @@ Problems or questions contact me at [github](http://github.com/banister)
|
|
549
391
|
The Pry team consists of:
|
550
392
|
|
551
393
|
* [banisterfiend](http://github.com/banister)
|
552
|
-
* [
|
553
|
-
* [injekt](http://github.com/injekt)
|
394
|
+
* [Rob Gleeson](https://github.com/robgleeson)
|
554
395
|
* [Mon_Ouie](http://github.com/mon-ouie)
|
555
|
-
|
556
|
-
|
396
|
+
* [injekt](http://github.com/injekt)
|
data/Rakefile
CHANGED
@@ -10,24 +10,25 @@ CLEAN.include("**/*#*", "**/*#*.*", "**/*_flymake*.*", "**/*_flymake",
|
|
10
10
|
|
11
11
|
def apply_spec_defaults(s)
|
12
12
|
s.name = "pry"
|
13
|
-
s.summary = "
|
13
|
+
s.summary = "An IRB alternative and runtime developer console"
|
14
14
|
s.version = Pry::VERSION
|
15
15
|
s.date = Time.now.strftime '%Y-%m-%d'
|
16
16
|
s.author = "John Mair (banisterfiend)"
|
17
17
|
s.email = 'jrmair@gmail.com'
|
18
18
|
s.description = s.summary
|
19
|
-
s.homepage = "http://
|
19
|
+
s.homepage = "http://pry.github.com"
|
20
20
|
s.executables = ["pry"]
|
21
21
|
s.files = `git ls-files`.split("\n")
|
22
22
|
s.test_files = `git ls-files -- test/*`.split("\n")
|
23
23
|
s.add_dependency("ruby_parser",">=2.0.5")
|
24
24
|
s.add_dependency("coderay",">=0.9.8")
|
25
|
-
s.add_dependency("slop","~>1.
|
26
|
-
s.add_dependency("method_source",">=0.
|
25
|
+
s.add_dependency("slop","~>2.1.0")
|
26
|
+
s.add_dependency("method_source",">=0.6.5")
|
27
27
|
s.add_development_dependency("bacon",">=1.1.0")
|
28
28
|
s.add_development_dependency("open4", "~>1.0.1")
|
29
29
|
end
|
30
30
|
|
31
|
+
desc "Run tests"
|
31
32
|
task :test do
|
32
33
|
sh "bacon -Itest -rubygems -a"
|
33
34
|
end
|
@@ -52,15 +53,29 @@ namespace :ruby do
|
|
52
53
|
pkg.need_zip = false
|
53
54
|
pkg.need_tar = false
|
54
55
|
end
|
55
|
-
|
56
|
+
|
56
57
|
desc "Generate gemspec file"
|
57
58
|
task :gemspec do
|
58
|
-
File.open("#{spec.name}
|
59
|
+
File.open("#{spec.name}.gemspec", "w") do |f|
|
59
60
|
f << spec.to_ruby
|
60
61
|
end
|
61
62
|
end
|
62
63
|
end
|
63
64
|
|
65
|
+
namespace :jruby do
|
66
|
+
spec = Gem::Specification.new do |s|
|
67
|
+
apply_spec_defaults(s)
|
68
|
+
s.add_dependency("spoon", ">=0.0.1")
|
69
|
+
s.platform = "java"
|
70
|
+
end
|
71
|
+
|
72
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
73
|
+
pkg.need_zip = false
|
74
|
+
pkg.need_tar = false
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
|
64
79
|
[:mingw32, :mswin32].each do |v|
|
65
80
|
namespace v do
|
66
81
|
spec = Gem::Specification.new do |s|
|
@@ -76,20 +91,8 @@ end
|
|
76
91
|
end
|
77
92
|
end
|
78
93
|
|
79
|
-
namespace :jruby do
|
80
|
-
spec = Gem::Specification.new do |s|
|
81
|
-
apply_spec_defaults(s)
|
82
|
-
s.platform = "java"
|
83
|
-
end
|
84
|
-
|
85
|
-
Rake::GemPackageTask.new(spec) do |pkg|
|
86
|
-
pkg.need_zip = false
|
87
|
-
pkg.need_tar = false
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
94
|
desc "build all platform gems at once"
|
92
|
-
task :gems => [:clean, :rmgems, "ruby:gem", "
|
95
|
+
task :gems => [:clean, :rmgems, "ruby:gem", "mswin32:gem", "mingw32:gem", "jruby:gem"]
|
93
96
|
|
94
97
|
desc "remove all platform gems"
|
95
98
|
task :rmgems => ["ruby:clobber_package"]
|