pry-docmore 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. data/lib/pry-docmore.rb +63 -0
  2. data/pry-docmore.wiki/Home.md +96 -0
  3. data/pry-docmore.wiki/Ruby Global $! (DollarBang).md +15 -0
  4. data/pry-docmore.wiki/Ruby Global $/" (DollarQuote).md" +4 -0
  5. data/pry-docmore.wiki/Ruby Global $$ (DollarDollar).md +12 -0
  6. data/pry-docmore.wiki/Ruby Global $& (DollarAmpersand).md +16 -0
  7. data/pry-docmore.wiki/Ruby Global $' (DollarTick).md +16 -0
  8. data/pry-docmore.wiki/Ruby Global $* (DollarStar).md +1 -0
  9. data/pry-docmore.wiki/Ruby Global $+ (DollarPlus).md +9 -0
  10. data/pry-docmore.wiki/Ruby Global $, (DollarComma).md +1 -0
  11. data/pry-docmore.wiki/Ruby Global $-0 (DollarDashZero).md +1 -0
  12. data/pry-docmore.wiki/Ruby Global $-F (DollarDashF).md +1 -0
  13. data/pry-docmore.wiki/Ruby Global $-I (DollarDashI).md +1 -0
  14. data/pry-docmore.wiki/Ruby Global $-K (DollarDashK).md +1 -0
  15. data/pry-docmore.wiki/Ruby Global $-W (DollarDashW).md +1 -0
  16. data/pry-docmore.wiki/Ruby Global $-a (DollarDasha).md +1 -0
  17. data/pry-docmore.wiki/Ruby Global $-d (DollarDashd).md +1 -0
  18. data/pry-docmore.wiki/Ruby Global $-i (DollarDashi).md +1 -0
  19. data/pry-docmore.wiki/Ruby Global $-l (DollarDashl).md +1 -0
  20. data/pry-docmore.wiki/Ruby Global $-p (DollarDashp).md +1 -0
  21. data/pry-docmore.wiki/Ruby Global $-v (DollarDashv).md +1 -0
  22. data/pry-docmore.wiki/Ruby Global $-w (DollarDashw).md +1 -0
  23. data/pry-docmore.wiki/Ruby Global $. (DollarDot).md +1 -0
  24. data/pry-docmore.wiki/Ruby Global $0 (DollarZero).md +1 -0
  25. data/pry-docmore.wiki/Ruby Global $1 (DollarOne).md +1 -0
  26. data/pry-docmore.wiki/Ruby Global $2 (DollarTwo).md +1 -0
  27. data/pry-docmore.wiki/Ruby Global $3 (DollarThree).md +1 -0
  28. data/pry-docmore.wiki/Ruby Global $4 (DollarFour).md +1 -0
  29. data/pry-docmore.wiki/Ruby Global $5 (DollarFive).md +1 -0
  30. data/pry-docmore.wiki/Ruby Global $6 (DollarSix).md +1 -0
  31. data/pry-docmore.wiki/Ruby Global $7 (DollarSeven).md +1 -0
  32. data/pry-docmore.wiki/Ruby Global $8 (DollarEight).md +1 -0
  33. data/pry-docmore.wiki/Ruby Global $9 (DollarNine).md +1 -0
  34. data/pry-docmore.wiki/Ruby Global $: (DollarColon).md +3 -0
  35. data/pry-docmore.wiki/Ruby Global $; (DollarSemicolon).md +1 -0
  36. data/pry-docmore.wiki/Ruby Global $< (DollarLessthan).md +1 -0
  37. data/pry-docmore.wiki/Ruby Global $= (DollarEquals).md +2 -0
  38. data/pry-docmore.wiki/Ruby Global $> (DollarGreaterthan).md +1 -0
  39. data/pry-docmore.wiki/Ruby Global $? (Dollar?).md +11 -0
  40. data/pry-docmore.wiki/Ruby Global $@ (DollarAt).md +2 -0
  41. data/pry-docmore.wiki/Ruby Global $DEBUG (DollarDEBUG).md +1 -0
  42. data/pry-docmore.wiki/Ruby Global $FILENAME (DollarFILENAME).md +1 -0
  43. data/pry-docmore.wiki/Ruby Global $KCODE (DollarKCODE).md +1 -0
  44. data/pry-docmore.wiki/Ruby Global $LOADED_FEATURES (DollarLOADEDUnderscoreFEATURES).md +1 -0
  45. data/pry-docmore.wiki/Ruby Global $LOAD_PATH (DollarLOADUnderscorePATH).md +1 -0
  46. data/pry-docmore.wiki/Ruby Global $PROGRAM_NAME (DollarPROGRAMUnderscoreNAME).md +1 -0
  47. data/pry-docmore.wiki/Ruby Global $SAFE (DollarSAFE).md +4 -0
  48. data/pry-docmore.wiki/Ruby Global $VERBOSE (DollarVERBOSE).md +1 -0
  49. data/pry-docmore.wiki/Ruby Global $// (DollarBackslash).md" +1 -0
  50. data/pry-docmore.wiki/Ruby Global $_ (DollarUnderscore).md +1 -0
  51. data/pry-docmore.wiki/Ruby Global $` (DollarBacktick).md +16 -0
  52. data/pry-docmore.wiki/Ruby Global $stderr (Dollarstderr).md +1 -0
  53. data/pry-docmore.wiki/Ruby Global $stdin (Dollarstdin).md +1 -0
  54. data/pry-docmore.wiki/Ruby Global $stdout (Dollarstdout).md +1 -0
  55. data/pry-docmore.wiki/Ruby Global $~ (DollarSquiggle).md +1 -0
  56. data/pry-docmore.wiki/Ruby Global $/342/201/204 (DollarSlash).md" +3 -0
  57. data/pry-docmore.wiki/Ruby Keyword: BEGIN.md +14 -0
  58. data/pry-docmore.wiki/Ruby Keyword: END.md +10 -0
  59. data/pry-docmore.wiki/Ruby Keyword: __ENCODING__.md +8 -0
  60. data/pry-docmore.wiki/Ruby Keyword: __FILE__.md +5 -0
  61. data/pry-docmore.wiki/Ruby Keyword: __LINE__.md +12 -0
  62. data/pry-docmore.wiki/Ruby Keyword: alias.md +35 -0
  63. data/pry-docmore.wiki/Ruby Keyword: and.md +23 -0
  64. data/pry-docmore.wiki/Ruby Keyword: begin.md +24 -0
  65. data/pry-docmore.wiki/Ruby Keyword: break.md +16 -0
  66. data/pry-docmore.wiki/Ruby Keyword: case.md +23 -0
  67. data/pry-docmore.wiki/Ruby Keyword: class.md +4 -0
  68. data/pry-docmore.wiki/Ruby Keyword: def.md +14 -0
  69. data/pry-docmore.wiki/Ruby Keyword: defined?.md +13 -0
  70. data/pry-docmore.wiki/Ruby Keyword: do.md +3 -0
  71. data/pry-docmore.wiki/Ruby Keyword: else.md +4 -0
  72. data/pry-docmore.wiki/Ruby Keyword: elsif.md +3 -0
  73. data/pry-docmore.wiki/Ruby Keyword: end.md +2 -0
  74. data/pry-docmore.wiki/Ruby Keyword: ensure.md +1 -0
  75. data/pry-docmore.wiki/Ruby Keyword: false.md +9 -0
  76. data/pry-docmore.wiki/Ruby Keyword: for.md +14 -0
  77. data/pry-docmore.wiki/Ruby Keyword: if.md +5 -0
  78. data/pry-docmore.wiki/Ruby Keyword: in.md +3 -0
  79. data/pry-docmore.wiki/Ruby Keyword: module.md +3 -0
  80. data/pry-docmore.wiki/Ruby Keyword: next.md +15 -0
  81. data/pry-docmore.wiki/Ruby Keyword: nil.md +3 -0
  82. data/pry-docmore.wiki/Ruby Keyword: not.md +10 -0
  83. data/pry-docmore.wiki/Ruby Keyword: or.md +18 -0
  84. data/pry-docmore.wiki/Ruby Keyword: redo.md +16 -0
  85. data/pry-docmore.wiki/Ruby Keyword: rescue.md +55 -0
  86. data/pry-docmore.wiki/Ruby Keyword: retry.md +20 -0
  87. data/pry-docmore.wiki/Ruby Keyword: return.md +38 -0
  88. data/pry-docmore.wiki/Ruby Keyword: self.md +15 -0
  89. data/pry-docmore.wiki/Ruby Keyword: super.md +34 -0
  90. data/pry-docmore.wiki/Ruby Keyword: then.md +17 -0
  91. data/pry-docmore.wiki/Ruby Keyword: true.md +7 -0
  92. data/pry-docmore.wiki/Ruby Keyword: undef.md +5 -0
  93. data/pry-docmore.wiki/Ruby Keyword: unless.md +4 -0
  94. data/pry-docmore.wiki/Ruby Keyword: until.md +6 -0
  95. data/pry-docmore.wiki/Ruby Keyword: when.md +1 -0
  96. data/pry-docmore.wiki/Ruby Keyword: while.md +6 -0
  97. data/pry-docmore.wiki/Ruby Keyword: yield.md +16 -0
  98. metadata +181 -0
@@ -0,0 +1,63 @@
1
+ # encoding: utf-8
2
+ require 'pry'
3
+ class Pry
4
+ class Docmore
5
+ def self.find_docs pattern
6
+ path = File.dirname(__FILE__) + '/../pry-docmore.wiki/*.md'
7
+ input = Dir[path].map do |file_name|
8
+ if file_name.match pattern
9
+ item = $1
10
+ item.sub! '⁄', '/' # Had to use Unicode "Fraction Slash" in filename.
11
+ [ item, File.read(file_name) ]
12
+ end
13
+ end.compact
14
+ Hash[input]
15
+ end
16
+ @DOCS = {
17
+ 'Keyword' => {
18
+ source: 'ruby source, lex.c, circa line 219',
19
+ explanations: find_docs(%r/Ruby Keyword: (.+)\.md/)
20
+ },
21
+ 'Global Variable' => {
22
+ source: 'Started from: http://www.zenspider.com/Languages/Ruby/QuickRef.html#pre-defined-variables',
23
+ explanations: find_docs(%r/Ruby Global (\S+)/)
24
+ },
25
+ }
26
+ def self.raw; @DOCS end
27
+ def self.explain thing
28
+ @DOCS.each do |label, docs|
29
+ # TODO: colored label
30
+ return docs[:explanations][thing] if docs[:explanations].has_key? thing
31
+ end
32
+ nil
33
+ end
34
+
35
+ ORIGINAL_SHOW_DOC ||= Pry.commands['show-doc']
36
+ Pry::Commands.create_command 'show-doc' do
37
+ description 'Show the documentation for a method/class/keyword/global. Aliases: ?'
38
+ command_options \
39
+ :shellwords => false,
40
+ :keep_retval => false
41
+ def process arg_string
42
+ if docmore = Pry::Docmore.explain(arg_string)
43
+ _pry_.output.puts docmore
44
+ $/
45
+ else
46
+ ORIGINAL_SHOW_DOC.new(context).call_safely(arg_string)
47
+ end
48
+ end
49
+ end
50
+ Pry::Commands.create_command 'show-docmores' do
51
+ description 'List keywords and vars covered by pry-docmore'
52
+ def process
53
+ Pry::Docmore.raw.each do |label, docs|
54
+ # Pry needs a general mechanism to columnize things, and when it gets
55
+ # one, this can use it:
56
+ _pry_.output.puts "#{label}s".yellow + ': ' +
57
+ docs[:explanations].keys.join(' ')
58
+ end
59
+ end
60
+ end
61
+
62
+ end
63
+ end
@@ -0,0 +1,96 @@
1
+ This is the input for the actual gem. Edit these, and the next time the gem
2
+ pushes, this info goes with it.
3
+
4
+ The goal is for this to be an informative set of docs, full of anything you can
5
+ think to add, so don't hold back.
6
+
7
+ - [Ruby Global $1 (DollarOne)](wiki/Ruby Global $1 (DollarOne\)) | [Ruby Global $2
8
+ (DollarTwo)](wiki/Ruby Global $2 (DollarTwo\)) | [Ruby Global $3 (DollarThree)](wiki/Ruby Global $3 (DollarThree\)) | [Ruby Global $4 (DollarFour)](wiki/Ruby Global $4 (DollarFour\)) | [Ruby Global $5 (DollarFive)](wiki/Ruby Global $5 (DollarFive\)) | [Ruby Global $6 (DollarSix)](wiki/Ruby Global $6 (DollarSix\)) | [Ruby Global $7 (DollarSeven)](wiki/Ruby Global $7 (DollarSeven\)) | [Ruby Global $8 (DollarEight)](wiki/Ruby Global $8 (DollarEight\)) | [Ruby Global $9 (DollarNine)](wiki/Ruby Global $9 (DollarNine\))
9
+ - [Ruby Global $& (DollarAmpersand)](wiki/Ruby Global $& (DollarAmpersand\))
10
+ - [Ruby Global $@ (DollarAt)](wiki/Ruby Global $@ (DollarAt\))
11
+ - [Ruby Global $` (DollarBacktick)](wiki/Ruby Global $` (DollarBacktick\))
12
+ - [Ruby Global $! (DollarBang)](wiki/Ruby Global $! (DollarBang\))
13
+ - [Ruby Global $= (DollarEquals)](wiki/Ruby Global $= (DollarEquals\))
14
+ - [Ruby Global $+ (DollarPlus)](wiki/Ruby Global $+ (DollarPlus\))
15
+ - [Ruby Global $⁄ (DollarSlash)](wiki/Ruby Global $⁄ (DollarSlash\))
16
+ - [Ruby Global $~ (DollarSquiggle)](wiki/Ruby Global $~ (DollarSquiggle\))
17
+ - [Ruby Global $' (DollarTick)](wiki/Ruby Global $' (DollarTick\))
18
+ - [Ruby Global $KCODE (DollarKCODE)](wiki/Ruby Global $KCODE (DollarKCODE\))
19
+ - [Ruby Global $-K (DollarDashK)](wiki/Ruby Global $-K (DollarDashK\))
20
+ - [Ruby Global $LOADED\_FEATURES (DollarLOADEDUnderscoreFEATURES)](wiki/Ruby Global $LOADED\_FEATURES (DollarLOADEDUnderscoreFEATURES\))
21
+ - [Ruby Global $PROGRAM\_NAME (DollarPROGRAMUnderscoreNAME)](wiki/Ruby Global $PROGRAM\_NAME (DollarPROGRAMUnderscoreNAME\))
22
+ - [Ruby Global $-W (DollarDashW)](wiki/Ruby Global $-W (DollarDashW\))
23
+ - [Ruby Global $\" (DollarQuote)](wiki/Ruby Global $\" (DollarQuote\))
24
+ - [Ruby Global $$ (DollarDollar)](wiki/Ruby Global $$ (DollarDollar\))
25
+ - [Ruby Global $* (DollarStar)](wiki/Ruby Global $* (DollarStar\))
26
+ - [Ruby Global $, (DollarComma)](wiki/Ruby Global $, (DollarComma\))
27
+ - [Ruby Global $-0 (DollarDashZero)](wiki/Ruby Global $-0 (DollarDashZero\))
28
+ - [Ruby Global $-F (DollarDashF)](wiki/Ruby Global $-F (DollarDashF\))
29
+ - [Ruby Global $-I (DollarDashI)](wiki/Ruby Global $-I (DollarDashI\))
30
+ - [Ruby Global $-a (DollarDasha)](wiki/Ruby Global $-a (DollarDasha\))
31
+ - [Ruby Global $-d (DollarDashd)](wiki/Ruby Global $-d (DollarDashd\))
32
+ - [Ruby Global $-i (DollarDashi)](wiki/Ruby Global $-i (DollarDashi\))
33
+ - [Ruby Global $-l (DollarDashl)](wiki/Ruby Global $-l (DollarDashl\))
34
+ - [Ruby Global $-p (DollarDashp)](wiki/Ruby Global $-p (DollarDashp\))
35
+ - [Ruby Global $-v (DollarDashv)](wiki/Ruby Global $-v (DollarDashv\))
36
+ - [Ruby Global $-w (DollarDashw)](wiki/Ruby Global $-w (DollarDashw\))
37
+ - [Ruby Global $. (DollarDot)](wiki/Ruby Global $. (DollarDot\))
38
+ - [Ruby Global $0 (DollarZero)](wiki/Ruby Global $0 (DollarZero\))
39
+ - [Ruby Global $: (DollarColon)](wiki/Ruby Global $: (DollarColon\))
40
+ - [Ruby Global $; (DollarSemicolon)](wiki/Ruby Global $; (DollarSemicolon\))
41
+ - [Ruby Global $< (DollarLessthan)](wiki/Ruby Global $< (DollarLessthan\))
42
+ - [Ruby Global $> (DollarGreaterthan)](wiki/Ruby Global $> (DollarGreaterthan\))
43
+ - [Ruby Global $? (Dollar?)](wiki/Ruby Global $? (Dollar?\))
44
+ - [Ruby Global $DEBUG (DollarDEBUG)](wiki/Ruby Global $DEBUG (DollarDEBUG\))
45
+ - [Ruby Global $FILENAME (DollarFILENAME)](wiki/Ruby Global $FILENAME (DollarFILENAME\))
46
+ - [Ruby Global $LOAD_PATH (DollarLOADUnderscorePATH)](wiki/Ruby Global $LOAD_PATH (DollarLOADUnderscorePATH\))
47
+ - [Ruby Global $VERBOSE (DollarVERBOSE)](wiki/Ruby Global $VERBOSE (DollarVERBOSE\))
48
+ - [Ruby Global $\\ (DollarBackslash)](wiki/Ruby Global $\\ (DollarBackslash\))
49
+ - [Ruby Global $_ (DollarUnderscore)](wiki/Ruby Global $_ (DollarUnderscore\))
50
+ - [Ruby Global $stderr (Dollarstderr)](wiki/Ruby Global $stderr (Dollarstderr\))
51
+ - [Ruby Global $stdin (Dollarstdin)](wiki/Ruby Global $stdin (Dollarstdin\))
52
+ - [Ruby Global $stdout (Dollarstdout)](wiki/Ruby Global $stdout (Dollarstdout\))
53
+
54
+
55
+
56
+ - [Ruby Keyword: alias](wiki/Ruby Keyword%3A alias)
57
+ - [Ruby Keyword: and](wiki/Ruby Keyword%3A and)
58
+ - [Ruby Keyword: begin](wiki/Ruby Keyword%3A begin)
59
+ - [Ruby Keyword: BEGIN](wiki/Ruby Keyword%3A BEGIN)
60
+ - [Ruby Keyword: break](wiki/Ruby Keyword%3A break)
61
+ - [Ruby Keyword: case](wiki/Ruby Keyword%3A case)
62
+ - [Ruby Keyword: class](wiki/Ruby Keyword%3A class)
63
+ - [Ruby Keyword: defined?](wiki/Ruby Keyword%3A defined?)
64
+ - [Ruby Keyword: def](wiki/Ruby Keyword%3A def)
65
+ - [Ruby Keyword: do](wiki/Ruby Keyword%3A do)
66
+ - [Ruby Keyword: else](wiki/Ruby Keyword%3A else)
67
+ - [Ruby Keyword: elsif](wiki/Ruby Keyword%3A elsif)
68
+ - [Ruby Keyword: \_\_ENCODING\_\_](wiki/Ruby Keyword%3A \_\_ENCODING\_\_)
69
+ - [Ruby Keyword: end](wiki/Ruby Keyword%3A end)
70
+ - [Ruby Keyword: END](wiki/Ruby Keyword%3A END)
71
+ - [Ruby Keyword: ensure](wiki/Ruby Keyword%3A ensure)
72
+ - [Ruby Keyword: false](wiki/Ruby Keyword%3A false)
73
+ - [Ruby Keyword: \_\_FILE\_\_](wiki/Ruby Keyword%3A \_\_FILE\_\_)
74
+ - [Ruby Keyword: for](wiki/Ruby Keyword%3A for)
75
+ - [Ruby Keyword: if](wiki/Ruby Keyword%3A if)
76
+ - [Ruby Keyword: in](wiki/Ruby Keyword%3A in)
77
+ - [Ruby Keyword: \_\_LINE\_\_](wiki/Ruby Keyword%3A \_\_LINE\_\_)
78
+ - [Ruby Keyword: module](wiki/Ruby Keyword%3A module)
79
+ - [Ruby Keyword: next](wiki/Ruby Keyword%3A next)
80
+ - [Ruby Keyword: nil](wiki/Ruby Keyword%3A nil)
81
+ - [Ruby Keyword: not](wiki/Ruby Keyword%3A not)
82
+ - [Ruby Keyword: or](wiki/Ruby Keyword%3A or)
83
+ - [Ruby Keyword: redo](wiki/Ruby Keyword%3A redo)
84
+ - [Ruby Keyword: rescue](wiki/Ruby Keyword%3A rescue)
85
+ - [Ruby Keyword: retry](wiki/Ruby Keyword%3A retry)
86
+ - [Ruby Keyword: return](wiki/Ruby Keyword%3A return)
87
+ - [Ruby Keyword: self](wiki/Ruby Keyword%3A self)
88
+ - [Ruby Keyword: super](wiki/Ruby Keyword%3A super)
89
+ - [Ruby Keyword: then](wiki/Ruby Keyword%3A then)
90
+ - [Ruby Keyword: true](wiki/Ruby Keyword%3A true)
91
+ - [Ruby Keyword: undef](wiki/Ruby Keyword%3A undef)
92
+ - [Ruby Keyword: unless](wiki/Ruby Keyword%3A unless)
93
+ - [Ruby Keyword: until](wiki/Ruby Keyword%3A until)
94
+ - [Ruby Keyword: when](wiki/Ruby Keyword%3A when)
95
+ - [Ruby Keyword: while](wiki/Ruby Keyword%3A while)
96
+ - [Ruby Keyword: yield](wiki/Ruby Keyword%3A yield)
@@ -0,0 +1,15 @@
1
+ The $! global is the Exception set by 'rescue'
2
+
3
+ This code:
4
+
5
+ begin
6
+ raise 'hi'
7
+ rescue
8
+ p $!
9
+ end
10
+ p $!
11
+
12
+ Prints this:
13
+
14
+ #<RuntimeError: hi>
15
+ nil
@@ -0,0 +1,4 @@
1
+ The $" global is the array contains the module names loaded by require.
2
+
3
+ (Compare to the list of lookup paths in `$LOAD_PATH`, a.k.a `$:`)
4
+
@@ -0,0 +1,12 @@
1
+ The $$ global is the process number of the Ruby running this script.
2
+
3
+ Can be used for process control tricks, such as recording in a "pidfile" so
4
+ other processes can later kill the current one, or accessing "/proc/#$$" on
5
+ systems (such as Linux) having a mounted procfs.
6
+
7
+ Traditionally used in shell scripts for a quick way to generate a semi-unique
8
+ temp filename, but this is better achieved like:
9
+
10
+ require 'tempfile'
11
+ t = Tempfile.new 'hi'
12
+ # produces a file like: /tmp/hi20121119-2774-1buu566 (because $$ == 2774)
@@ -0,0 +1,16 @@
1
+ The $& global is the string matched by the last successful match.
2
+
3
+ If you do this:
4
+
5
+ str = 'hello goodbye'; str[/good/]
6
+
7
+ Then this:
8
+
9
+ [ $`, $&, $' ]
10
+
11
+ Yields this:
12
+ [
13
+ "hello ",
14
+ "good",
15
+ "bye"
16
+ ]
@@ -0,0 +1,16 @@
1
+ The $' global is the string to the right of the last successful match.
2
+
3
+ If you do this:
4
+
5
+ str = 'hello goodbye'; str[/good/]
6
+
7
+ Then this:
8
+
9
+ [ $`, $&, $' ]
10
+
11
+ Yields this:
12
+ [
13
+ "hello ",
14
+ "good",
15
+ "bye"
16
+ ]
@@ -0,0 +1 @@
1
+ The $* global is the ARGV, the command line arguments given for the script.
@@ -0,0 +1,9 @@
1
+ The $+ global is the highest group matched by the last successful match.
2
+
3
+ This:
4
+
5
+ str = 'hello goodbye'; str[/he(llo) g(o(od))/]; $+
6
+
7
+ Shows:
8
+
9
+ "od"
@@ -0,0 +1 @@
1
+ The $, global is the output field separator for the print and Array#join.
@@ -0,0 +1 @@
1
+ Aliased to $/
@@ -0,0 +1 @@
1
+ Aliased to $;
@@ -0,0 +1 @@
1
+ Aliased to $:
@@ -0,0 +1 @@
1
+ The $-K global ...pry-docmore TODO!
@@ -0,0 +1 @@
1
+ The $-W global ...pry-docmore TODO!
@@ -0,0 +1 @@
1
+ The $-a global True if option -a is set. Read-only variable.
@@ -0,0 +1 @@
1
+ Aliased to $DEBUG
@@ -0,0 +1 @@
1
+ The $-i global In in-place-edit mode, this variable holds the extension, otherwise nil.
@@ -0,0 +1 @@
1
+ The $-l global True if option -l is set. Read-only variable.
@@ -0,0 +1 @@
1
+ The $-p global True if option -p is set. Read-only variable.
@@ -0,0 +1 @@
1
+ Aliased to $VERBOSE
@@ -0,0 +1 @@
1
+ The $-w global True if option -w is set.
@@ -0,0 +1 @@
1
+ The $. global is the current input line number of the last file that was read.
@@ -0,0 +1 @@
1
+ The $0 global Same as $PROGRAM_NAME. Contains the name of the script being executed. May be assignable.
@@ -0,0 +1 @@
1
+ The $1 global is the 1st group of the last successful match. May be > 1.
@@ -0,0 +1 @@
1
+ The $2 global is the 2nd group of the last successful match. May be > 1.
@@ -0,0 +1 @@
1
+ The $3 global is the 3rd group of the last successful match. May be > 1.
@@ -0,0 +1 @@
1
+ The $4 global is the 4th group of the last successful match. May be > 1.
@@ -0,0 +1 @@
1
+ The $5 global is the 5th group of the last successful match. May be > 1.
@@ -0,0 +1 @@
1
+ The $6 global is the 6th group of the last successful match. May be > 1.
@@ -0,0 +1 @@
1
+ The $7 global is the 7th group of the last successful match. May be > 1.
@@ -0,0 +1 @@
1
+ The $8 global is the 8th group of the last successful match. May be > 1.
@@ -0,0 +1 @@
1
+ The $9 global is the 9th group of the last successful match. May be > 1.
@@ -0,0 +1,3 @@
1
+ The $: global Load path for scripts and binary modules by load or require.
2
+
3
+ (After scripts are loaded, their path will be in `$"`)
@@ -0,0 +1 @@
1
+ The $; global is the separator for String#split (defaults to nil, which splits on whitespace).
@@ -0,0 +1 @@
1
+ The $< global is the virtual concatenation file of the files given on command line (or from $stdin if no files were given).
@@ -0,0 +1,2 @@
1
+ In older versions of Ruby, setting $= allowed case-insensitive comparisons;
2
+ this is now deprecated in favor of using String#casecmp
@@ -0,0 +1 @@
1
+ The $> global is the default output for print, printf. $stdout by default.
@@ -0,0 +1,11 @@
1
+ The $? global is the process status of the last executed child process.
2
+
3
+ It is of type Process::Status, which implements the following methods:
4
+ & == >> coredump? exited? exitstatus inspect pid signaled? stopped?
5
+ stopsig success? termsig to_i to
6
+
7
+ For example:
8
+
9
+ `head /dev/urandom | grep "Alas, poor Yorick! I knew him, Horatio…"`
10
+ $?.success?
11
+ # *probably* false
@@ -0,0 +1,2 @@
1
+ The $@ global holds the Array of backtrace in the format
2
+ "file:line:in `method`" while in a `rescue` block.
@@ -0,0 +1 @@
1
+ The $DEBUG global is the status of the -d switch.
@@ -0,0 +1 @@
1
+ The $FILENAME global Current input file from $<. Same as $<.filename.
@@ -0,0 +1 @@
1
+ The $KCODE global ...pry-docmore TODO!
@@ -0,0 +1 @@
1
+ The $LOADED_FEATURES global ...pry-docmore TODO!
@@ -0,0 +1 @@
1
+ The $PROGRAM_NAME global Same as $0 - Contains the name of the script being executed. May be assignable.
@@ -0,0 +1,4 @@
1
+ This variable determines the "level of paranoia", restricting the set of legal
2
+ operations.
3
+
4
+ @see: http://www.ruby-doc.org/docs/ProgrammingRuby/html/taint.html
@@ -0,0 +1 @@
1
+ The $VERBOSE global is the verbose flag, which is set by the -v switch.
@@ -0,0 +1 @@
1
+ The $\ global is the output record separator for the print and IO#write. Default is nil.
@@ -0,0 +1 @@
1
+ The $_ global is the last input line of string by gets or readline.
@@ -0,0 +1,16 @@
1
+ The $` global is the string to the left of the last successful match.
2
+
3
+ If you do this:
4
+
5
+ str = 'hello goodbye'; str[/good/]
6
+
7
+ Then this:
8
+
9
+ [ $`, $&, $' ]
10
+
11
+ Yields this:
12
+ [
13
+ "hello ",
14
+ "good",
15
+ "bye"
16
+ ]
@@ -0,0 +1 @@
1
+ The $stderr global is the current standard error output.
@@ -0,0 +1 @@
1
+ The $stdin global is the current standard input.
@@ -0,0 +1 @@
1
+ The $stdout global is the current standard output.
@@ -0,0 +1 @@
1
+ The $~ global is the match-data about the last match in the current scope.
@@ -0,0 +1,3 @@
1
+ The $/ global is the input record separator, newline by default.
2
+
3
+ This affects String#each_lines, String#lines, and String#chomp
@@ -0,0 +1,14 @@
1
+ Like Perl and Awk before that, defines a block to be run before the others:
2
+
3
+ p 3
4
+ BEGIN { p 1 }
5
+ p 4
6
+ BEGIN { p 2 }
7
+ # …prints these out as 1, 2, 3, 4
8
+
9
+ This works because the whole file gets parsed at the beginning (even though
10
+ 'class' and 'def' lines are not executed early), so the interpreter can reorder
11
+ these statements.
12
+
13
+ See also: `END`
14
+ (Not to be confused with lower-case `begin`)
@@ -0,0 +1,10 @@
1
+ Like Perl and Awk before that, defines a block to be run after the others:
2
+
3
+ p 1
4
+ END { p 4 }
5
+ p 2
6
+ END { p 3 }
7
+ # …prints these out as 1, 2, 3, 4
8
+
9
+ See also: `BEGIN`
10
+ (Not to be confused with lower-case `end`)
@@ -0,0 +1,8 @@
1
+ Read-only value of the current Encoding object (which has methods:
2
+ ascii_compatible? dummy? inspect name names replicate to_s)
3
+
4
+ By default is: #<Encoding:US-ASCII>
5
+
6
+ But can be affected by the 1st or 2nd line of the file being something like:
7
+
8
+ # encoding: utf-8
@@ -0,0 +1,5 @@
1
+ The filename of the code being evaluated. Evaluates to "(pry)" within the REPL.
2
+
3
+ Useful especially for code to locate parts nearby, such as:
4
+
5
+ File.dirname(__FILE__)
@@ -0,0 +1,12 @@
1
+ The code's current line number. Can be a handy way to pepper what would
2
+ otherwise be `print "Got here 1"` statements in your code, e.g.:
3
+
4
+ if a
5
+ p __LINE__
6
+ # some stuff
7
+ else
8
+ p __LINE__
9
+ # some other stuff
10
+ end
11
+
12
+ …but you use the pry-debugger gem instead, don't you?
@@ -0,0 +1,35 @@
1
+ The alias keyword is used to make synonyms of methods.
2
+
3
+ If you are used to the semantics of the `/bin/ln` command, get it out of your
4
+ head right now: Ruby does the opposite. That is, instead of `ln existing
5
+ new`, Ruby's semantics are `alias new existing`. (Mnested Mnemonic: this `new`
6
+ sorting is the b`a`-`n`-`e` of my `exist`ence.)
7
+
8
+ Also take particular note that this is not a method call, but a keyword, so
9
+ it can do things method calls cannot. The args are not :symbols (though they
10
+ are permitted to be), and it is a SyntaxError to attempt to place a comma
11
+ between the args.
12
+
13
+ Note that, this being a keyword and happening at compile-time, is not enough
14
+ to make dynamic assignments. See {Module#alias_method} for that kind of
15
+ trickery.
16
+
17
+ @example Basic Usage
18
+ def foo; 3 end
19
+ alias boo foo
20
+ boo
21
+ ⇒ 3
22
+ @example Symbols as args
23
+ alias :zoo :boo # or even mix and match, if you want to for some reason.
24
+ zoo
25
+ ⇒ 3
26
+ @example Some decorating!
27
+ alias orig_foo foo
28
+ def foo; 4 + orig_foo end
29
+ foo
30
+ ⇒ 7
31
+ # See also Rails's alias_method_chain for a formalization of this idiom.
32
+ @param [unadorned symbol] New name
33
+ @param [unadorned symbol] Existing name
34
+ @return [NilClass] nil
35
+ @see http://kresimirbojcic.com/2011/12/01/decorators-in-ruby.html
@@ -0,0 +1,23 @@
1
+ Boolean conjunction.
2
+
3
+ Only evaluates to `true` if both its left and right side are true.
4
+
5
+ Remember that the 'and' operator is lower precedence operator than '&&', so
6
+
7
+ an_expression and another_expression
8
+ is roughly equivalent to:
9
+ (an_expression) && (another_expression)
10
+
11
+ @example Truth table
12
+ true and true ⇒ true
13
+ false and true ⇒ false
14
+ false and false ⇒ false
15
+ @example Precedence
16
+ true and not false ⇒ true
17
+ true && not false ⇒ SyntaxError
18
+ a = true and false; a ⇒ true
19
+ a = true && false; a ⇒ false
20
+ @example The fowl chain
21
+ if false or true && false then false elsif true and false or true then true end
22
+ ⇒ true
23
+ @see http://phrogz.net/ProgrammingRuby/language.html#table_18.4
@@ -0,0 +1,24 @@
1
+ Opens a block when `def` or `do` isn't already opening one for you.
2
+
3
+ Uses include:
4
+
5
+ begin
6
+ 1/0
7
+ rescue => e
8
+ p e
9
+ else
10
+ puts 'Cannot get here with that 1/0'
11
+ ensure
12
+ puts 'OK then.'
13
+ end
14
+
15
+ Or something like:
16
+
17
+ x = something_falsy || begin
18
+ several_steps
19
+ go_here
20
+ 3
21
+ end
22
+ # Now x == 3
23
+
24
+ (Not to be confused with the BEGIN keyword.)
@@ -0,0 +1,16 @@
1
+ Hops out of the inner-most loop. Like this:
2
+
3
+ %w(a b c).each do |i|
4
+ print i
5
+ 32343.times do |j|
6
+ break if j > 2
7
+ print j
8
+ end
9
+ end
10
+ puts
11
+
12
+ Prints:
13
+
14
+ a012b012c012
15
+
16
+ Compare with: next, last
@@ -0,0 +1,23 @@
1
+ A convenient conditional that doesn't require the "subject" to be repeated.
2
+
3
+ Uses #=== for comparison ("the threequals"), which is defined specially for
4
+ various objects.
5
+
6
+ x = 'asdf'
7
+ case x
8
+ when 'asdf'; puts 'Found it!'
9
+ when 'fghj'; puts 'Impossible.'
10
+ else puts 'Also impossible.'
11
+ end
12
+
13
+ case x
14
+ when String; puts 'Yep, will get here.'
15
+ when Array; puts 'Actually, wait a minute.'
16
+ when Hash; puts 'This is pretty bad OO.'
17
+ else puts 'But, the code works'
18
+ end
19
+
20
+ case x
21
+ when /^[fdsa]{4}/; puts 'Whoa, works with regexes.'
22
+ else puts 'Will not get here.'
23
+ end
@@ -0,0 +1,4 @@
1
+ - Opens a class definition
2
+ - class << self ← Opens the eigenclass of 'self'
3
+
4
+ TODO - https://github.com/rking/pry-docmore/wiki