irbtools-more 2.5.0 → 3.0.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.
- checksums.yaml +4 -4
- data/CHANGELOG-MORE.md +9 -0
- data/MIT-LICENSE.txt +1 -1
- data/README.md +189 -56
- data/irbtools-more.gemspec +6 -9
- data/lib/irbtools/more/version.rb +1 -1
- data/lib/irbtools/more.rb +1 -13
- metadata +13 -75
- data/lib/bond/completions/irbtools.rb +0 -97
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 972a79a9c907f8de3d0dedd992515463b45fba4ceac7a887b018b59193d4e815
|
4
|
+
data.tar.gz: 4dfa06b4dc2f07787cd6da80a401fdad5261bb59a7eb09a2df811741b60f7793
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4734da3de183cec7f5050dfbc30a7b89eb23019fa0465a55d30cadca53481a3869b59a942f2a2a78520f8f3074db6698703a55ac49a1123f935695bbfc000eed
|
7
|
+
data.tar.gz: 22465208a0e01771d05c9912b9d3cb10a124e07d8b5de6ca1de325d69fe2af1e4c717588cd069369e7c2c8279505e71c104d2342c8221b51b1284668a2f5e535
|
data/CHANGELOG-MORE.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Irbtools (More) Changelog
|
2
2
|
|
3
|
+
## 3.0 (final)
|
4
|
+
|
5
|
+
Retire irbtools-more:
|
6
|
+
|
7
|
+
* Move looksee to core irbtools
|
8
|
+
* Move core_docs to core irbtools
|
9
|
+
* Remove bond (outdated)
|
10
|
+
* Leave binding_of_caller optional
|
11
|
+
|
3
12
|
## 2.5.0
|
4
13
|
* Bump binding_of_caller & core_docs for Ruby 3.0
|
5
14
|
|
data/MIT-LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,21 +1,156 @@
|
|
1
|
-
# Irbtools [](https://badge.fury.io/rb/irbtools)
|
1
|
+
# Irbtools [![[version]](https://badge.fury.io/rb/irbtools.svg)](https://badge.fury.io/rb/irbtools) [![[ci]](https://github.com/janlelis/irbtools/workflows/Test/badge.svg)](https://github.com/janlelis/irbtools/actions?query=workflow%3ATest)
|
2
|
+
|
3
|
+
## Irbtools 4.0 for IRB 1.6+
|
4
|
+
|
5
|
+
The current version of Irbtools requires [IRB 1.6+](https://github.com/ruby/irb) (which is the default for Ruby
|
6
|
+
from 3.2 on). Please use Irbtools 3 for earlier versions of IRB.
|
7
|
+
|
8
|
+
## Description
|
9
|
+
|
10
|
+
Improves Ruby's IRB with:
|
11
|
+
|
12
|
+
- a default configuration
|
13
|
+
- improved syntax highlighting of result objects
|
14
|
+
- helpful commands for debugging and introspection
|
15
|
+
|
16
|
+
## Examples
|
17
|
+
|
18
|
+
### Show lookup chain and method list grouped by visibility
|
2
19
|
|
3
20
|
```ruby
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
21
|
+
>> shadow [1,2,3].reverse
|
22
|
+
=> # ObjectShadow of Object #85280
|
23
|
+
|
24
|
+
## Lookup Chain
|
25
|
+
|
26
|
+
[#<Class:#<Array:0x00007fccd9cfac30>>, Array, Enumerable, Object, "…"]
|
27
|
+
|
28
|
+
## 141 Public Methods (Non-Class/Object)
|
29
|
+
|
30
|
+
[:&, :*, :+, :-, :<<, :<=>, :==, :[], :[]=, :all?, :any?, :append, :assoc, :at, :bsearch, :bsearch_index, :chain,
|
31
|
+
:chunk, :chunk_while, :clear, :collect, :collect!, :collect_concat, :combination, :compact, :compact!, :concat,
|
32
|
+
:count, :cycle, :deconstruct, :delete, :delete_at, :delete_if, :detect, :difference, :dig, :drop, :drop_while,
|
33
|
+
:each, :each_cons, :each_entry, :each_index, :each_slice, :each_with_index, :each_with_object, :empty?, :entries,
|
34
|
+
:eql?, :fetch, :fill, :filter, :filter!, :filter_map, :find, :find_all, :find_index, :first, :flat_map, :flatten,
|
35
|
+
:flatten!, :grep, :grep_v, :group_by, :hash, :include?, :index, :inject, :insert, :inspect, :intersect?,
|
36
|
+
:intersection, :join, :keep_if, :last, :lazy, :length, :map, :map!, :max, :max_by, :member?, :min, :min_by,
|
37
|
+
:minmax, :minmax_by, :none?, :one?, :pack, :partition, :permutation, :pop, :prepend, :product, :push, :rassoc,
|
38
|
+
:reduce, :reject, :reject!, :repeated_combination, :repeated_permutation, :replace, :reverse, :reverse!,
|
39
|
+
:reverse_each, :rindex, :rotate, :rotate!, :sample, :select, :select!, :shelljoin, :shift, :shuffle, :shuffle!,
|
40
|
+
:size, :slice, :slice!, :slice_after, :slice_before, :slice_when, :sort, :sort!, :sort_by, :sort_by!, :sum,
|
41
|
+
:take, :take_while, :tally, :to_a, :to_ary, :to_h, :to_s, :to_set, :transpose, :union, :uniq, :uniq!, :unshift,
|
42
|
+
:values_at, :zip, :|]
|
43
|
+
|
44
|
+
## 2 Private Methods (Non-Class/Object)
|
45
|
+
|
46
|
+
[:initialize, :initialize_copy]
|
47
|
+
|
48
|
+
## Object Inspect
|
49
|
+
|
50
|
+
[3, 2, 1]
|
11
51
|
```
|
12
52
|
|
13
|
-
|
14
|
-
debugging and introspection methods. Unlike with PRY, you are still in your
|
15
|
-
normal IRB. It is designed to work out-of-the-box, so there is no reason to not
|
16
|
-
use it!
|
53
|
+
### Show a method list grouped by ancestors
|
17
54
|
|
18
|
-
|
55
|
+
```ruby
|
56
|
+
>> look "str"
|
57
|
+
.
|
58
|
+
.
|
59
|
+
.
|
60
|
+
Comparable
|
61
|
+
< <= == > >= between? clamp
|
62
|
+
String
|
63
|
+
% crypt inspect squeeze!
|
64
|
+
* dedup intern start_with?
|
65
|
+
+ delete length strip
|
66
|
+
+@ delete! lines strip!
|
67
|
+
-@ delete_prefix ljust sub
|
68
|
+
<< delete_prefix! lstrip sub!
|
69
|
+
<=> delete_suffix lstrip! succ
|
70
|
+
.
|
71
|
+
.
|
72
|
+
.
|
73
|
+
```
|
74
|
+
|
75
|
+
### Show source code of a Ruby-based method
|
76
|
+
|
77
|
+
```ruby
|
78
|
+
>> code SecureRandom.uuid
|
79
|
+
#
|
80
|
+
# /home/dan/.rvm/rubies/ruby-3.2.0/lib/ruby/3.2.0/random/formatter.rb:170
|
81
|
+
#
|
82
|
+
# Generate a random v4 UUID (Universally Unique IDentifier).
|
83
|
+
#
|
84
|
+
# require 'random/formatter'
|
85
|
+
#
|
86
|
+
# Random.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
|
87
|
+
# Random.uuid #=> "bad85eb9-0713-4da7-8d36-07a8e4b00eab"
|
88
|
+
# # or
|
89
|
+
# prng = Random.new
|
90
|
+
# prng.uuid #=> "62936e70-1815-439b-bf89-8492855a7e6b"
|
91
|
+
#
|
92
|
+
# The version 4 UUID is purely random (except the version).
|
93
|
+
# It doesn't contain meaningful information such as MAC addresses, timestamps, etc.
|
94
|
+
#
|
95
|
+
# The result contains 122 random bits (15.25 random bytes).
|
96
|
+
#
|
97
|
+
# See RFC4122[https://datatracker.ietf.org/doc/html/rfc4122] for details of UUID.
|
98
|
+
#
|
99
|
+
def uuid
|
100
|
+
ary = random_bytes(16).unpack("NnnnnN")
|
101
|
+
ary[2] = (ary[2] & 0x0fff) | 0x4000
|
102
|
+
ary[3] = (ary[3] & 0x3fff) | 0x8000
|
103
|
+
"%08x-%04x-%04x-%04x-%04x%08x" % ary
|
104
|
+
end
|
105
|
+
```
|
106
|
+
|
107
|
+
### Show source code of a natively implemented method
|
108
|
+
|
109
|
+
```ruby
|
110
|
+
>> code Array#reverse
|
111
|
+
//
|
112
|
+
// https://github.com/ruby/ruby/blob/ruby_3_2/array.c#L3282
|
113
|
+
//
|
114
|
+
// Returns a new \Array with the elements of +self+ in reverse order:
|
115
|
+
//
|
116
|
+
// a = ['foo', 'bar', 'two']
|
117
|
+
// a1 = a.reverse
|
118
|
+
// a1 # => ["two", "bar", "foo"]
|
119
|
+
static VALUE
|
120
|
+
rb_ary_reverse_m(VALUE ary)
|
121
|
+
{
|
122
|
+
long len = RARRAY_LEN(ary);
|
123
|
+
VALUE dup = rb_ary_new2(len);
|
124
|
+
|
125
|
+
if (len > 0) {
|
126
|
+
const VALUE *p1 = RARRAY_CONST_PTR_TRANSIENT(ary);
|
127
|
+
VALUE *p2 = (VALUE *)RARRAY_CONST_PTR_TRANSIENT(dup) + len - 1;
|
128
|
+
do *p2-- = *p1++; while (--len > 0);
|
129
|
+
}
|
130
|
+
ARY_SET_LEN(dup, RARRAY_LEN(ary));
|
131
|
+
return dup;
|
132
|
+
}
|
133
|
+
```
|
134
|
+
|
135
|
+
### Find out method signatures (most useful for Ruby-based methods with keyword args)
|
136
|
+
|
137
|
+
```ruby
|
138
|
+
>> howtocall require
|
139
|
+
require(path)
|
140
|
+
```
|
141
|
+
|
142
|
+
```ruby
|
143
|
+
>> require "rubygems/user_interaction"
|
144
|
+
>> ui = Gem::ConsoleUI.new
|
145
|
+
>> howtocall ui.choose_from_list
|
146
|
+
choose_from_list(question, list)
|
147
|
+
```
|
148
|
+
|
149
|
+
### Call system commands with `$`
|
150
|
+
|
151
|
+
```ruby
|
152
|
+
>> $ git status # displays current git status
|
153
|
+
```
|
19
154
|
|
20
155
|
## Setup
|
21
156
|
|
@@ -30,55 +165,66 @@ You also need to add irbtools to your project's `Gemfile`:
|
|
30
165
|
|
31
166
|
gem 'irbtools', require: 'irbtools/binding'
|
32
167
|
|
33
|
-
Then start IRB (with **Irbtools** loaded) from the terminal or directly from
|
168
|
+
Then start IRB (with **Irbtools** loaded) from the terminal or directly from
|
169
|
+
your code with:
|
34
170
|
|
35
171
|
binding.irb
|
36
172
|
|
37
|
-
|
38
|
-
|
39
|
-
Some suggested gems will not be installed to ensure wider general support. For
|
40
|
-
the full feature set, you can install **irbtools-more**. To do so, change your
|
41
|
-
`.irbrc` to:
|
42
|
-
|
43
|
-
require 'irbtools/more'
|
44
|
-
|
45
|
-
and edit your `Gemfile` to read like this:
|
173
|
+
*Optional:* If the **binding_of_caller** gem is available, you can just call the `irb`
|
174
|
+
method and it will start a session with the current binding:
|
46
175
|
|
47
|
-
|
176
|
+
irb
|
48
177
|
|
49
178
|
## Features
|
50
179
|
|
51
|
-
###
|
180
|
+
### General IRB Improvements
|
52
181
|
|
53
182
|
- Syntax highlighting ([wirb](https://github.com/janlelis/wirb/) / [fancy_irb](https://github.com/janlelis/fancy_irb))
|
54
|
-
- Loads included
|
55
|
-
- Customizable views for specfic options using [hirb](https://tagaholic.me/2009/03/13/hirb-irb-on-the-good-stuff.html)
|
56
|
-
- ActiveRecord results get displayed as a table
|
57
|
-
- **(irbtools-more)** [Improved tab-completion](https://tagaholic.me/bond/)
|
183
|
+
- Loads included libraries efficiently to reduce IRB start-up time
|
184
|
+
- Customizable views for specfic options using [hirb](https://tagaholic.me/2009/03/13/hirb-irb-on-the-good-stuff.html). By default, ActiveRecord results get displayed as a table.
|
58
185
|
|
59
|
-
###
|
186
|
+
### Included Debugging Methods for IRB
|
60
187
|
|
61
188
|
#### Highlights
|
62
189
|
|
63
190
|
- Lookup and manipulate instance variables / methods with ease using [object_shadow](https://github.com/janlelis/object_shadow/)
|
64
|
-
-
|
191
|
+
- Go even further with [looksee](https://github.com/oggy/looksee), the best lookup path inspection tool out there
|
65
192
|
- Display a method's source code using [code](https://github.com/janlelis/code)
|
66
|
-
- Inline access to *ri* docs by [ori](https://github.com/dadooda/ori)
|
67
|
-
- If you have deactivated *ri*, you can re-generate the docs with something like: `rvm docs generate-ri`
|
68
193
|
- Find methods that turn one value into another value with [methodfinder](https://github.com/citizen428/methodfinder)
|
69
194
|
- [Use VIM from inside IRB](https://github.com/jberkel/interactive_editor)
|
70
195
|
|
196
|
+
#### Extra Commands
|
197
|
+
|
198
|
+
Commands get treated specially by IRB and do not necessarily follow Ruby syntax.
|
199
|
+
|
200
|
+
Command | Alias | Description | Example
|
201
|
+
------ | ---------- | ---------|---
|
202
|
+
`code ` | - | Shows syntax-highlighted source code of a method | `code Array#reverse`
|
203
|
+
`howtocall ` | - | Shows the method signature | `howtocall String#gsub`
|
204
|
+
`look ` | - | Shows looksee method list | `look [1,2,3]`
|
205
|
+
`shadow ` | `+ ` | Shows object shadow method list | `shadow [1,2,3]`
|
206
|
+
`sys ` | `$ ` | Calls system shell | `$ top`
|
207
|
+
|
208
|
+
Two default commands have an additional alias:
|
209
|
+
|
210
|
+
Command | Alias | Description | Example
|
211
|
+
------ | ---------- | ---------|---
|
212
|
+
`show_doc` | `ri ` | Shows documentation | `ri String#gsub`
|
213
|
+
`chws` | `co ` | "change into an object" | `co [1,2,3]`
|
214
|
+
|
215
|
+
##### IRB's ls?
|
216
|
+
|
217
|
+
Please note that IRB's own **ls** command is aliased to `ils`, since `ls` already refers to a method listing all files in the current directory. If you haven't tried looksee (`look`) or object shadows (`shadow`) - give it a try ;)
|
218
|
+
|
71
219
|
#### Ruby Introspection
|
72
220
|
|
73
221
|
Method / Constant | Arguments | Description | Provided By
|
74
222
|
------ | ---------- | -----------|-
|
75
|
-
`
|
223
|
+
`Object#lp` or `Object#look` | | Supercharged method introspection in IRB | [looksee](https://github.com/oggy/looksee)
|
224
|
+
`Object#shadow` | | Manipulate instance variables and learn about callable methods | [object_shadow](https://github.com/janlelis/object_shadow/)
|
225
|
+
`code` | object = self, method_name | Display the method source with syntax highlighting. Will also try to look up C methods. | [code](https://github.com/janlelis/code)
|
76
226
|
`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)
|
77
227
|
`mf` | object1, object2 | Find methods which turn one value into another value | [methodfinder](https://github.com/citizen428/methodfinder)
|
78
|
-
`mof` | object, depth = 0, grep = // | Print a method list, ordered by modules (looksee lite) | [debugging](https://github.com/janlelis/debugging#mofobj-depth--nil)
|
79
|
-
`Object#lp` | | **(irbtools-more)** Supercharged method introspection in IRB | [looksee](https://github.com/oggy/looksee)
|
80
|
-
`Object#ri` | *args | Show ri documentation for this object or method | [ori](https://github.com/dadooda/ori)
|
81
|
-
`Object#shadow` | | Manipulate instance variables and learn about callable methods | [object_shadow](https://github.com/janlelis/object_shadow/)
|
82
228
|
|
83
229
|
#### Platform Info
|
84
230
|
|
@@ -87,14 +233,15 @@ Method / Constant | Arguments | Description | Provided By
|
|
87
233
|
`OS` | | Query operating system information | [os](https://github.com/rdp/os)
|
88
234
|
`RubyVersion` | | Show the Ruby version | [ruby_version](https://github.com/janlelis/ruby_version)
|
89
235
|
`RubyEngine` | | Show the Ruby engine | [ruby_engine](https://github.com/janlelis/ruby_engine)
|
90
|
-
`RubyInfo` | | List general information about the Ruby environment | [ruby_info](https://github.com/janlelis/ruby_info)
|
91
236
|
|
92
237
|
#### General Utils
|
93
238
|
|
94
239
|
Method / Constant | Arguments | Description | Provided By
|
95
240
|
------ | ---------- | -----------|-
|
96
241
|
`beep` | | Ring terminal bell | [debugging/beep](https://github.com/janlelis/debugging#beep)
|
242
|
+
`clear` | | Clear the terminal | [every_day_irb](https://github.com/janlelis/every_day_irb)
|
97
243
|
`copy` | string | Copy something to the clipboard | [clipboard](https://github.com/janlelis/clipboard)
|
244
|
+
`copy_output` | | Copy session output history to the clipboard | [clipboard](https://github.com/janlelis/clipboard), irbtools
|
98
245
|
`colorize` | string | Syntax-highlight a string of Ruby code | [coderay](https://github.com/rubychan/coderay), irbtools
|
99
246
|
`ed` / `emacs` / `mate` / `mvim` / `nano` / `vi` / `vim` | filename = nil | Start an editor in the session context | [interactive_editor](https://github.com/jberkel/interactive_editor)
|
100
247
|
`ld` | file | Shortcut for `load lib.to_s + '.rb'` | [every_day_irb](https://github.com/janlelis/every_day_irb)
|
@@ -103,21 +250,12 @@ Method / Constant | Arguments | Description | Provided By
|
|
103
250
|
`paste` | | Paste clipboard content | [clipboard](https://github.com/janlelis/clipboard)
|
104
251
|
`q` | *args | Like `Kernel#p`, but prints results on one line, with different colors | [debugging/q](https://github.com/janlelis/debugging#qargs)
|
105
252
|
`re` | string, regexg, groups = nil | Regex debugging helper | [debugging/re](https://github.com/janlelis/debugging#qargs)
|
253
|
+
`reset!` | | Restart the current IRB session | [every_day_irb](https://github.com/janlelis/every_day_irb)
|
106
254
|
`rq` | lib | Shortcut for `require lib.to_s`. Use it like this: `rq:prime` | [every_day_irb](https://github.com/janlelis/every_day_irb)
|
107
255
|
`rr` | lib | Shortcut for `require_relative lib.to_s` | [every_day_irb](https://github.com/janlelis/every_day_irb)
|
108
256
|
`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)
|
109
257
|
`wp` | inspect_string | Syntax-highlight a Ruby return value | [wirb](https://github.com/janlelis/wirb#kernelwp)
|
110
258
|
|
111
|
-
#### IRB Support
|
112
|
-
|
113
|
-
Method / Constant | Arguments | Description | Provided By
|
114
|
-
------ | ---------- | -----------|-
|
115
|
-
`clear` | | Clear the terminal | [every_day_irb](https://github.com/janlelis/every_day_irb)
|
116
|
-
`copy_input` | | Copy session history to the clipboard | [clipboard](https://github.com/janlelis/clipboard), irbtools
|
117
|
-
`copy_output` | | Copy session output history to the clipboard | [clipboard](https://github.com/janlelis/clipboard), irbtools
|
118
|
-
`reset!` | | Restart the current IRB session | [every_day_irb](https://github.com/janlelis/every_day_irb)
|
119
|
-
`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)
|
120
|
-
|
121
259
|
#### Files and Navigation
|
122
260
|
|
123
261
|
Method / Constant | Arguments | Description | Provided By
|
@@ -130,7 +268,7 @@ Method / Constant | Arguments | Description | Provided By
|
|
130
268
|
`chown_R` | user, group, path | Set file owner for directory | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
|
131
269
|
`cp` | source, destination | Copy file | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
|
132
270
|
`cp_r` | source, destination | Copy directory | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
|
133
|
-
`ls` | path = "." | List directory content | [
|
271
|
+
`ls` | path = "." | List directory content | [cd](https://github.com/janlelis/cd)
|
134
272
|
`ln` | target, link | Create symlink (`ln`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
|
135
273
|
`ln_s` | target, link | Create symlink (`ln -s`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
|
136
274
|
`ln_sf` | target, link | Create symlink (`ln -sf`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
|
@@ -175,12 +313,7 @@ You can use **Irbtools** without colors/IRB extensions. To do so, put this into
|
|
175
313
|
require 'irbtools/non_fancy'
|
176
314
|
Irbtools.start
|
177
315
|
```
|
178
|
-
|
179
|
-
### Hint: Web Console and Other Approaches
|
180
|
-
|
181
|
-
**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.
|
182
|
-
|
183
316
|
## J-_-L
|
184
317
|
|
185
|
-
Copyright (c) 2010-
|
318
|
+
Copyright (c) 2010-2022 Jan Lelis <https://janlelis.com> released under the MIT
|
186
319
|
license.
|
data/irbtools-more.gemspec
CHANGED
@@ -8,12 +8,11 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.homepage = 'https://github.com/janlelis/irbtools'
|
9
9
|
s.authors = ["Jan Lelis"]
|
10
10
|
s.email = ["hi@ruby.consulting"]
|
11
|
-
s.summary =
|
12
|
-
s.description =
|
11
|
+
s.summary = "irbtools-more not necessary anymore: Everything's now in core irbtools."
|
12
|
+
s.description = "irbtools-more not necessary anymore: looksee is now part of core irbtools and the other extensions have been removed (bond) or left optional (binding_of_caller)."
|
13
13
|
s.files = %w[
|
14
14
|
lib/irbtools/more.rb
|
15
15
|
lib/irbtools/more/version.rb
|
16
|
-
lib/bond/completions/irbtools.rb
|
17
16
|
irbtools-more.gemspec
|
18
17
|
]
|
19
18
|
s.extra_rdoc_files = %w[
|
@@ -21,13 +20,11 @@ Gem::Specification.new do |s|
|
|
21
20
|
CHANGELOG-MORE.md
|
22
21
|
MIT-LICENSE.txt
|
23
22
|
]
|
23
|
+
s.metadata = { "rubygems_mfa_required" => "true" }
|
24
24
|
s.license = 'MIT'
|
25
25
|
|
26
|
-
s.required_ruby_version = '>=
|
27
|
-
s.add_dependency 'irbtools', '
|
28
|
-
s.
|
29
|
-
s.add_dependency 'looksee' , '~> 4.2'
|
30
|
-
s.add_dependency 'core_docs', '>= 0.9.6'
|
31
|
-
s.add_dependency 'binding_of_caller', '~> 1.0'
|
26
|
+
s.required_ruby_version = '>= 3.0', '< 4.0'
|
27
|
+
s.add_dependency 'irbtools', '~> 4.0'
|
28
|
+
s.post_install_message = "Notice (2022-12-29): irbtools-more is not necessary anymore. You can switch to just irbtools."
|
32
29
|
end
|
33
30
|
|
data/lib/irbtools/more.rb
CHANGED
@@ -4,19 +4,7 @@ require_relative 'more/version'
|
|
4
4
|
|
5
5
|
require 'irbtools/configure'
|
6
6
|
|
7
|
-
|
8
|
-
Irbtools.add_library :bond, thread: :more1 do
|
9
|
-
Bond.start :gems => %w[irbtools]
|
10
|
-
end
|
11
|
-
|
12
|
-
begin
|
13
|
-
# Object#l method for inspecting its lookup path
|
14
|
-
Irbtools.add_library 'looksee', thread: :more2 do
|
15
|
-
Looksee.rename :lp
|
16
|
-
end
|
17
|
-
rescue LoadError
|
18
|
-
# do not load if not supported
|
19
|
-
end
|
7
|
+
warn "irbtools-more is not necessary anymore, everything has been moved to irbtools (or removed)"
|
20
8
|
|
21
9
|
# load now
|
22
10
|
Irbtools.start if standalone
|
metadata
CHANGED
@@ -1,94 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: irbtools-more
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
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:
|
11
|
+
date: 2022-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: irbtools
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.2'
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '4.0'
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '2.2'
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '4.0'
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: bond
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '0.5'
|
40
|
-
type: :runtime
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '0.5'
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: looksee
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '4.2'
|
54
|
-
type: :runtime
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
16
|
requirements:
|
58
17
|
- - "~>"
|
59
18
|
- !ruby/object:Gem::Version
|
60
|
-
version: '4.
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: core_docs
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: 0.9.6
|
68
|
-
type: :runtime
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: 0.9.6
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: binding_of_caller
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - "~>"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '1.0'
|
19
|
+
version: '4.0'
|
82
20
|
type: :runtime
|
83
21
|
prerelease: false
|
84
22
|
version_requirements: !ruby/object:Gem::Requirement
|
85
23
|
requirements:
|
86
24
|
- - "~>"
|
87
25
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
89
|
-
description: irbtools-more
|
90
|
-
|
91
|
-
.irbrc file in your home directory to load irbtools together with irbtools/more
|
26
|
+
version: '4.0'
|
27
|
+
description: 'irbtools-more not necessary anymore: looksee is now part of core irbtools
|
28
|
+
and the other extensions have been removed (bond) or left optional (binding_of_caller).'
|
92
29
|
email:
|
93
30
|
- hi@ruby.consulting
|
94
31
|
executables: []
|
@@ -102,14 +39,15 @@ files:
|
|
102
39
|
- MIT-LICENSE.txt
|
103
40
|
- README.md
|
104
41
|
- irbtools-more.gemspec
|
105
|
-
- lib/bond/completions/irbtools.rb
|
106
42
|
- lib/irbtools/more.rb
|
107
43
|
- lib/irbtools/more/version.rb
|
108
44
|
homepage: https://github.com/janlelis/irbtools
|
109
45
|
licenses:
|
110
46
|
- MIT
|
111
|
-
metadata:
|
112
|
-
|
47
|
+
metadata:
|
48
|
+
rubygems_mfa_required: 'true'
|
49
|
+
post_install_message: 'Notice (2022-12-29): irbtools-more is not necessary anymore.
|
50
|
+
You can switch to just irbtools.'
|
113
51
|
rdoc_options: []
|
114
52
|
require_paths:
|
115
53
|
- lib
|
@@ -117,7 +55,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
117
55
|
requirements:
|
118
56
|
- - ">="
|
119
57
|
- !ruby/object:Gem::Version
|
120
|
-
version: '
|
58
|
+
version: '3.0'
|
121
59
|
- - "<"
|
122
60
|
- !ruby/object:Gem::Version
|
123
61
|
version: '4.0'
|
@@ -127,8 +65,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
65
|
- !ruby/object:Gem::Version
|
128
66
|
version: '0'
|
129
67
|
requirements: []
|
130
|
-
rubygems_version: 3.1
|
68
|
+
rubygems_version: 3.4.1
|
131
69
|
signing_key:
|
132
70
|
specification_version: 4
|
133
|
-
summary: irbtools-more
|
71
|
+
summary: 'irbtools-more not necessary anymore: Everything''s now in core irbtools.'
|
134
72
|
test_files: []
|
@@ -1,97 +0,0 @@
|
|
1
|
-
# # #
|
2
|
-
# completion actions
|
3
|
-
|
4
|
-
none = ->(*){ [] }
|
5
|
-
|
6
|
-
send_completion = ->(e){
|
7
|
-
if e.arguments.empty?
|
8
|
-
[':']
|
9
|
-
else
|
10
|
-
e.object.methods.map(&:to_s) - Mission::OPERATORS
|
11
|
-
end
|
12
|
-
}
|
13
|
-
|
14
|
-
public_send_completion = ->(e){
|
15
|
-
if e.arguments.empty?
|
16
|
-
[':']
|
17
|
-
else
|
18
|
-
e.object.public_methods.map(&:to_s) - Mission::OPERATORS
|
19
|
-
end
|
20
|
-
}
|
21
|
-
|
22
|
-
directories = ->(e){
|
23
|
-
if e.arguments.empty?
|
24
|
-
['"']
|
25
|
-
else
|
26
|
-
files(e).select{ |f| File.directory?(f) }
|
27
|
-
end
|
28
|
-
}
|
29
|
-
|
30
|
-
files = ->(e){
|
31
|
-
if e.arguments.empty?
|
32
|
-
['"']
|
33
|
-
else
|
34
|
-
files(e)
|
35
|
-
end
|
36
|
-
}
|
37
|
-
|
38
|
-
|
39
|
-
ruby_files = ->(e){
|
40
|
-
if e.arguments.empty?
|
41
|
-
['"']
|
42
|
-
else
|
43
|
-
Dir["./**/*.{rb,bundle,dll,so}"].map{ |f| f.sub('./', '') }.uniq
|
44
|
-
end
|
45
|
-
}
|
46
|
-
|
47
|
-
ruby_files_with_load_path = ->(e){
|
48
|
-
if e.arguments.empty?
|
49
|
-
['"']
|
50
|
-
else
|
51
|
-
($:.flat_map{ |lf|
|
52
|
-
Dir["#{lf}/**/*.{rb,bundle,dll,so}"].map{ |f| f.sub(lf + '/', '') }
|
53
|
-
} + Gem.path.flat_map{ |gm|
|
54
|
-
Dir["#{gm}/gems/*/lib/*.{rb,bundle,dll,so}"].map{ |f| f.sub(/^.*\//,'') }
|
55
|
-
}).map{ |f| f.sub(/\.(?:rb|bundle|dll|so)$/, '') }.uniq
|
56
|
-
end
|
57
|
-
}
|
58
|
-
|
59
|
-
# # #
|
60
|
-
# base ruby
|
61
|
-
|
62
|
-
complete method: "Object#send", &send_completion
|
63
|
-
complete method: "Object#method", &send_completion
|
64
|
-
complete method: "Object#public_method", &public_send_completion
|
65
|
-
complete method: "Object#public_send", &public_send_completion
|
66
|
-
|
67
|
-
complete method: "#require", search: :files, &ruby_files_with_load_path
|
68
|
-
complete method: "#rq", search: :files, &ruby_files_with_load_path
|
69
|
-
complete method: "#rerequire", search: :files, &ruby_files_with_load_path
|
70
|
-
complete method: "#rrq", search: :files, &ruby_files_with_load_path
|
71
|
-
complete method: "#require_relative", &ruby_files
|
72
|
-
complete method: "#rr", &ruby_files
|
73
|
-
complete method: "#load", &ruby_files
|
74
|
-
|
75
|
-
# # #
|
76
|
-
# irbtools
|
77
|
-
|
78
|
-
# methods
|
79
|
-
complete method: "#howtocall", &send_completion
|
80
|
-
complete method: "#code", &send_completion
|
81
|
-
complete method: "Object#ri", &send_completion
|
82
|
-
|
83
|
-
# files
|
84
|
-
complete method: "ls", &directories
|
85
|
-
complete method: "cd", &directories
|
86
|
-
complete method: "cat", &files
|
87
|
-
|
88
|
-
# nops
|
89
|
-
complete method: "#reset!", &none
|
90
|
-
complete method: "#clear", &none
|
91
|
-
complete method: "#beep", &none
|
92
|
-
complete method: "#session_history", &none
|
93
|
-
complete method: "#info", &none
|
94
|
-
complete method: "#version", &none
|
95
|
-
complete method: "#engine", &none
|
96
|
-
complete method: "#os", &none
|
97
|
-
complete method: "Object#lp", &none
|