irbtools 0.0.4 → 0.1.0
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/README.rdoc +11 -7
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/doc/classes/IRB.html +111 -0
- data/doc/classes/IRB/CaptureIO.html +189 -0
- data/doc/classes/Irbtools.html +170 -0
- data/doc/classes/Kernel.html +161 -0
- data/doc/created.rid +1 -0
- data/doc/files/README_rdoc.html +225 -0
- data/doc/files/lib/irbtools/configure_rb.html +115 -0
- data/doc/files/lib/irbtools_rb.html +563 -0
- data/doc/fr_class_index.html +30 -0
- data/doc/fr_file_index.html +29 -0
- data/doc/fr_method_index.html +48 -0
- data/doc/index.html +26 -0
- data/doc/rdoc-style.css +208 -0
- data/irbtools.gemspec +87 -0
- data/lib/irbtools.rb +193 -36
- data/lib/irbtools/configure.rb +58 -0
- metadata +20 -5
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
3
|
+
<!DOCTYPE html
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
6
|
+
|
7
|
+
<!--
|
8
|
+
|
9
|
+
Classes
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>Classes</title>
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
17
|
+
<base target="docwin" />
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="index">
|
21
|
+
<h1 class="section-bar">Classes</h1>
|
22
|
+
<div id="index-entries">
|
23
|
+
<a href="classes/IRB.html">IRB</a><br />
|
24
|
+
<a href="classes/IRB/CaptureIO.html">IRB::CaptureIO</a><br />
|
25
|
+
<a href="classes/Irbtools.html">Irbtools</a><br />
|
26
|
+
<a href="classes/Kernel.html">Kernel</a><br />
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
</body>
|
30
|
+
</html>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
3
|
+
<!DOCTYPE html
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
6
|
+
|
7
|
+
<!--
|
8
|
+
|
9
|
+
Files
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>Files</title>
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
17
|
+
<base target="docwin" />
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="index">
|
21
|
+
<h1 class="section-bar">Files</h1>
|
22
|
+
<div id="index-entries">
|
23
|
+
<a href="files/README_rdoc.html">README.rdoc</a><br />
|
24
|
+
<a href="files/lib/irbtools_rb.html">lib/irbtools.rb</a><br />
|
25
|
+
<a href="files/lib/irbtools/configure_rb.html">lib/irbtools/configure.rb</a><br />
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
</body>
|
29
|
+
</html>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
3
|
+
<!DOCTYPE html
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
6
|
+
|
7
|
+
<!--
|
8
|
+
|
9
|
+
Methods
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>Methods</title>
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
17
|
+
<base target="docwin" />
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="index">
|
21
|
+
<h1 class="section-bar">Methods</h1>
|
22
|
+
<div id="index-entries">
|
23
|
+
<a href="classes/IRB/CaptureIO.html#M000019">capture (IRB::CaptureIO)</a><br />
|
24
|
+
<a href="files/lib/irbtools_rb.html#M000012">cat (lib/irbtools.rb)</a><br />
|
25
|
+
<a href="files/lib/irbtools_rb.html#M000011">cd (lib/irbtools.rb)</a><br />
|
26
|
+
<a href="files/lib/irbtools_rb.html#M000007">colorize (lib/irbtools.rb)</a><br />
|
27
|
+
<a href="files/lib/irbtools_rb.html#M000001">copy (lib/irbtools.rb)</a><br />
|
28
|
+
<a href="files/lib/irbtools_rb.html#M000003">copy_input (lib/irbtools.rb)</a><br />
|
29
|
+
<a href="files/lib/irbtools_rb.html#M000005">copy_output (lib/irbtools.rb)</a><br />
|
30
|
+
<a href="files/lib/irbtools_rb.html#M000004">copy_session_input (lib/irbtools.rb)</a><br />
|
31
|
+
<a href="files/lib/irbtools_rb.html#M000006">copy_session_output (lib/irbtools.rb)</a><br />
|
32
|
+
<a href="files/lib/irbtools_rb.html#M000010">dir (lib/irbtools.rb)</a><br />
|
33
|
+
<a href="classes/Kernel.html#M000022">exec (Kernel)</a><br />
|
34
|
+
<a href="classes/Irbtools.html#M000021">init (Irbtools)</a><br />
|
35
|
+
<a href="classes/Irbtools.html#M000020">libs (Irbtools)</a><br />
|
36
|
+
<a href="files/lib/irbtools_rb.html#M000009">ls (lib/irbtools.rb)</a><br />
|
37
|
+
<a href="files/lib/irbtools_rb.html#M000002">paste (lib/irbtools.rb)</a><br />
|
38
|
+
<a href="files/lib/irbtools_rb.html#M000008">ray (lib/irbtools.rb)</a><br />
|
39
|
+
<a href="files/lib/irbtools_rb.html#M000015">reset! (lib/irbtools.rb)</a><br />
|
40
|
+
<a href="files/lib/irbtools_rb.html#M000013">rq (lib/irbtools.rb)</a><br />
|
41
|
+
<a href="files/lib/irbtools_rb.html#M000016">ruby_version (lib/irbtools.rb)</a><br />
|
42
|
+
<a href="files/lib/irbtools_rb.html#M000014">session_history (lib/irbtools.rb)</a><br />
|
43
|
+
<a href="classes/IRB/CaptureIO.html#M000018">streams (IRB::CaptureIO)</a><br />
|
44
|
+
<a href="files/lib/irbtools_rb.html#M000017">use (lib/irbtools.rb)</a><br />
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
</body>
|
48
|
+
</html>
|
data/doc/index.html
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
5
|
+
|
6
|
+
<!--
|
7
|
+
|
8
|
+
irbtools 0.0.4
|
9
|
+
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>irbtools 0.0.4
|
15
|
+
</title>
|
16
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
17
|
+
</head>
|
18
|
+
<frameset rows="20%, 80%">
|
19
|
+
<frameset cols="25%,35%,45%">
|
20
|
+
<frame src="fr_file_index.html" title="Files" name="Files" />
|
21
|
+
<frame src="fr_class_index.html" name="Classes" />
|
22
|
+
<frame src="fr_method_index.html" name="Methods" />
|
23
|
+
</frameset>
|
24
|
+
<frame src="files/README_rdoc.html" name="docwin" />
|
25
|
+
</frameset>
|
26
|
+
</html>
|
data/doc/rdoc-style.css
ADDED
@@ -0,0 +1,208 @@
|
|
1
|
+
|
2
|
+
body {
|
3
|
+
font-family: Verdana,Arial,Helvetica,sans-serif;
|
4
|
+
font-size: 90%;
|
5
|
+
margin: 0;
|
6
|
+
margin-left: 40px;
|
7
|
+
padding: 0;
|
8
|
+
background: white;
|
9
|
+
}
|
10
|
+
|
11
|
+
h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
|
12
|
+
h1 { font-size: 150%; }
|
13
|
+
h2,h3,h4 { margin-top: 1em; }
|
14
|
+
|
15
|
+
a { background: #eef; color: #039; text-decoration: none; }
|
16
|
+
a:hover { background: #039; color: #eef; }
|
17
|
+
|
18
|
+
/* Override the base stylesheet's Anchor inside a table cell */
|
19
|
+
td > a {
|
20
|
+
background: transparent;
|
21
|
+
color: #039;
|
22
|
+
text-decoration: none;
|
23
|
+
}
|
24
|
+
|
25
|
+
/* and inside a section title */
|
26
|
+
.section-title > a {
|
27
|
+
background: transparent;
|
28
|
+
color: #eee;
|
29
|
+
text-decoration: none;
|
30
|
+
}
|
31
|
+
|
32
|
+
/* === Structural elements =================================== */
|
33
|
+
|
34
|
+
div#index {
|
35
|
+
margin: 0;
|
36
|
+
margin-left: -40px;
|
37
|
+
padding: 0;
|
38
|
+
font-size: 90%;
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
div#index a {
|
43
|
+
margin-left: 0.7em;
|
44
|
+
}
|
45
|
+
|
46
|
+
div#index .section-bar {
|
47
|
+
margin-left: 0px;
|
48
|
+
padding-left: 0.7em;
|
49
|
+
background: #ccc;
|
50
|
+
font-size: small;
|
51
|
+
}
|
52
|
+
|
53
|
+
|
54
|
+
div#classHeader, div#fileHeader {
|
55
|
+
width: auto;
|
56
|
+
color: white;
|
57
|
+
padding: 0.5em 1.5em 0.5em 1.5em;
|
58
|
+
margin: 0;
|
59
|
+
margin-left: -40px;
|
60
|
+
border-bottom: 3px solid #006;
|
61
|
+
}
|
62
|
+
|
63
|
+
div#classHeader a, div#fileHeader a {
|
64
|
+
background: inherit;
|
65
|
+
color: white;
|
66
|
+
}
|
67
|
+
|
68
|
+
div#classHeader td, div#fileHeader td {
|
69
|
+
background: inherit;
|
70
|
+
color: white;
|
71
|
+
}
|
72
|
+
|
73
|
+
|
74
|
+
div#fileHeader {
|
75
|
+
background: #057;
|
76
|
+
}
|
77
|
+
|
78
|
+
div#classHeader {
|
79
|
+
background: #048;
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
.class-name-in-header {
|
84
|
+
font-size: 180%;
|
85
|
+
font-weight: bold;
|
86
|
+
}
|
87
|
+
|
88
|
+
|
89
|
+
div#bodyContent {
|
90
|
+
padding: 0 1.5em 0 1.5em;
|
91
|
+
}
|
92
|
+
|
93
|
+
div#description {
|
94
|
+
padding: 0.5em 1.5em;
|
95
|
+
background: #efefef;
|
96
|
+
border: 1px dotted #999;
|
97
|
+
}
|
98
|
+
|
99
|
+
div#description h1,h2,h3,h4,h5,h6 {
|
100
|
+
color: #125;;
|
101
|
+
background: transparent;
|
102
|
+
}
|
103
|
+
|
104
|
+
div#validator-badges {
|
105
|
+
text-align: center;
|
106
|
+
}
|
107
|
+
div#validator-badges img { border: 0; }
|
108
|
+
|
109
|
+
div#copyright {
|
110
|
+
color: #333;
|
111
|
+
background: #efefef;
|
112
|
+
font: 0.75em sans-serif;
|
113
|
+
margin-top: 5em;
|
114
|
+
margin-bottom: 0;
|
115
|
+
padding: 0.5em 2em;
|
116
|
+
}
|
117
|
+
|
118
|
+
|
119
|
+
/* === Classes =================================== */
|
120
|
+
|
121
|
+
table.header-table {
|
122
|
+
color: white;
|
123
|
+
font-size: small;
|
124
|
+
}
|
125
|
+
|
126
|
+
.type-note {
|
127
|
+
font-size: small;
|
128
|
+
color: #DEDEDE;
|
129
|
+
}
|
130
|
+
|
131
|
+
.xxsection-bar {
|
132
|
+
background: #eee;
|
133
|
+
color: #333;
|
134
|
+
padding: 3px;
|
135
|
+
}
|
136
|
+
|
137
|
+
.section-bar {
|
138
|
+
color: #333;
|
139
|
+
border-bottom: 1px solid #999;
|
140
|
+
margin-left: -20px;
|
141
|
+
}
|
142
|
+
|
143
|
+
|
144
|
+
.section-title {
|
145
|
+
background: #79a;
|
146
|
+
color: #eee;
|
147
|
+
padding: 3px;
|
148
|
+
margin-top: 2em;
|
149
|
+
margin-left: -30px;
|
150
|
+
border: 1px solid #999;
|
151
|
+
}
|
152
|
+
|
153
|
+
.top-aligned-row { vertical-align: top }
|
154
|
+
.bottom-aligned-row { vertical-align: bottom }
|
155
|
+
|
156
|
+
/* --- Context section classes ----------------------- */
|
157
|
+
|
158
|
+
.context-row { }
|
159
|
+
.context-item-name { font-family: monospace; font-weight: bold; color: black; }
|
160
|
+
.context-item-value { font-size: small; color: #448; }
|
161
|
+
.context-item-desc { color: #333; padding-left: 2em; }
|
162
|
+
|
163
|
+
/* --- Method classes -------------------------- */
|
164
|
+
.method-detail {
|
165
|
+
background: #efefef;
|
166
|
+
padding: 0;
|
167
|
+
margin-top: 0.5em;
|
168
|
+
margin-bottom: 1em;
|
169
|
+
border: 1px dotted #ccc;
|
170
|
+
}
|
171
|
+
.method-heading {
|
172
|
+
color: black;
|
173
|
+
background: #ccc;
|
174
|
+
border-bottom: 1px solid #666;
|
175
|
+
padding: 0.2em 0.5em 0 0.5em;
|
176
|
+
}
|
177
|
+
.method-signature { color: black; background: inherit; }
|
178
|
+
.method-name { font-weight: bold; }
|
179
|
+
.method-args { font-style: italic; }
|
180
|
+
.method-description { padding: 0 0.5em 0 0.5em; }
|
181
|
+
|
182
|
+
/* --- Source code sections -------------------- */
|
183
|
+
|
184
|
+
a.source-toggle { font-size: 90%; }
|
185
|
+
div.method-source-code {
|
186
|
+
background: #262626;
|
187
|
+
color: #ffdead;
|
188
|
+
margin: 1em;
|
189
|
+
padding: 0.5em;
|
190
|
+
border: 1px dashed #999;
|
191
|
+
overflow: hidden;
|
192
|
+
}
|
193
|
+
|
194
|
+
div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
195
|
+
|
196
|
+
/* --- Ruby keyword styles --------------------- */
|
197
|
+
|
198
|
+
.standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
|
199
|
+
|
200
|
+
.ruby-constant { color: #7fffd4; background: transparent; }
|
201
|
+
.ruby-keyword { color: #00ffff; background: transparent; }
|
202
|
+
.ruby-ivar { color: #eedd82; background: transparent; }
|
203
|
+
.ruby-operator { color: #00ffee; background: transparent; }
|
204
|
+
.ruby-identifier { color: #ffdead; background: transparent; }
|
205
|
+
.ruby-node { color: #ffa07a; background: transparent; }
|
206
|
+
.ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
|
207
|
+
.ruby-regexp { color: #ffa07a; background: transparent; }
|
208
|
+
.ruby-value { color: #7fffd4; background: transparent; }
|
data/irbtools.gemspec
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{irbtools}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Jan Lelis"]
|
12
|
+
s.date = %q{2010-10-06}
|
13
|
+
s.description = %q{irbtools is a meta gem which installs some great irb gems and configures your irb. Simply put a require 'irbtools' in the .irbrc file in your home directory.}
|
14
|
+
s.email = %q{mail@janlelis.de}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".gitignore",
|
22
|
+
"LICENSE",
|
23
|
+
"README.rdoc",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"doc/classes/IRB.html",
|
27
|
+
"doc/classes/IRB/CaptureIO.html",
|
28
|
+
"doc/classes/Irbtools.html",
|
29
|
+
"doc/classes/Kernel.html",
|
30
|
+
"doc/created.rid",
|
31
|
+
"doc/files/README_rdoc.html",
|
32
|
+
"doc/files/lib/irbtools/configure_rb.html",
|
33
|
+
"doc/files/lib/irbtools_rb.html",
|
34
|
+
"doc/fr_class_index.html",
|
35
|
+
"doc/fr_file_index.html",
|
36
|
+
"doc/fr_method_index.html",
|
37
|
+
"doc/index.html",
|
38
|
+
"doc/rdoc-style.css",
|
39
|
+
"irbtools.gemspec",
|
40
|
+
"lib/irbtools.rb",
|
41
|
+
"lib/irbtools/configure.rb"
|
42
|
+
]
|
43
|
+
s.homepage = %q{http://github.com/janlelis/irbtools}
|
44
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
45
|
+
s.require_paths = ["lib"]
|
46
|
+
s.requirements = ["You need to add http://merbi.st to your gem sources (irb_rocket)"]
|
47
|
+
s.rubygems_version = %q{1.3.7}
|
48
|
+
s.summary = %q{irbtools is a meta gem which installs some great irb gems and configures your irb.}
|
49
|
+
|
50
|
+
if s.respond_to? :specification_version then
|
51
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
52
|
+
s.specification_version = 3
|
53
|
+
|
54
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
55
|
+
s.add_runtime_dependency(%q<wirble>, [">= 0"])
|
56
|
+
s.add_runtime_dependency(%q<hirb>, [">= 0"])
|
57
|
+
s.add_runtime_dependency(%q<zucker>, [">= 7"])
|
58
|
+
s.add_runtime_dependency(%q<awesome_print>, [">= 0"])
|
59
|
+
s.add_runtime_dependency(%q<g>, [">= 0"])
|
60
|
+
s.add_runtime_dependency(%q<clipboard>, [">= 0"])
|
61
|
+
s.add_runtime_dependency(%q<guessmethod>, [">= 0"])
|
62
|
+
s.add_runtime_dependency(%q<interactive_editor>, [">= 0"])
|
63
|
+
s.add_runtime_dependency(%q<coderay>, [">= 0"])
|
64
|
+
else
|
65
|
+
s.add_dependency(%q<wirble>, [">= 0"])
|
66
|
+
s.add_dependency(%q<hirb>, [">= 0"])
|
67
|
+
s.add_dependency(%q<zucker>, [">= 7"])
|
68
|
+
s.add_dependency(%q<awesome_print>, [">= 0"])
|
69
|
+
s.add_dependency(%q<g>, [">= 0"])
|
70
|
+
s.add_dependency(%q<clipboard>, [">= 0"])
|
71
|
+
s.add_dependency(%q<guessmethod>, [">= 0"])
|
72
|
+
s.add_dependency(%q<interactive_editor>, [">= 0"])
|
73
|
+
s.add_dependency(%q<coderay>, [">= 0"])
|
74
|
+
end
|
75
|
+
else
|
76
|
+
s.add_dependency(%q<wirble>, [">= 0"])
|
77
|
+
s.add_dependency(%q<hirb>, [">= 0"])
|
78
|
+
s.add_dependency(%q<zucker>, [">= 7"])
|
79
|
+
s.add_dependency(%q<awesome_print>, [">= 0"])
|
80
|
+
s.add_dependency(%q<g>, [">= 0"])
|
81
|
+
s.add_dependency(%q<clipboard>, [">= 0"])
|
82
|
+
s.add_dependency(%q<guessmethod>, [">= 0"])
|
83
|
+
s.add_dependency(%q<interactive_editor>, [">= 0"])
|
84
|
+
s.add_dependency(%q<coderay>, [">= 0"])
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
data/lib/irbtools.rb
CHANGED
@@ -2,54 +2,211 @@
|
|
2
2
|
|
3
3
|
# # # # #
|
4
4
|
# require 'irbtools' in your .irbrc
|
5
|
-
# then call Irbtools.load or require 'irbtools/init' to load libraries
|
6
5
|
# see the README file for more information
|
7
6
|
|
8
|
-
require '
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
7
|
+
require File.expand_path('irbtools/configure', File.dirname(__FILE__) )
|
8
|
+
|
9
|
+
# # # # #
|
10
|
+
# load libraries
|
11
|
+
Irbtools.libs.each{ |lib|
|
12
|
+
begin
|
13
|
+
require lib # &&
|
14
|
+
case lib
|
15
|
+
|
16
|
+
when 'wirble'
|
17
|
+
Wirble.init
|
18
|
+
Wirble.colorize unless OS.windows?
|
19
|
+
|
20
|
+
when 'hirb'
|
21
|
+
Hirb::View.enable
|
22
|
+
|
23
|
+
when 'fileutils'
|
24
|
+
include FileUtils::Verbose
|
25
|
+
|
26
|
+
when 'clipboard'
|
27
|
+
# copies the clipboard
|
28
|
+
def copy(str)
|
29
|
+
Clipboard.copy(str)
|
30
|
+
end
|
31
|
+
|
32
|
+
# pastes the clipboard
|
33
|
+
def paste
|
34
|
+
Clipboard.paste
|
35
|
+
end
|
36
|
+
|
37
|
+
# copies everything you have entered in this irb session
|
38
|
+
def copy_input
|
39
|
+
copy session_history
|
40
|
+
"The session input history has been copied to the clipboard."
|
41
|
+
end
|
42
|
+
alias copy_session_input copy_input
|
43
|
+
|
44
|
+
# copies the output of all irb commands in this irb session
|
45
|
+
def copy_output
|
46
|
+
copy context.instance_variable_get(:@eval_history_values).inspect.gsub(/^\d+ (.*)/, '\1')
|
47
|
+
"The session output history has been copied to the clipboard."
|
48
|
+
end
|
49
|
+
alias copy_session_output copy_output
|
50
|
+
|
51
|
+
|
52
|
+
when 'coderay'
|
53
|
+
# syntax highlight a string
|
54
|
+
def colorize(string)
|
55
|
+
puts CodeRay.scan( string, :ruby ).term
|
56
|
+
end
|
57
|
+
|
58
|
+
# syntax highlight a file
|
59
|
+
def ray(path)
|
60
|
+
puts CodeRay.scan( File.read(path), :ruby ).term
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
rescue LoadError => err
|
66
|
+
if err.to_s =~ /irb_rocket/ && RubyEngine.mri?
|
67
|
+
warn "Couldn't load the irb_rocket gem, which is not in the gem dependencies, because it is hosted on a different server.
|
68
|
+
You can install it with: gem install irb_rocket --source http://merbi.st"
|
69
|
+
else
|
70
|
+
warn "Couldn't load an irb library: #{err}"
|
71
|
+
end
|
33
72
|
end
|
73
|
+
}
|
74
|
+
|
75
|
+
# # # # #
|
76
|
+
# general shortcuts & helper methods
|
77
|
+
|
78
|
+
# shows the contents of your current directory (more such commands available by FileUtils)
|
79
|
+
def ls(path='.')
|
80
|
+
Dir[ File.join path, '*' ].map{|res| res =~ /^#{path}\/?/; $' }
|
81
|
+
end
|
82
|
+
alias dir ls
|
83
|
+
|
84
|
+
# patch cd so that it also shows the current directory
|
85
|
+
def cd(path = '/', *args)
|
86
|
+
FileUtils::Verbose.cd path, *args
|
87
|
+
ls
|
88
|
+
end
|
34
89
|
|
35
|
-
|
36
|
-
|
90
|
+
# read file contents (also see ray for ruby source files ;) )
|
91
|
+
def cat(path)
|
92
|
+
File.read path
|
93
|
+
end
|
94
|
+
|
95
|
+
# allows concise syntax like rq:mathn
|
96
|
+
def rq(lib)
|
97
|
+
require lib.to_s
|
98
|
+
end
|
99
|
+
|
100
|
+
# returns the last lines, needed for some copy_ methods
|
101
|
+
def session_history(number_of_lines = context.instance_variable_get(:@line_no) )
|
102
|
+
Readline::HISTORY.entries[-number_of_lines...-1]*"\n"
|
103
|
+
end
|
104
|
+
|
105
|
+
# restart irb
|
106
|
+
def reset! # restart irb
|
107
|
+
exec$0
|
108
|
+
end
|
109
|
+
|
110
|
+
def ruby_version(which = nil)
|
111
|
+
# test if installed
|
112
|
+
unless `rvm -v` =~ /Seguin/
|
113
|
+
raise 'Ruby Version Manager must be installed to use this command'
|
114
|
+
end
|
115
|
+
|
116
|
+
# show rubies if called without options
|
117
|
+
if !which
|
118
|
+
puts 'Availabe Rubies: ' +
|
119
|
+
`rvm list`.scan( /^(?: |=>) (.*) \[/ )*", "
|
120
|
+
return
|
121
|
+
end
|
122
|
+
|
123
|
+
# get irb suffix
|
124
|
+
rv = `rvm use #{which}` # e.g. => "\ninfo: Using ruby 1.9.2 p0\n"
|
125
|
+
# it does not change the ruby for the current user
|
126
|
+
rv =~ /^.*Using(.*)\n/
|
127
|
+
|
128
|
+
# if ruby is found, start it
|
129
|
+
if $1
|
130
|
+
ruby_name = File.split( $1 )[-1].tr(' ', '-')
|
131
|
+
irbname = $0 + '-' + ruby_name + '@global'
|
132
|
+
exec irbname
|
133
|
+
else
|
134
|
+
puts "Sorry, that Ruby version could not be found."
|
37
135
|
end
|
136
|
+
end
|
137
|
+
alias use ruby_version
|
138
|
+
|
139
|
+
# # # # #
|
140
|
+
# irb options
|
141
|
+
IRB.conf[:AUTO_INDENT] = true # simple auto indent
|
142
|
+
IRB.conf[:EVAL_HISTORY] = 42424242424242424242 # creates the special __ variable
|
143
|
+
IRB.conf[:SAVE_HISTORY] = 2000 # how many lines will go to ~/.irb_history
|
144
|
+
|
145
|
+
# prompt
|
146
|
+
IRB.conf[:PROMPT].merge!({:IRBTOOLS => {
|
147
|
+
:PROMPT_I => ">> ", # normal
|
148
|
+
:PROMPT_N => "| ", # indenting
|
149
|
+
:PROMPT_C => "(>>) ", # continuing a statement
|
150
|
+
:PROMPT_S => "%l> ", # continuing a string
|
151
|
+
:RETURN => "=> %s \n",
|
152
|
+
:AUTO_INDENT => true,
|
153
|
+
}})
|
154
|
+
|
155
|
+
IRB.conf[:PROMPT_MODE] = :IRBTOOLS
|
156
|
+
|
157
|
+
# # # # #
|
158
|
+
# misc
|
159
|
+
Zucker.more_aliases! # RubyVersion --> RV, RubyEngine --> RE
|
160
|
+
|
161
|
+
# # # # #
|
162
|
+
# workarounds
|
163
|
+
|
164
|
+
# irb_rocket stdout problems
|
165
|
+
if IRB.const_defined? :CaptureIO
|
166
|
+
module IRB
|
167
|
+
class CaptureIO
|
168
|
+
def self.streams
|
169
|
+
{
|
170
|
+
:stdout => @@current_capture.instance_variable_get( :@out ),
|
171
|
+
:stderr => @@current_capture.instance_variable_get( :@err ),
|
172
|
+
}
|
173
|
+
end
|
38
174
|
|
39
|
-
|
40
|
-
|
175
|
+
alias original_capture capture
|
176
|
+
def capture(&block)
|
177
|
+
@@current_capture = self
|
178
|
+
original_capture &block
|
179
|
+
end
|
180
|
+
end
|
41
181
|
end
|
42
182
|
|
43
|
-
|
44
|
-
|
45
|
-
|
183
|
+
# patch method using stdout
|
184
|
+
module Kernel
|
185
|
+
alias exec_unpatched exec
|
186
|
+
def exec(*args)
|
187
|
+
STDOUT.reopen(IRB::CaptureIO.streams[:stdout])
|
188
|
+
STDERR.reopen(IRB::CaptureIO.streams[:stderr])
|
189
|
+
exec_unpatched *args
|
46
190
|
end
|
47
|
-
|
191
|
+
end
|
48
192
|
|
49
|
-
|
50
|
-
|
193
|
+
if Object.const_defined? :InteractiveEditor
|
194
|
+
InteractiveEditor::Editors.class_eval do
|
195
|
+
editors = %w[vi vim emacs nano mate ed]
|
196
|
+
editors.each{ |editor|
|
197
|
+
alias_for editor, editor_unpatched = ( editor + '_unpatched' ).to_sym
|
198
|
+
define_method editor do
|
199
|
+
STDOUT.reopen(IRB::CaptureIO.streams[:stdout])
|
200
|
+
STDERR.reopen(IRB::CaptureIO.streams[:stderr])
|
201
|
+
send editor_unpatched
|
202
|
+
end
|
203
|
+
}
|
51
204
|
end
|
52
205
|
end
|
53
206
|
end
|
54
207
|
|
208
|
+
# # # # #
|
209
|
+
# done :)
|
210
|
+
puts "Welcome to IRB. You are using #{ RUBY_DESCRIPTION }. Have fun ;)"
|
211
|
+
|
55
212
|
# J-_-L
|