irbtools 2.2.2 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 323cbced41109a256d3a177c434af8348a852347ce63ce2cf32bcbffb9aa0186
4
- data.tar.gz: c6f0b0539423bee17e34f2705c9ee8db325cc7835b8309e5fdca961ac3ac55af
3
+ metadata.gz: a77f4b881fba5c72ded44b538e140b361d52703fc118bf2584ceaf96801e1a74
4
+ data.tar.gz: 2ff71cbd96d353fe1ee336c60972f1f9051665cdb48cf237573753e233492477
5
5
  SHA512:
6
- metadata.gz: 74b08caab060f01b655a5d44211b8e79aa66851bf6e884a8dff9f9129961c568d680c74e71f0a061165861d3456686a59fb17799144092fb63c4ded3a5604550
7
- data.tar.gz: 70772f0031ca5b7d52737e73a53601e14d174c8675b2f60a61d4da2c158003d9b2ce5bc38c235ae799f5250eefb946e4a6f0bb272c162aad3036c6534097aff6
6
+ metadata.gz: 6f64cc33563dd407aaeeec7292e3b37cc565a2c266e54d8f35506e268e63c39a6d4dbb1734cdd2ef2ff13fd6a0d22550d342e90f9de7f744b0406e0edc827075
7
+ data.tar.gz: fd1a78a26b3c4ed41e5fc9dbecbc3933215620f5276b7f62936858e3756bc4a157bdc7b7183ef70d433ad77fd04a5bf650ef03c007a1889a79b40c440e3d6312
@@ -1,14 +1,24 @@
1
- 2.2.2
1
+ # Irbtools Changelog
2
+
3
+ ## 3.0.0
4
+ * Make IRB itself a dependency (default gem)
5
+ * Move: "Every day… IRB" into its own git repository
6
+ * https://github.com/janlelis/every_day_irb
7
+ * Replace instance and method_locator gems with new object_shadow gem
8
+ * Improve README
9
+ * Version bump code, clipboard, and methodfinder
10
+
11
+ ## 2.2.2
2
12
  * Remove Rails WIRB loading hack (no longer necessary)
3
13
 
4
- 2.2.1
14
+ ## 2.2.1
5
15
  * Allow os gem to be below 1.0
6
16
  * Do not use binding.repl gem if Ruby version is at least 2.5
7
17
 
8
- 2.2.0
18
+ ## 2.2.0
9
19
  * Remove info, version, engine, and os methods. Use RubyInfo, RubyVersion, RubyEngine, and OS instead (fixes #40)
10
20
 
11
- 2.1.0
21
+ ## 2.1.0
12
22
  * Improve Rails compatibility
13
23
  * Do not load instance gem in the context of Rails
14
24
  * Make sure to actually require "irb" before using it
@@ -17,10 +27,10 @@
17
27
  * Require new versions of fancy_irb, clipboard, os
18
28
  * Set abort_on_exception to true for late threads (early threads do this implicitly via join)
19
29
 
20
- 2.0.1
30
+ ## 2.0.1
21
31
  * Remove g gem
22
32
 
23
- 2.0.0
33
+ ## 2.0.0
24
34
  * Use Wirb 2.0 and FancyIrb 1.0
25
35
  * Drop support for Ruby 1
26
36
  * Simplify starting from code via: require 'irbtools/binding'
@@ -34,35 +44,35 @@
34
44
  * EveryDayIrb now gets released on its own, instead with every new irbtools version
35
45
  * Improve documentation in Readme
36
46
 
37
- 1.7.1
47
+ ## 1.7.1
38
48
  * bump binding.repl, hirb, methodfinder
39
49
 
40
- 1.7.0
50
+ ## 1.7.0
41
51
  * bump boson, boson-more, binding.repl
42
52
  * required ruby version: 1.9.3
43
53
  * remove awesome_print
44
54
 
45
- 1.6.1
55
+ ## 1.6.1
46
56
  * don't load debugging/repl by default
47
57
  * rename re method to engine and rv to version
48
58
 
49
- 1.6.0
59
+ ## 1.6.0
50
60
  * remove zucker dependency, but add debugging, ruby_version, ruby_engine, ruby_info and os gem
51
61
  * configure binding.repl to load irb, not pry
52
62
  * bump binding.repl, paint, wirb
53
63
 
54
- 1.5.1
64
+ ## 1.5.1
55
65
  * include binding.repl gem
56
66
  * bump coderay, awesome_print, method_source, wirb
57
67
 
58
- 1.5.0
68
+ ## 1.5.0
59
69
  * update debundle hack
60
70
  * load less zucker libraries
61
71
  * add alias gem
62
72
  * finaly load boson correctly (but don't load any boson plugin, yet), also depend on boson-more
63
73
  * version bumps (zucker, clipboard, paint, hirb, wirb, ap, coderay, g)
64
74
 
65
- 1.4.0
75
+ ## 1.4.0
66
76
  * every_day_irb is now a module that extends self
67
77
  * specs for most of every_day_irb's functionality
68
78
  * add helper method for paging output with hirb: page
@@ -70,21 +80,21 @@
70
80
  * remove sketches dependency, it's a great gem, but very similar to interactive_editor
71
81
  * Object#mlp alias for method_lookup_path
72
82
 
73
- 1.3.0 == 1.2.3
83
+ ## 1.3.0 == 1.2.3
74
84
  * add modern debundle note
75
85
  * remove loading of .railsrc
76
86
  * remove dbg method
77
87
  * version bumps
78
88
 
79
- 1.2.2
89
+ ## 1.2.2
80
90
  * fix errors when inspect returns nil (e.g. CarrierWave uploaders)
81
91
  * create legacy branch for 1.8.7 support
82
92
 
83
- 1.2.1
93
+ ## 1.2.1
84
94
  * fix newboson loader issue
85
95
  * minor version bumps
86
96
 
87
- 1.2.0
97
+ ## 1.2.0
88
98
  * version bumps: hirb, awesome_print, coderay, g, methodfinder, method_source
89
99
  * remove RVM helpers: Sorry, were too buggy...
90
100
  * fix/improve 'cd' helper method
@@ -92,10 +102,10 @@
92
102
  * move looksee gem to irbtools-more
93
103
  * more little tweaks
94
104
 
95
- 1.1.1
105
+ ## 1.1.1
96
106
  * fix the Ripl.after_rc bug
97
107
 
98
- 1.1.0
108
+ ## 1.1.0
99
109
  * fix hirb loading/unicode issue + colorize tables (thanks to halan)
100
110
  * colorize paged wirb output
101
111
  * include method locator gem (improved ancestors)
@@ -103,28 +113,28 @@
103
113
  * include method source gem (Object#src)
104
114
  * small tweaks...
105
115
 
106
- 1.0.6
116
+ ## 1.0.6
107
117
  * add possibility to modify library callbacks without removing the library by using: replace_library_callback or add_library_callback
108
118
  * fix hirb dependency issue
109
119
  * readme improvements
110
120
 
111
- 1.0.5
121
+ ## 1.0.5
112
122
  * use paint gem for terminal colors
113
123
 
114
- 1.0.4
124
+ ## 1.0.4
115
125
  * improve error-handling
116
126
  * fix broken loading of boson + interactive_editor
117
127
 
118
- 1.0.3
128
+ ## 1.0.3
119
129
  * fix post-install banner typo
120
130
 
121
- 1.0.2
131
+ ## 1.0.2
122
132
  * version bumps for zucker (rbx compatible) and wirb (improved generic object-description highlighting)
123
133
 
124
- 1.0.1
134
+ ## 1.0.1
125
135
  * add missing require 'rbconfig'
126
136
 
127
- 1.0.0
137
+ ## 1.0.0
128
138
  * gemify general helpers/rvm stuff ("every_day_irb", "rvm_loader")
129
139
  * 6 different loading schemas: start, thread, autoload, sub_session, late, late_thread
130
140
  * load almost every feature via threads
@@ -132,67 +142,67 @@
132
142
  * add irbtools/minimal mode for starting Irbtools without the default set of libraries
133
143
  * replace RV and RE with rv and re
134
144
 
135
- 0.8.8
145
+ ## 0.8.8
136
146
  * fix 0.8.7 file permissions
137
147
  * add methodfinder gem
138
148
  * don't depend on guessmethod anymore
139
149
 
140
- 0.8.7
150
+ ## 0.8.7
141
151
  * fix railsrc loading
142
152
  * add ori gem for nice Object#ri calling
143
153
  * minor tweaks
144
154
 
145
- 0.8.6
155
+ ## 0.8.6
146
156
  * windows support
147
157
  * update hirb + activate unicode-drawn tables
148
158
 
149
- 0.8.5
159
+ ## 0.8.5
150
160
  * rails related fixes
151
161
 
152
- 0.8.4
162
+ ## 0.8.4
153
163
  * now using wirb instead of wirble
154
164
 
155
- 0.8.3
165
+ ## 0.8.3
156
166
  * improved/added rvm methods (use, gemset, rubies, gemsets)
157
167
  * RVM (Ruby API) constant gets autoloaded
158
168
  * improved cd command
159
169
  * don't load guessmethod by default (it's cool, but not always suited for production)
160
170
  * more small changes
161
171
 
162
- 0.8.2
172
+ ## 0.8.2
163
173
  * only do irb specific features if in irb (ripl compatibility)
164
174
  * more generic shell_name (in welcome message)
165
175
 
166
- 0.8.1
176
+ ## 0.8.1
167
177
  * rewrote irb_rocket: fancy_irb. No more workarounds needed, anymore.
168
178
  * added sketches gem
169
179
  * customizable welcome message
170
180
  * more little fixes/enhancements
171
181
 
172
- 0.8.0
182
+ ## 0.8.0
173
183
  * added Object#ri method
174
184
  * feature: extension package loading (e.g. irbtools-more)
175
185
  * feature: loading in IRB.conf[:IRB_RC] (loading when a subirb starts, no more guessmethod rails errors)
176
186
  * added rerequire (rrq) and ld load helper
177
187
 
178
- 0.7.4
188
+ ## 0.7.4
179
189
  * added workaround to use irb_rocket and hirb at the same time (basic hack, e.g. paging does not work)
180
190
  * fixed little VERSION bug
181
191
 
182
- 0.7.3
192
+ ## 0.7.3
183
193
  * refactored file structure and added new Irbtools.add_lib method
184
194
  * load railsrc if executed with rails and Irbtools.railsrc is set
185
195
  * more little fixes
186
196
 
187
- 0.7.2
197
+ ## 0.7.2
188
198
  * fixed Rails 3 bug
189
199
  * added boson gem (command repository)
190
200
  * remember history when resetting or switching ruby version
191
201
 
192
- 0.7.1
202
+ ## 0.7.1
193
203
  * added method for starting a debugger
194
204
 
195
- 0.7.0
205
+ ## 0.7.0
196
206
  * initial release
197
207
 
198
208
  J-_-L
data/README.md CHANGED
@@ -1,12 +1,16 @@
1
- # Irbtools [![version](https://badge.fury.io/rb/irbtools.svg)](https://badge.fury.io/rb/irbtools)
2
-
3
- _ _| | | |
4
- | __| __ \ __| _ \ _ \ | __|
5
- | | | | | ( | ( | | \__ \
6
- ___| _| _.__/ \__| \___/ \___/ _| ____/
1
+ # Irbtools [![version](https://badge.fury.io/rb/irbtools.svg)](https://badge.fury.io/rb/irbtools) [![[travis]](https://travis-ci.org/janlelis/irbtools.svg)](https://travis-ci.org/janlelis/irbtools)
7
2
 
3
+ ```ruby
4
+ _| _|
5
+ _|_|_| _|_|_| _|_|_| _| _| _| _|_|_| _|
6
+ _| _| _| _| _| _|_|_|_| _|_| _|_| _| _|_|_| _| _| _|
7
+ _| _|_|_| _|_|_| _| _| _| _| _| _| _|_| _| _|_| _|
8
+ _| _| _| _| _| _| _| _| _| _| _| _|_| _| _| _|
9
+ _|_|_| _| _| _|_|_| _| _|_| _|_| _|_| _| _|_|_| _| _|_|_| _|
10
+ _| _|
11
+ ```
8
12
 
9
- Improvements for Ruby's IRB console, like colored output and a lot of
13
+ Improvements for Ruby's IRB console, like syntax highlighted output and a lot of
10
14
  debugging and introspection methods. Unlike with PRY, you are still in your
11
15
  normal IRB. It is designed to work out-of-the-box, so there is no reason to not
12
16
  use it!
@@ -20,126 +24,128 @@ just create a new one. Add the following content:
20
24
 
21
25
  require 'irbtools'
22
26
 
23
- You also need to add irbtools to your project's Gemfile:
27
+ You also need to add irbtools to your project's `Gemfile`:
24
28
 
25
29
  gem 'irbtools', require: 'irbtools/binding'
26
30
 
27
- Then start IRB (with **Irbtools** loaded) from the console or directly from your code with:
31
+ Then start IRB (with **Irbtools** loaded) from the terminal or directly from your code with:
28
32
 
29
33
  binding.irb
30
34
 
31
- If the `binding_of_caller` gem is available (e.g. see below), you can omit the `binding`:
32
-
33
- irb
34
-
35
- ### More Improvements
35
+ ### Enable More Gems
36
36
 
37
37
  Some suggested gems will not be installed to ensure wider general support. For
38
- the full feature set, you can add **irbtools-more** and change your
38
+ the full feature set, you can install **irbtools-more**. To do so, change your
39
39
  `.irbrc` to:
40
40
 
41
41
  require 'irbtools/more'
42
42
 
43
- and edit your Gemfile to
43
+ and edit your `Gemfile` to read like this:
44
44
 
45
45
  gem 'irbtools-more', require: 'irbtools/binding'
46
46
 
47
-
48
- ### Included Gems and Libraries
49
- #### IRB Improvements
50
-
51
- * Colored output:
52
- [wirb](https://github.com/janlelis/wirb/)
53
- [fancy_irb](https://github.com/janlelis/fancy_irb)
54
- * Custom views for specific objects:
55
- [hirb](https://tagaholic.me/2009/03/13/hirb-irb-on-the-good-stuff.html)
56
- * **(irbtools-more)** Correction suggestions for misspelled method/constant names:
57
- [did_you_mean](https://github.com/yuki24/did_you_mean)
58
- * **(irbtools-more)** Better tab-completion:
59
- [bond](https://tagaholic.me/bond/)
60
-
61
- #### Utils
62
-
63
- * Useful IRB commands (see below):
64
- [every_day_irb](https://github.com/janlelis/irbtools/tree/master/lib/every_day_irb.rb)
65
- [debugging](https://github.com/janlelis/debugging)
66
- [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
67
- * Clipboard Access:
68
- [clipboard](https://github.com/janlelis/clipboard)
69
- * Terminal colors:
70
- [paint](https://github.com/janlelis/paint)
71
- * Load an editor into your IRB session:
72
- [interactive_editor](https://github.com/jberkel/interactive_editor)
73
-
74
- #### Introspection
75
-
76
- * Displays a method's source:
77
- [code](https://github.com/janlelis/code)
78
- * Access to *ri* docs:
79
- [ori](https://github.com/dadooda/ori)
80
- * Manipulate instance variables with ease:
81
- [instance](https://github.com/rubyworks/instance/) (not loaded in Rails context)
82
- * Platform information:
83
- [ruby_version](https://github.com/janlelis/ruby_version)
84
- [ruby_engine](https://github.com/janlelis/ruby_engine)
85
- [os](https://github.com/rdp/os)
86
- [ruby_info](https://github.com/janlelis/ruby_info)
87
- * Improved method lookup path inspection:
88
- [method_locator](https://github.com/ryanlecompte/method_locator)
89
- * Finds methods that turn one value into another value:
90
- [methodfinder](https://github.com/citizen428/methodfinder)
91
- * **(irbtools-more)** Awesome lookup path inspection:
92
- [looksee](https://github.com/oggy/looksee)
93
-
94
-
95
- ### Irbtools Methods
96
-
97
- Besides improving IRB itself, you will get the following methods:
98
-
99
- Method / Constant | Arguments | Description
100
- ------ | ---------- | -----------
101
- `beep` | | Ring terminal bell.
102
- `cat` | path | Read file contents.
103
- `cd` | path = nil | Changes the directory. Can also be used in these forms: `~cd` (change to home directory), `-cd` (change to previous directory).
104
- `clear` | | Clear the terminal.
105
- `code` | object = self, method_name | Display the method source with syntax highlighting. Will also look up C methods if the **core_docs** gem (which is included in **irbtools-more**) is available.
106
- `colorize` | string | Syntax highlight a Ruby string.
107
- `copy` | string | Copy something to the clipboard.
108
- `copy_input` | | Copy session history to the clipboard.
109
- `copy_output` | | Copy session output history to the clipboard.
110
- `ed` / `emacs` / `mate` / `mvim` / `nano` / `vi` / `vim` | filename = nil | Start an editor in the session context.
111
- `RubyEngine` | | Show the Ruby engine.
112
- `howtocall` | object = self, method_or_proc | Displays parameter names and types for a proc or method.
113
- `RubyInfo` | | List general information about the Ruby environment.
114
- `ld` | file | Shortcut for `load lib.to_s + '.rb'`.
115
- `ls` | path = "." | List directory content.
116
- `mf` | object1, object2 | Find methods that turn one value into another value.
117
- `mof` | object, depth = 0, grep = // | Print a method list, ordered by modules.
118
- `OS` | | Query operating system information.
119
- `pa` | string, color | Print a string in the specified color.
120
- `page` | what, options = {} | Page long content.
121
- `paste` | | Paste clipboard content.
122
- `q` | *args | Like `Kernel#p`, but prints results on one line, with different colors.
123
- `ray` | path | Syntax highlight a Ruby file.
124
- `re` | string, regexg, groups = nil | Assists you when matching regexes againts strings.
125
- `reset!` | | Restart the current IRB session.
126
- `rq` | lib | Shortcut for `require lib.to_s`. Use it like this: `rq:prime`.
127
- `rr` | lib | Shortcut for `require_relative lib.to_s`.
128
- `rrq` / `rerequire` | lib | Hack to remove a library from `$LOADED_FEATURES` and `require` it again.
129
- `session_history` | number_of_lines = nil | Return a string of all commands issued in the current session.
130
- `RubyVersion` | | Show the Ruby version.
131
- `wp` | inspect_string | Syntax-highlight a Ruby object.
132
- `Object#instance` | | Proxy object to read and manipulate instance variables / run eval (not loaded in Rails context).
133
- `Object#lp` | | **(irbtools-more)** Supercharged method introspection in IRB.
134
- `Object#mlp` / `Object#method_lookup_path` | | Traverse an object's method lookup path to find all places where a method may be defined.
135
- `Object#ri` | *args | Show ri documentation for this object or method.
136
-
137
-
138
- ### Advanced tweaking
47
+ ## Features
48
+
49
+ ### Irbtools' IRB Improvements
50
+
51
+ - Syntax highlighting ([wirb](https://github.com/janlelis/wirb/) / [fancy_irb](https://github.com/janlelis/fancy_irb))
52
+ - Loads included third party libraries effeciently
53
+ - Customizable views for specfic options using [hirb](https://tagaholic.me/2009/03/13/hirb-irb-on-the-good-stuff.html)
54
+ - ActiveRecord results get displayed as a table
55
+ - **(irbtools-more)** [Improved tab-completion](https://tagaholic.me/bond/)
56
+
57
+ ### Irbtools' Included Methods for IRB
58
+
59
+ #### Highlights
60
+
61
+ - Lookup and manipulate instance variables / methods with ease using [object_shadow](https://github.com/janlelis/object_shadow/)
62
+ - **(irbtools-more)** Go even further with [looksee](https://github.com/oggy/looksee), the best lookup path inspection tool out there
63
+ - Display a method's source code using [code](https://github.com/janlelis/code)
64
+ - Inline access to *ri* docs by [ori](https://github.com/dadooda/ori)
65
+ - If you have deactivated *ri*, you can re-generate the docs with something like: `rvm docs generate-ri`
66
+ - Find methods that turn one value into another value with [methodfinder](https://github.com/citizen428/methodfinder)
67
+ - [Use VIM from inside IRB](https://github.com/jberkel/interactive_editor)
68
+
69
+ #### Ruby Introspection
70
+
71
+ Method / Constant | Arguments | Description | Provided By
72
+ ------ | ---------- | -----------|-
73
+ `code` | object = self, method_name | Display the method source with syntax highlighting. Will also look up C methods if the **core_docs** gem (which is included in **irbtools-more**) is available. | [code](https://github.com/janlelis/code)
74
+ `howtocall` | object = self, method_or_proc | Display parameter names and types you will need to call a method | [debugging/howtocall](https://github.com/janlelis/debugging#howtocallobj--self-method_or_proc)
75
+ `mf` | object1, object2 | Find methods which turn one value into another value | [methodfinder](https://github.com/citizen428/methodfinder)
76
+ `mof` | object, depth = 0, grep = // | Print a method list, ordered by modules (looksee lite) | [debugging](https://github.com/janlelis/debugging#mofobj-depth--nil)
77
+ `Object#lp` | | **(irbtools-more)** Supercharged method introspection in IRB | [looksee](https://github.com/oggy/looksee)
78
+ `Object#ri` | *args | Show ri documentation for this object or method | [ori](https://github.com/dadooda/ori)
79
+ `Object#shadow` | | Manipulate instance variables and learn about callable methods | [object_shadow](https://github.com/janlelis/object_shadow/)
80
+
81
+ #### Platform Info
82
+
83
+ Method / Constant | Arguments | Description | Provided By
84
+ ------ | ---------- | -----------|-
85
+ `OS` | | Query operating system information | [os](https://github.com/rdp/os)
86
+ `RubyVersion` | | Show the Ruby version | [ruby_version](https://github.com/janlelis/ruby_version)
87
+ `RubyEngine` | | Show the Ruby engine | [ruby_engine](https://github.com/janlelis/ruby_engine)
88
+ `RubyInfo` | | List general information about the Ruby environment | [ruby_info](https://github.com/janlelis/ruby_info)
89
+
90
+ #### General Utils
91
+
92
+ Method / Constant | Arguments | Description | Provided By
93
+ ------ | ---------- | -----------|-
94
+ `beep` | | Ring terminal bell | [debugging/beep](https://github.com/janlelis/debugging#beep)
95
+ `copy` | string | Copy something to the clipboard | [clipboard](https://github.com/janlelis/clipboard)
96
+ `colorize` | string | Syntax-highlight a string of Ruby code | [coderay](https://github.com/rubychan/coderay), irbtools
97
+ `ed` / `emacs` / `mate` / `mvim` / `nano` / `vi` / `vim` | filename = nil | Start an editor in the session context | [interactive_editor](https://github.com/jberkel/interactive_editor)
98
+ `ld` | file | Shortcut for `load lib.to_s + '.rb'` | [every_day_irb](https://github.com/janlelis/every_day_irb)
99
+ `pa` | string, color | Print a string in the specified color | [paint](https://github.com/janlelis/paint#utilities)
100
+ `page` | what, options = {} | Use pager to improve viewing longer content | [hirb](https://github.com/cldwalker/hirb#pager), irbtools
101
+ `paste` | | Paste clipboard content | [clipboard](https://github.com/janlelis/clipboard)
102
+ `q` | *args | Like `Kernel#p`, but prints results on one line, with different colors | [debugging/q](https://github.com/janlelis/debugging#qargs)
103
+ `re` | string, regexg, groups = nil | Regex debugging helper | [debugging/re](https://github.com/janlelis/debugging#qargs)
104
+ `rq` | lib | Shortcut for `require lib.to_s`. Use it like this: `rq:prime` | [every_day_irb](https://github.com/janlelis/every_day_irb)
105
+ `rr` | lib | Shortcut for `require_relative lib.to_s` | [every_day_irb](https://github.com/janlelis/every_day_irb)
106
+ `rrq` / `rerequire` | lib | Hack to remove a library from `$LOADED_FEATURES` and `require` it again | [every_day_irb](https://github.com/janlelis/every_day_irb)
107
+ `wp` | inspect_string | Syntax-highlight a Ruby return value | [wirb](https://github.com/janlelis/wirb#kernelwp)
108
+
109
+ #### IRB Support
110
+
111
+ Method / Constant | Arguments | Description | Provided By
112
+ ------ | ---------- | -----------|-
113
+ `clear` | | Clear the terminal | [every_day_irb](https://github.com/janlelis/every_day_irb)
114
+ `copy_input` | | Copy session history to the clipboard | [clipboard](https://github.com/janlelis/clipboard), irbtools
115
+ `copy_output` | | Copy session output history to the clipboard | [clipboard](https://github.com/janlelis/clipboard), irbtools
116
+ `reset!` | | Restart the current IRB session | [every_day_irb](https://github.com/janlelis/every_day_irb)
117
+ `session_history` | number_of_lines = nil | Return a string of all commands issued in the current session | [every_day_irb](https://github.com/janlelis/every_day_irb)
118
+
119
+ #### Files and Navigation
120
+
121
+ Method / Constant | Arguments | Description | Provided By
122
+ ------ | ---------- | -----------|-
123
+ `cat` | path | Read file contents | [every_day_irb](https://github.com/janlelis/every_day_irb)
124
+ `cd` | path = nil | Change the directory. Can also be used in these forms: `~cd` (change to home directory), `-cd` (change to previous directory) | [cd](https://github.com/janlelis/cd)
125
+ `chmod` | mode, path | Set file mode for file | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
126
+ `chmod_R` | mode, path | Set file mode for directory | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
127
+ `chown` | user, group, path | Set file owner for file | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
128
+ `chown_R` | user, group, path | Set file owner for directory | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
129
+ `cp` | source, destination | Copy file | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
130
+ `cp_r` | source, destination | Copy directory | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
131
+ `ls` | path = "." | List directory content | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
132
+ `ln` | target, link | Create symlink (`ln`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
133
+ `ln_s` | target, link | Create symlink (`ln -s`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
134
+ `ln_sf` | target, link | Create symlink (`ln -sf`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
135
+ `mkdir` | path | Create a new directory | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
136
+ `mkdir_p` | path | Create a new directory (with `-p` option) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
137
+ `cp` | source, destination | Move file or directory | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
138
+ `pwd` | | Return current directory | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
139
+ `ray` | path | Syntax highlight a Ruby file | [coderay](https://github.com/rubychan/coderay), irbtools
140
+ `rm` | path | Delete a file (`rm`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
141
+ `rm_r` | path | Delete a file or directory (`rm -r`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
142
+ `rm_rf` | path | Delete a file or directory, with force (`rm -rf`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
143
+ `rmdir` | path | Delete an empty directory | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
144
+
145
+ ### Advanced Tweaking
139
146
 
140
147
  See [CONFIGURE.md](https://github.com/janlelis/irbtools/blob/master/CONFIGURE.md).
141
148
 
142
-
143
149
  ### Troubleshooting: ANSI colors on Windows
144
150
 
145
151
  Windows: ANSI support can be enabled via
@@ -147,50 +153,30 @@ Windows: ANSI support can be enabled via
147
153
  [ConEmu](https://conemu.github.io/) or
148
154
  [WSL](https://docs.microsoft.com/en-us/windows/wsl/about).
149
155
 
150
-
151
156
  ### Troubleshooting: Clipboard not working on Linux
152
157
 
153
158
  Clipboard support requires **xsel** or **xclip**. On ubuntu, do:
154
159
 
155
160
  sudo apt-get install xsel
156
161
 
157
-
158
- ### Troubleshooting: Unicode causes wrong display widths
159
-
160
- If you use double-width unicode characters, you will need to paste the
161
- following snippet to your `~/.irbrc` file.
162
-
163
- ```ruby
164
- Irbtools.replace_library_callback :fancy_irb do
165
- FancyIrb.start east_asian_width: true
166
- end
167
- ```
168
-
169
- This setting is deactivated by default, because of performance issues.
170
-
171
-
172
162
  ### Hint: Debundle
173
163
 
174
- If you do not want to add **Irbtools** to your project's Gemfile, you will need a
164
+ If you do not want to add **Irbtools** to your project's `Gemfile`, you will need a
175
165
  [debundle hack](https://github.com/janlelis/debundle.rb). Put it at the
176
- beginning of your `~/.irbrc` file and you are fine (until it breaks).
177
-
166
+ beginning of your `~/.irbrc` file and you are fine.
178
167
 
179
168
  ### Hint: No ANSI / IRB extension
180
169
 
181
- You can use Irbtools without colors/irb extensions. To do so, put this into `~/.irbrc`:
170
+ You can use **Irbtools** without colors/IRB extensions. To do so, put this into `~/.irbrc`:
182
171
 
183
172
  ```ruby
184
173
  require 'irbtools/non_fancy'
185
174
  Irbtools.start
186
175
  ```
187
176
 
177
+ ### Hint: Web Console and Other Approaches
188
178
 
189
- ### Hint: Web Console
190
-
191
- **Irbtools** works well together with the amazing
192
- [web-console!](https://github.com/rails/web-console)
193
-
179
+ **Irbtools** works well together with the amazing [web-console!](https://github.com/rails/web-console), and also with the [ripl](https://github.com/cldwalker/ripl) IRB alternative.
194
180
 
195
181
  ## J-_-L
196
182
 
data/Rakefile CHANGED
@@ -1,18 +1,12 @@
1
1
  require 'fileutils'
2
2
  require "rspec/core/rake_task"
3
3
 
4
-
5
4
  task :test => :spec
6
5
  task :default => :spec
7
6
  RSpec::Core::RakeTask.new(:spec) do |t|
8
7
  t.rspec_opts = '--backtrace --color'
9
8
  end
10
9
 
11
-
12
- def gemspec1
13
- @gemspec1 ||= eval(File.read('every_day_irb.gemspec'), binding, 'every_day_irb.gemspec')
14
- end
15
-
16
10
  def gemspec2
17
11
  @gemspec2 ||= eval(File.read('irbtools.gemspec'), binding, 'irbtools.gemspec')
18
12
  end
@@ -23,25 +17,21 @@ end
23
17
 
24
18
  desc "Build the gems"
25
19
  task :gem => :gemspec do
26
- sh "gem build #{gemspec1.name}.gemspec"
27
20
  sh "gem build #{gemspec2.name}.gemspec"
28
21
  sh "gem build #{gemspec3.name}.gemspec"
29
22
  FileUtils.mkdir_p 'pkg'
30
- FileUtils.mv "#{gemspec1.name}-#{gemspec1.version}.gem", 'pkg'
31
23
  FileUtils.mv "#{gemspec2.name}-#{gemspec2.version}.gem", 'pkg'
32
24
  FileUtils.mv "#{gemspec3.name}-#{gemspec3.version}.gem", 'pkg'
33
25
  end
34
26
 
35
27
  desc "Install the gem locally (without docs)"
36
28
  task :install => :gem do
37
- sh %{gem install pkg/#{gemspec1.name}-#{gemspec1.version}.gem --no-document}
38
29
  sh %{gem install pkg/#{gemspec2.name}-#{gemspec2.version}.gem --no-document}
39
30
  sh %{gem install pkg/#{gemspec3.name}-#{gemspec3.version}.gem --no-document}
40
31
  end
41
32
 
42
33
  desc "Validate the gemspec"
43
34
  task :gemspec do
44
- gemspec1.validate
45
35
  gemspec2.validate
46
36
  gemspec3.validate
47
37
  end
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.homepage = 'https://github.com/janlelis/irbtools'
9
9
  s.authors = ["Jan Lelis"]
10
10
  s.summary = 'Irbtools happy IRB.'
11
- s.description = "Irbtools make Ruby's IRB more productive."
11
+ s.description = "Irbtools make working with Ruby's IRB console more productive."
12
12
  s.email = 'mail@janlelis.de'
13
13
  s.files = %w[
14
14
  lib/irbtools.rb
@@ -26,40 +26,38 @@ Gem::Specification.new do |s|
26
26
  s.extra_rdoc_files = %w[
27
27
  README.md
28
28
  CONFIGURE.md
29
- CHANGELOG.txt
29
+ CHANGELOG.md
30
30
  MIT-LICENSE.txt
31
31
  ]
32
32
  s.license = 'MIT'
33
33
 
34
34
  s.required_ruby_version = '~> 2.0'
35
- s.add_development_dependency 'rspec', '~> 3.2'
36
- s.add_development_dependency 'rake', '~> 10.4'
37
35
 
38
36
  # # #
39
37
  # Dependencies
40
38
 
41
- # core functionality
39
+ # Core Functionality
40
+ s.add_dependency %q<irb>, ">= 0.9.6"
42
41
  s.add_dependency %q<every_day_irb>, "~> 2.0"
43
42
  s.add_dependency %q<fancy_irb>, "~> 1.1"
44
43
  s.add_dependency %q<wirb>, "~> 2.0"
45
44
  s.add_dependency %q<hirb>, "~> 0.7", ">= 0.7.3"
46
45
  s.add_dependency %q<binding.repl>, "~> 3.0"
47
46
 
48
- # utils
47
+ # Utils
49
48
  s.add_dependency %q<paint>, ">= 0.9", "< 3.0"
50
- s.add_dependency %q<clipboard>, "~> 1.1"
49
+ s.add_dependency %q<clipboard>, "~> 1.3"
51
50
  s.add_dependency %q<interactive_editor>, "~> 0.0", ">= 0.0.10"
52
51
  s.add_dependency %q<coderay>, "~> 1.1"
53
52
  s.add_dependency %q<debugging>, "~> 1.1"
54
53
 
55
- # introspection / docs
56
- s.add_dependency %q<code>, "~> 0.9"
54
+ # Introspection / Docs
55
+ s.add_dependency %q<object_shadow>, "~> 1.1"
56
+ s.add_dependency %q<code>, ">= 0.9.2", "< 2.0"
57
57
  s.add_dependency %q<ori>, "~> 0.1.0"
58
- s.add_dependency %q<methodfinder>, "~> 2.0"
59
- s.add_dependency %q<method_locator>,"~> 0.0", ">= 0.0.4"
58
+ s.add_dependency %q<methodfinder>, "~> 2.2"
60
59
  s.add_dependency %q<ruby_version>, "~> 1.0"
61
60
  s.add_dependency %q<ruby_engine>, "~> 1.0"
62
61
  s.add_dependency %q<ruby_info>, "~> 1.0"
63
62
  s.add_dependency %q<os>
64
- s.add_dependency %q<instance>, "~> 0.2"
65
63
  end
@@ -28,22 +28,27 @@ unless Irbtools.ripl?
28
28
  end
29
29
 
30
30
  Irbtools.add_library 'debugging/q', thread: :paint
31
-
32
31
  Irbtools.add_library 'debugging/mof', thread: :paint
33
-
34
32
  Irbtools.add_library 'debugging/re', thread: :paint
35
-
36
33
  Irbtools.add_library 'debugging/beep', thread: :paint
37
-
38
34
  Irbtools.add_library 'debugging/howtocall', thread: :paint
39
35
 
40
36
  require_relative 'hirb'
41
37
 
42
- unless defined?(Rails)
43
- Irbtools.add_library 'instance', thread: 30
38
+ Irbtools.add_library 'object_shadow', thread: :paint do
39
+ ObjectShadow.include(ObjectShadow::DeepInspect)
44
40
  end
45
41
 
46
- Irbtools.add_library 'ori', thread: 50 do
42
+ Irbtools.add_library 'ori', thread: :ori do
43
+ # TODO Readline history can be empty (issue)
44
+ module ORI::Internals
45
+ def self.get_ri_arg_prefix(cmd)
46
+ if cmd && (mat = cmd.match /\A(\s*.+?\.ri)\s+\S/)
47
+ mat[1]
48
+ end
49
+ end
50
+ end
51
+
47
52
  class Object
48
53
  # patch ori to also allow shell-like "Array#slice" syntax
49
54
  def ri(*args)
@@ -63,12 +68,6 @@ Irbtools.add_library 'ori', thread: 50 do
63
68
  end
64
69
  end
65
70
 
66
- Irbtools.add_library 'method_locator', thread: 60 do
67
- module MethodLocator
68
- alias mlp method_lookup_path
69
- end
70
- end
71
-
72
71
  Irbtools.add_library 'ruby_info', thread: :ri
73
72
  Irbtools.add_library 'os', thread: :os
74
73
  Irbtools.add_library 'ruby_engine', thread: :re
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Irbtools
4
- VERSION = "2.2.2"
4
+ VERSION = "3.0.0"
5
5
  end
metadata CHANGED
@@ -1,43 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: irbtools
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Lelis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-01 00:00:00.000000000 Z
11
+ date: 2019-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rspec
14
+ name: irb
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '3.2'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '3.2'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
17
+ - - ">="
32
18
  - !ruby/object:Gem::Version
33
- version: '10.4'
34
- type: :development
19
+ version: 0.9.6
20
+ type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
- - - "~>"
24
+ - - ">="
39
25
  - !ruby/object:Gem::Version
40
- version: '10.4'
26
+ version: 0.9.6
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: every_day_irb
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -140,14 +126,14 @@ dependencies:
140
126
  requirements:
141
127
  - - "~>"
142
128
  - !ruby/object:Gem::Version
143
- version: '1.1'
129
+ version: '1.3'
144
130
  type: :runtime
145
131
  prerelease: false
146
132
  version_requirements: !ruby/object:Gem::Requirement
147
133
  requirements:
148
134
  - - "~>"
149
135
  - !ruby/object:Gem::Version
150
- version: '1.1'
136
+ version: '1.3'
151
137
  - !ruby/object:Gem::Dependency
152
138
  name: interactive_editor
153
139
  requirement: !ruby/object:Gem::Requirement
@@ -197,67 +183,67 @@ dependencies:
197
183
  - !ruby/object:Gem::Version
198
184
  version: '1.1'
199
185
  - !ruby/object:Gem::Dependency
200
- name: code
186
+ name: object_shadow
201
187
  requirement: !ruby/object:Gem::Requirement
202
188
  requirements:
203
189
  - - "~>"
204
190
  - !ruby/object:Gem::Version
205
- version: '0.9'
191
+ version: '1.1'
206
192
  type: :runtime
207
193
  prerelease: false
208
194
  version_requirements: !ruby/object:Gem::Requirement
209
195
  requirements:
210
196
  - - "~>"
211
197
  - !ruby/object:Gem::Version
212
- version: '0.9'
198
+ version: '1.1'
213
199
  - !ruby/object:Gem::Dependency
214
- name: ori
200
+ name: code
215
201
  requirement: !ruby/object:Gem::Requirement
216
202
  requirements:
217
- - - "~>"
203
+ - - ">="
218
204
  - !ruby/object:Gem::Version
219
- version: 0.1.0
205
+ version: 0.9.2
206
+ - - "<"
207
+ - !ruby/object:Gem::Version
208
+ version: '2.0'
220
209
  type: :runtime
221
210
  prerelease: false
222
211
  version_requirements: !ruby/object:Gem::Requirement
223
212
  requirements:
224
- - - "~>"
213
+ - - ">="
225
214
  - !ruby/object:Gem::Version
226
- version: 0.1.0
215
+ version: 0.9.2
216
+ - - "<"
217
+ - !ruby/object:Gem::Version
218
+ version: '2.0'
227
219
  - !ruby/object:Gem::Dependency
228
- name: methodfinder
220
+ name: ori
229
221
  requirement: !ruby/object:Gem::Requirement
230
222
  requirements:
231
223
  - - "~>"
232
224
  - !ruby/object:Gem::Version
233
- version: '2.0'
225
+ version: 0.1.0
234
226
  type: :runtime
235
227
  prerelease: false
236
228
  version_requirements: !ruby/object:Gem::Requirement
237
229
  requirements:
238
230
  - - "~>"
239
231
  - !ruby/object:Gem::Version
240
- version: '2.0'
232
+ version: 0.1.0
241
233
  - !ruby/object:Gem::Dependency
242
- name: method_locator
234
+ name: methodfinder
243
235
  requirement: !ruby/object:Gem::Requirement
244
236
  requirements:
245
237
  - - "~>"
246
238
  - !ruby/object:Gem::Version
247
- version: '0.0'
248
- - - ">="
249
- - !ruby/object:Gem::Version
250
- version: 0.0.4
239
+ version: '2.2'
251
240
  type: :runtime
252
241
  prerelease: false
253
242
  version_requirements: !ruby/object:Gem::Requirement
254
243
  requirements:
255
244
  - - "~>"
256
245
  - !ruby/object:Gem::Version
257
- version: '0.0'
258
- - - ">="
259
- - !ruby/object:Gem::Version
260
- version: 0.0.4
246
+ version: '2.2'
261
247
  - !ruby/object:Gem::Dependency
262
248
  name: ruby_version
263
249
  requirement: !ruby/object:Gem::Requirement
@@ -314,31 +300,17 @@ dependencies:
314
300
  - - ">="
315
301
  - !ruby/object:Gem::Version
316
302
  version: '0'
317
- - !ruby/object:Gem::Dependency
318
- name: instance
319
- requirement: !ruby/object:Gem::Requirement
320
- requirements:
321
- - - "~>"
322
- - !ruby/object:Gem::Version
323
- version: '0.2'
324
- type: :runtime
325
- prerelease: false
326
- version_requirements: !ruby/object:Gem::Requirement
327
- requirements:
328
- - - "~>"
329
- - !ruby/object:Gem::Version
330
- version: '0.2'
331
- description: Irbtools make Ruby's IRB more productive.
303
+ description: Irbtools make working with Ruby's IRB console more productive.
332
304
  email: mail@janlelis.de
333
305
  executables: []
334
306
  extensions: []
335
307
  extra_rdoc_files:
336
308
  - README.md
337
309
  - CONFIGURE.md
338
- - CHANGELOG.txt
310
+ - CHANGELOG.md
339
311
  - MIT-LICENSE.txt
340
312
  files:
341
- - CHANGELOG.txt
313
+ - CHANGELOG.md
342
314
  - CONFIGURE.md
343
315
  - MIT-LICENSE.txt
344
316
  - README.md