irbtools 1.2.3 → 1.4.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/CHANGELOG +9 -1
- data/README.rdoc +12 -13
- data/VERSION +1 -1
- data/irbtools.gemspec +4 -5
- data/lib/irbtools/libraries.rb +13 -11
- metadata +12 -28
data/CHANGELOG
CHANGED
@@ -1,4 +1,12 @@
|
|
1
|
-
1.
|
1
|
+
1.4.0
|
2
|
+
* every_day_irb is now a module that extends self
|
3
|
+
* specs for most of every_day_irb's functionality
|
4
|
+
* add helper method for paging output with hirb: page
|
5
|
+
* version bumps, including wirb and fancy_irb
|
6
|
+
* remove sketches dependency, it's a great gem, but very similar to interactive_editor
|
7
|
+
* Object#mlp alias for method_lookup_path
|
8
|
+
|
9
|
+
1.3.0 == 1.2.3
|
2
10
|
* add modern debundle note
|
3
11
|
* remove loading of .railsrc
|
4
12
|
* remove dbg method
|
data/README.rdoc
CHANGED
@@ -1,18 +1,17 @@
|
|
1
1
|
= irbtools
|
2
|
-
|
2
|
+
irbtools improves Ruby's irb console. Unlike pry, you are still in your normal irb, but you have colors and lots of helpful methods.
|
3
3
|
|
4
4
|
== Setup
|
5
5
|
|
6
6
|
gem install irbtools
|
7
7
|
|
8
8
|
* On Linux, you need +xclip+ or +xsel+ to use the clipboard: sudo <tt>apt-get install xclip</tt>
|
9
|
-
* On Windows, you need ansicon[https://github.com/adoxa/ansicon] to
|
9
|
+
* On Windows, you need ansicon[https://github.com/adoxa/ansicon] to enable colors
|
10
10
|
* On MacOS, you need growl, to use the +g+ gem.
|
11
11
|
|
12
12
|
== Usage
|
13
|
-
To use *irbtools*, put the following in your <tt>~/.irbrc</tt> file (
|
13
|
+
To use *irbtools*, put the following in your <tt>~/.irbrc</tt> file (it is loaded every time you start irb):
|
14
14
|
|
15
|
-
require 'rubygems' unless defined? Gem # rubygems is only needed in 1.8
|
16
15
|
require 'irbtools'
|
17
16
|
|
18
17
|
If the file does not exist, just create a new one. See further below on how to customize loaded libraries.
|
@@ -32,8 +31,6 @@ Another way is to add a debundle hack on top of your <tt>~/.irbrc</tt>:
|
|
32
31
|
alias gem require
|
33
32
|
end
|
34
33
|
|
35
|
-
See {this blog post}[http://rbjl.net/49-railsrc-rails-console-snippets] for some Rails integration features.
|
36
|
-
|
37
34
|
=== Yesterday's Ruby versions
|
38
35
|
|
39
36
|
*irbtools* focuses on Ruby 1.9 support. To get it working with 1.8.7, use the following line in your Gemfile:
|
@@ -42,7 +39,7 @@ See {this blog post}[http://rbjl.net/49-railsrc-rails-console-snippets] for some
|
|
42
39
|
|
43
40
|
=== This is irbtools "light"
|
44
41
|
|
45
|
-
When installing *irbtools*, some gems won't be installed to keep windows support, e.g. better auto-completion or the looksee gem. These are packaged
|
42
|
+
When installing *irbtools*, some gems won't be installed to keep windows support, e.g. better auto-completion or the looksee gem. These are packaged into the {irbtools-more}[https://github.com/janlelis/irbtools-more] gem. To use them, you need to change your <tt>.irbrc</tt> to:
|
46
43
|
|
47
44
|
require 'irbtools/configure'
|
48
45
|
Irbtools.add_package :more
|
@@ -52,7 +49,7 @@ When installing *irbtools*, some gems won't be installed to keep windows support
|
|
52
49
|
|
53
50
|
See http://rbjl.net/40-irbtools-release-the-power-of-irb or read the commented source files to get some examples of what you can do with irbtools.
|
54
51
|
|
55
|
-
[wirb[https://github.com/janlelis/wirb/]] Colorizes Ruby objects
|
52
|
+
[wirb[https://github.com/janlelis/wirb/]] Colorizes resulting Ruby objects
|
56
53
|
[paint[https://github.com/janlelis/paint/]] Provides easily to use terminal colors
|
57
54
|
[hirb[http://tagaholic.me/2009/03/13/hirb-irb-on-the-good-stuff.html]]
|
58
55
|
Custom views for specific objects, e.g. tables for ActiveRecord
|
@@ -61,15 +58,14 @@ See http://rbjl.net/40-irbtools-release-the-power-of-irb or read the commented s
|
|
61
58
|
Contains helper methods that might be useful in every-day irb usage, see below for details
|
62
59
|
[clipboard[http://github.com/janlelis/clipboard]] Easy clipboard access
|
63
60
|
[interactive_editor[https://github.com/jberkel/interactive_editor]]
|
64
|
-
Lets you open vim from within irb to hack something that gets loaded into the current session, also possible: yaml object editing
|
65
|
-
[sketches[http://sketches.rubyforge.org/]] Another, more flexible "start editor and it gets loaded into your irb session" plugin
|
61
|
+
Lets you open vim (or emacs) from within irb to hack something that gets loaded into the current session, also possible: yaml object editing
|
66
62
|
[zucker[http:/rubyzucker.info]] Nice debug printing (<tt>q</tt>, <tt>o</tt>, <tt>c</tt>, <tt>Object#m</tt>, <tt>Object#d</tt>) and useful pseudo-constants (<tt>Info</tt>, <tt>OS</tt>, <tt>RubyVersion</tt>, <tt>RubyEngine</tt>)
|
67
|
-
[ap[https://github.com/michaeldv/awesome_print]]
|
63
|
+
[ap[https://github.com/michaeldv/awesome_print]] Alternative for displaying Ruby objects
|
68
64
|
[coderay[http://coderay.rubychan.de/]] Colorizes Ruby code (<tt>colorize</tt>, <tt>ray</tt>)
|
69
65
|
[boson[http://tagaholic.me/boson/]] "A command/task framework similar to rake and thor that opens your ruby universe to the commandline and irb."
|
70
66
|
[methodfinder[https://github.com/citizen428/methodfinder]] Interesting method finder (<tt>mf</tt>)
|
71
67
|
[ori[https://github.com/dadooda/ori]] Adds an <tt>Object#ri</tt> method
|
72
|
-
[method_locator[https://github.com/ryanlecompte/method_locator]] Provides <tt>Object#
|
68
|
+
[method_locator[https://github.com/ryanlecompte/method_locator]] Provides <tt>Object#mlp</tt> (improved version of <tt>Module#ancestors</tt>) and <tt>Object#methods_for(m)</tt> (get this method from all ancestors)
|
73
69
|
[method_source[https://github.com/banister/method_source]] <tt>Object#src</tt> can be shown for Ruby methods
|
74
70
|
[bond[http://tagaholic.me/bond/]] <b>irbtools-more:</b> Improves irb tab-completion
|
75
71
|
[looksee[https://github.com/oggy/looksee]] <b>irbtools-more:</b> Great load path inspector: <tt>Object#l</tt> (Extended version of <tt>Object#m</tt>), also provides the ability to <tt>Object#edit</tt> methods.
|
@@ -78,6 +74,7 @@ See http://rbjl.net/40-irbtools-release-the-power-of-irb or read the commented s
|
|
78
74
|
|
79
75
|
=== Not included anymore
|
80
76
|
|
77
|
+
[sketches[http://sketches.rubyforge.org/]] Another, more flexible "start editor and it gets loaded into your irb session" plugin. It's a great gem, but the reason it's not included anymore is that it's functionality is very similar to the one provided by the interactive_editor gem
|
81
78
|
[guessmethod[http://guessmethod.rubyforge.org/]] Automatically tries to corrects typos in method names
|
82
79
|
[rvm_loader] RVM helpers
|
83
80
|
|
@@ -106,6 +103,7 @@ Irbtools also defines some more helpers in combination with the loaded gems:
|
|
106
103
|
[copy_input] Copies the session_history to the clipboard
|
107
104
|
[copy_output] Copies this session's results to the clipboard
|
108
105
|
[mf] Shortcut for using the *methodfinder*
|
106
|
+
[page] Shortcut for using the pager from *hirb*
|
109
107
|
|
110
108
|
These are the custom public +Object+ methods renamed/patched for some gems
|
111
109
|
|
@@ -114,6 +112,7 @@ These are the custom public +Object+ methods renamed/patched for some gems
|
|
114
112
|
[l/ll] Alternative method name to trigger the *looksee* gem (<b>irbtools-more</b>)
|
115
113
|
|
116
114
|
|
115
|
+
== Advanced tweaking
|
117
116
|
=== How to load more or less libraries
|
118
117
|
|
119
118
|
It's possible to modify, which libraries should get loaded:
|
@@ -143,7 +142,7 @@ When adding a new library, you should firstly consider some way to load it via <
|
|
143
142
|
If not possible, try loading via thread.
|
144
143
|
If that is not possible either, fallback to the default loading.
|
145
144
|
|
146
|
-
== Troubleshooting: Unicode
|
145
|
+
== Troubleshooting: Unicode causes wrong display widths?
|
147
146
|
When using double-width unicode chars, you need to paste the following snippet to your <tt>.irbrc</tt>.
|
148
147
|
|
149
148
|
Irbtools.replace_library_callback :fancy_irb do
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.4.0
|
data/irbtools.gemspec
CHANGED
@@ -19,23 +19,22 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_dependency %q<boson>, "~> 1.2.4"
|
20
20
|
s.add_dependency %q<clipboard>, "~> 1.0.1"
|
21
21
|
s.add_dependency %q<interactive_editor>, ">= 0.0.10"
|
22
|
-
s.add_dependency %q<sketches>, ">= 0.1.1"
|
23
22
|
s.add_dependency %q<every_day_irb>, ">= #{ s.version }"
|
24
23
|
|
25
24
|
# display
|
26
25
|
s.add_dependency %q<paint>, ">= 0.8.5"
|
27
|
-
s.add_dependency %q<fancy_irb>, ">= 0.7.
|
28
|
-
s.add_dependency %q<wirb>, ">= 0.4.
|
26
|
+
s.add_dependency %q<fancy_irb>, ">= 0.7.3"
|
27
|
+
s.add_dependency %q<wirb>, ">= 0.4.3"
|
29
28
|
s.add_dependency %q<hirb>, "~> 0.7.0"
|
30
29
|
s.add_dependency %q<awesome_print>, "~> 1.0.2"
|
31
|
-
s.add_dependency %q<coderay>, "~> 1.0.
|
30
|
+
s.add_dependency %q<coderay>, "~> 1.0.8"
|
32
31
|
s.add_dependency %q<g>, ">= 1.7.1"
|
33
32
|
|
34
33
|
# introspection / docs
|
35
34
|
s.add_dependency %q<ori>, "~> 0.1.0"
|
36
35
|
s.add_dependency %q<methodfinder>, ">= 1.2.5"
|
37
36
|
s.add_dependency %q<method_locator>,">= 0.0.4"
|
38
|
-
s.add_dependency %q<method_source>, ">= 0.8.
|
37
|
+
s.add_dependency %q<method_source>, ">= 0.8.1"
|
39
38
|
|
40
39
|
len = s.homepage.size
|
41
40
|
s.post_install_message = \
|
data/lib/irbtools/libraries.rb
CHANGED
@@ -19,15 +19,13 @@ Irbtools.add_library :fileutils, :thread => :stdlib do # cd, pwd, ln_s, mv, rm,
|
|
19
19
|
def cd( path = '~' )
|
20
20
|
new_last_path = FileUtils.pwd
|
21
21
|
if path == '-'
|
22
|
-
|
23
|
-
path = $irbtools_last_cd_path
|
24
|
-
else
|
22
|
+
unless path = Irbtools.instance_variable_get(:@last_cd_path)
|
25
23
|
warn 'Sorry, there is no previous directory.'
|
26
24
|
return
|
27
25
|
end
|
28
26
|
end
|
29
27
|
super(File.expand_path(path))
|
30
|
-
|
28
|
+
Irbtools.instance_variable_set(:@last_cd_path, new_last_path)
|
31
29
|
ls
|
32
30
|
end
|
33
31
|
end
|
@@ -47,9 +45,6 @@ Irbtools.add_library 'g', :thread => 40 if RbConfig::CONFIG['host_os'] =~ /mac|d
|
|
47
45
|
# lets you open vim (or your favourite editor), hack something, save it, and it's loaded in the current irb session
|
48
46
|
Irbtools.add_library 'interactive_editor', :thread => :stdlib
|
49
47
|
|
50
|
-
# another, more flexible "start editor and it gets loaded into your irb session" plugin
|
51
|
-
Irbtools.add_library 'sketches', :thread => :stdlib
|
52
|
-
|
53
48
|
# object oriented ri method
|
54
49
|
Irbtools.add_library :ori, :thread => 50 do
|
55
50
|
class Object
|
@@ -72,7 +67,11 @@ Irbtools.add_library :ori, :thread => 50 do
|
|
72
67
|
end
|
73
68
|
|
74
69
|
# Object#method_lookup_path (improved ancestors) & Object#methods_for (get this method from all ancestors)
|
75
|
-
Irbtools.add_library :method_locator, :thread => 60
|
70
|
+
Irbtools.add_library :method_locator, :thread => 60 do
|
71
|
+
module MethodLocator
|
72
|
+
alias mlp method_lookup_path
|
73
|
+
end
|
74
|
+
end
|
76
75
|
|
77
76
|
# view method source :)
|
78
77
|
Irbtools.add_library :method_source, :thread => 70 do
|
@@ -104,8 +103,7 @@ end
|
|
104
103
|
Irbtools.add_library :paint, :late => true
|
105
104
|
|
106
105
|
# result colors, install ripl-color_result for ripl colorization
|
107
|
-
Irbtools.add_library :wirb, :late => true do
|
108
|
-
Wirb.load_schema :classic_paint
|
106
|
+
Irbtools.add_library :wirb, :late => true do
|
109
107
|
Wirb.start
|
110
108
|
end
|
111
109
|
|
@@ -129,6 +127,10 @@ Irbtools.add_library :hirb, :late_thread => :hirb do
|
|
129
127
|
:pager_command => 'less -R'
|
130
128
|
extend Hirb::Console
|
131
129
|
|
130
|
+
def page(what, options = {})
|
131
|
+
Hirb::Pager.command_pager(what, options = {})
|
132
|
+
end
|
133
|
+
|
132
134
|
# page wirb output hacks
|
133
135
|
if defined?(Wirb) && defined?(Paint)
|
134
136
|
class Hirb::Pager
|
@@ -219,7 +221,7 @@ end
|
|
219
221
|
|
220
222
|
# small-talk like method finder
|
221
223
|
Irbtools.add_library :methodfinder, :autoload => :MethodFinder do
|
222
|
-
MethodFinder::INSTANCE_METHOD_BLACKLIST[:Object] += [:ri, :vi, :vim, :emacs, :nano, :mate, :mvim, :ed
|
224
|
+
MethodFinder::INSTANCE_METHOD_BLACKLIST[:Object] += [:ri, :vi, :vim, :emacs, :nano, :mate, :mvim, :ed]
|
223
225
|
|
224
226
|
def mf(*args, &block)
|
225
227
|
args.empty? ? MethodFinder : MethodFinder.find(*args, &block)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: irbtools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: zucker
|
@@ -75,22 +75,6 @@ dependencies:
|
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: 0.0.10
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: sketches
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: 0.1.1
|
86
|
-
type: :runtime
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: 0.1.1
|
94
78
|
- !ruby/object:Gem::Dependency
|
95
79
|
name: every_day_irb
|
96
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,7 +82,7 @@ dependencies:
|
|
98
82
|
requirements:
|
99
83
|
- - ! '>='
|
100
84
|
- !ruby/object:Gem::Version
|
101
|
-
version: 1.
|
85
|
+
version: 1.4.0
|
102
86
|
type: :runtime
|
103
87
|
prerelease: false
|
104
88
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -106,7 +90,7 @@ dependencies:
|
|
106
90
|
requirements:
|
107
91
|
- - ! '>='
|
108
92
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.
|
93
|
+
version: 1.4.0
|
110
94
|
- !ruby/object:Gem::Dependency
|
111
95
|
name: paint
|
112
96
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,7 +114,7 @@ dependencies:
|
|
130
114
|
requirements:
|
131
115
|
- - ! '>='
|
132
116
|
- !ruby/object:Gem::Version
|
133
|
-
version: 0.7.
|
117
|
+
version: 0.7.3
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -138,7 +122,7 @@ dependencies:
|
|
138
122
|
requirements:
|
139
123
|
- - ! '>='
|
140
124
|
- !ruby/object:Gem::Version
|
141
|
-
version: 0.7.
|
125
|
+
version: 0.7.3
|
142
126
|
- !ruby/object:Gem::Dependency
|
143
127
|
name: wirb
|
144
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -146,7 +130,7 @@ dependencies:
|
|
146
130
|
requirements:
|
147
131
|
- - ! '>='
|
148
132
|
- !ruby/object:Gem::Version
|
149
|
-
version: 0.4.
|
133
|
+
version: 0.4.3
|
150
134
|
type: :runtime
|
151
135
|
prerelease: false
|
152
136
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -154,7 +138,7 @@ dependencies:
|
|
154
138
|
requirements:
|
155
139
|
- - ! '>='
|
156
140
|
- !ruby/object:Gem::Version
|
157
|
-
version: 0.4.
|
141
|
+
version: 0.4.3
|
158
142
|
- !ruby/object:Gem::Dependency
|
159
143
|
name: hirb
|
160
144
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,7 +178,7 @@ dependencies:
|
|
194
178
|
requirements:
|
195
179
|
- - ~>
|
196
180
|
- !ruby/object:Gem::Version
|
197
|
-
version: 1.0.
|
181
|
+
version: 1.0.8
|
198
182
|
type: :runtime
|
199
183
|
prerelease: false
|
200
184
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -202,7 +186,7 @@ dependencies:
|
|
202
186
|
requirements:
|
203
187
|
- - ~>
|
204
188
|
- !ruby/object:Gem::Version
|
205
|
-
version: 1.0.
|
189
|
+
version: 1.0.8
|
206
190
|
- !ruby/object:Gem::Dependency
|
207
191
|
name: g
|
208
192
|
requirement: !ruby/object:Gem::Requirement
|
@@ -274,7 +258,7 @@ dependencies:
|
|
274
258
|
requirements:
|
275
259
|
- - ! '>='
|
276
260
|
- !ruby/object:Gem::Version
|
277
|
-
version: 0.8.
|
261
|
+
version: 0.8.1
|
278
262
|
type: :runtime
|
279
263
|
prerelease: false
|
280
264
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -282,7 +266,7 @@ dependencies:
|
|
282
266
|
requirements:
|
283
267
|
- - ! '>='
|
284
268
|
- !ruby/object:Gem::Version
|
285
|
-
version: 0.8.
|
269
|
+
version: 0.8.1
|
286
270
|
description: irbtools is a "meta gem" that installs a bunch of useful irb gems and
|
287
271
|
configures them for you. Simply put a require "irbtools" in the .irbrc file in your
|
288
272
|
home directory.
|