pry 0.9.0pre3-java → 0.9.4pre2-java
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.
- 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
|
-

|
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"]
|