irbtools 3.0.5 → 4.0.1

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: 97638932440324b1ac2515e752f8246e725a9424b20e2ccdb7e3bf9c19c4d73f
4
- data.tar.gz: 92466a6931a28d47fc933be842347daf9cd5caea37a5929fd125e7031b855b0a
3
+ metadata.gz: 4c962628e77711b94b8b2c4f1c9324d5b35c1f0b92419519fd6caa0509214219
4
+ data.tar.gz: d58171b0e82e5aba322a790c8ed9d51f96ce0606ddbfca60f44391719cfc07b3
5
5
  SHA512:
6
- metadata.gz: a7632dbde24787c8fca33e883b549c8519f9bb4fe18035b788cfd412adfb7a9f255b3b814d24bb71a60f067cb6aabd26c3ab71f2eb5a18c9e2639cdf90715dee
7
- data.tar.gz: cd8474954adc2b449e4bdb99b1631cec1036027158d8b87ad2a2addee4eabc4f984e4135cbd3ebab67ddbf332f3daa2d75bb6a216423202d06d0eb09f385a082
6
+ metadata.gz: bd488a948771e30dcab7dfc91c2e29fe223ac92976f4111c8e9154517107a92859b3d8f9da6713ec4c8439f453ec928031265053fbe761e37e749666a3b355fc
7
+ data.tar.gz: c5ee0a94b72e07441b774ba8fa795b61be1a116252736d7ec605ff3d9a6ea9b3092cc1839fa4eb340085bb0d09f2cc26f8ce4653355600fd130946da3108e646
data/.editorconfig ADDED
@@ -0,0 +1,11 @@
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 2
6
+ end_of_line = lf
7
+ insert_final_newline = true
8
+ trim_trailing_whitespace = true
9
+
10
+ [*.{md,rdoc,txt}]
11
+ indent_size = 4
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ Gemfile.lock
2
+ /pkg
data/CHANGELOG-MORE.md ADDED
@@ -0,0 +1,78 @@
1
+ # Irbtools (More) Changelog
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
+
12
+ ## 2.5.0
13
+ * Bump binding_of_caller & core_docs for Ruby 3.0
14
+
15
+ ## 2.4.1
16
+ * Loosen Ruby dependency to allow Ruby 3.0
17
+
18
+ ## 2.4.0
19
+ * Bump looksee & core_docs for Ruby 2.7
20
+
21
+ ## 2.3.1
22
+ * Loosen irbrtools-more dependency to irbtools (allow 3.x)
23
+
24
+ ## 2.3.0
25
+ * Remove dependency to did_you_mean, since it is now a default gem anyways
26
+ * Version bump: irbtools, looksee, core_docs, and binding_of_caller
27
+
28
+ ## 2.2.1
29
+ * Add core_docs dependency
30
+
31
+ ## 2.2.0
32
+ * Re-enable looksee (not comptible with Ruby 2.3, but does not crash anymore during install)
33
+
34
+ ## 2.1.0
35
+ * Ruby 2.3 compat: Upgrade did_you_mean to ~> 1.0
36
+ * Ruby 2.3 compat: Disable looksee gem as long it is not adapted for 2.3
37
+
38
+ ## 2.0.0
39
+ * Integrate more-repo into irbtools main repo
40
+ * Improve auto-completion
41
+ * Remove Object#l alias for looksee, use Object#lp
42
+
43
+ ## 1.7.2
44
+ * Bump did_you_mean and looksee (Ruby 2.2 compat)
45
+
46
+ ## 1.7.1
47
+ * Bump did_you_mean version
48
+
49
+ ## 1.7.0
50
+ * Bump looksee
51
+ * Ruby 1.9.3 required
52
+ * Add did_you_mean gem
53
+
54
+ ## 1.6.1
55
+ * Add binding_of_caller
56
+ * Alias looksee to Object#lp instead of Object#ls
57
+
58
+ ## 1.6.0
59
+ * (nothing)
60
+
61
+ ## 1.5.2
62
+ * Ruby 2.1 Compatibility / Update looksee gem
63
+ * Be less restrictive in gem dependencies
64
+
65
+ ## 1.5.1
66
+ * (nothing)
67
+
68
+ ## 1.5.0
69
+ * Ruby 2.0 Compatibility
70
+ * Drop 1.8 Support
71
+ * Drop DrX gem
72
+
73
+ ## 1.2.0
74
+ * add looksee
75
+
76
+ ## 0.3.2
77
+ * load in threads (irbtools 1.0)
78
+ * remove jeweler
data/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Irbtools Changelog
2
2
 
3
+ ## 4.0.1
4
+
5
+ * Bump ruby_engine gem
6
+
7
+ ## 4.0.0
8
+
9
+ * Requires IRB 1.6 (Ruby 3.2 bundles IRB 1.6.2)
10
+ * Requires Ruby 3.0
11
+
12
+ * Remove a bunch of gems:
13
+ * Drop binding.repl gem since it was only needed for older Rubies
14
+ * Drop ori gem, since IRB now has `show_doc`
15
+ * Drop RubyInfo
16
+
17
+ * Retire irbtools-more:
18
+ * Move looksee to core irbtools
19
+ * Move core_docs to core irbtools
20
+ * Remove bond (outdated)
21
+ * Leave binding_of_caller optional
22
+
23
+ * Add command wrappers for code, howtocall, looksee, shadow
24
+ * Add `$` command to directly call system
25
+
26
+ * Version bumps: looksee, os, methodfinder, code, core_docs, debugging
27
+ * Alias IRB's ls to ils (fixes #53)
28
+ * Remove support for RIPL repl (outdated)
29
+
3
30
  ## 3.0.5
4
31
  * Bump methodfinder dependency & update usage (fixes #52)
5
32
 
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at opensource@janlelis.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/CONFIGURE.md CHANGED
@@ -43,8 +43,7 @@ The following options are possible
43
43
  : Same as `:thread`, but after loading late libraries.
44
44
  `:sub_session => true`
45
45
  : The library is loaded every time a sub-session starts (using
46
- `IRB.conf[:IRB_RC]`). In [ripl](https://github.com/cldwalker/ripl),
47
- `ripl-after_rc` is used.
46
+ `IRB.conf[:IRB_RC]`).
48
47
  `:autoload => :Constant`
49
48
  : Use Ruby's `autoload` feature. It loads the library as soon as the
50
49
  constant is encountered.
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec name: "irbtools"
4
+
5
+ gem "rspec"
6
+ gem "rake"
7
+ gem "irb"
data/Gemfile.lock ADDED
@@ -0,0 +1,93 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ irbtools (4.0.0)
5
+ clipboard (~> 1.3)
6
+ code (>= 0.9.4, < 2.0)
7
+ coderay (~> 1.1)
8
+ core_docs (~> 0.9.9)
9
+ debugging (~> 2.1)
10
+ every_day_irb (~> 2.2)
11
+ fancy_irb (~> 1.2, >= 1.2.1)
12
+ hirb (~> 0.7, >= 0.7.3)
13
+ interactive_editor (~> 0.0, >= 0.0.10)
14
+ irb (~> 1.6.2)
15
+ looksee (~> 5.0)
16
+ methodfinder (~> 2.2, >= 2.2.5)
17
+ object_shadow (~> 1.1)
18
+ os (~> 1.1, >= 1.1.4)
19
+ paint (>= 0.9, < 3.0)
20
+ ruby_engine (~> 1.0)
21
+ ruby_version (~> 1.0)
22
+ wirb (~> 2.0, >= 2.2.1)
23
+
24
+ GEM
25
+ remote: https://rubygems.org/
26
+ specs:
27
+ cd (1.0.1)
28
+ clipboard (1.3.6)
29
+ code (0.9.4)
30
+ coderay (~> 1.1)
31
+ method_source (>= 0.9, < 2.0)
32
+ coderay (1.1.3)
33
+ core_docs (0.9.9)
34
+ yard (~> 0.9.11)
35
+ debugging (2.1.0)
36
+ paint (>= 0.9, < 3.0)
37
+ diff-lcs (1.5.0)
38
+ every_day_irb (2.2.0)
39
+ cd (~> 1.0)
40
+ fancy_irb (1.4.3)
41
+ paint (>= 0.9, < 3.0)
42
+ unicode-display_width (>= 1.1)
43
+ ffi (1.15.5)
44
+ hirb (0.7.3)
45
+ interactive_editor (0.0.11)
46
+ spoon (>= 0.0.1)
47
+ io-console (0.6.0)
48
+ irb (1.6.2)
49
+ reline (>= 0.3.0)
50
+ looksee (5.0.0)
51
+ method_source (1.0.0)
52
+ methodfinder (2.2.5)
53
+ object_shadow (1.1.1)
54
+ os (1.1.4)
55
+ paint (2.3.0)
56
+ rake (13.0.6)
57
+ reline (0.3.2)
58
+ io-console (~> 0.5)
59
+ rspec (3.12.0)
60
+ rspec-core (~> 3.12.0)
61
+ rspec-expectations (~> 3.12.0)
62
+ rspec-mocks (~> 3.12.0)
63
+ rspec-core (3.12.0)
64
+ rspec-support (~> 3.12.0)
65
+ rspec-expectations (3.12.1)
66
+ diff-lcs (>= 1.2.0, < 2.0)
67
+ rspec-support (~> 3.12.0)
68
+ rspec-mocks (3.12.1)
69
+ diff-lcs (>= 1.2.0, < 2.0)
70
+ rspec-support (~> 3.12.0)
71
+ rspec-support (3.12.0)
72
+ ruby_engine (1.0.1)
73
+ ruby_version (1.0.2)
74
+ spoon (0.0.6)
75
+ ffi
76
+ unicode-display_width (2.3.0)
77
+ webrick (1.7.0)
78
+ wirb (2.2.2)
79
+ paint (>= 0.9, < 3.0)
80
+ yard (0.9.28)
81
+ webrick (~> 1.7.0)
82
+
83
+ PLATFORMS
84
+ ruby
85
+
86
+ DEPENDENCIES
87
+ irb
88
+ irbtools!
89
+ rake
90
+ rspec
91
+
92
+ BUNDLED WITH
93
+ 2.4.1
data/MIT-LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2021 Jan Lelis
1
+ Copyright (c) 2010-2022 Jan Lelis
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,19 +1,156 @@
1
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
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
19
+
20
+ ```ruby
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]
51
+ ```
52
+
53
+ ### Show a method list grouped by ancestors
54
+
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
+
3
137
  ```ruby
4
- _| _|
5
- _|_|_| _|_|_| _|_|_| _| _| _| _|_|_| _|
6
- _| _| _| _| _| _|_|_|_| _|_| _|_| _| _|_|_| _| _| _|
7
- _| _|_|_| _|_|_| _| _| _| _| _| _| _|_| _| _|_| _|
8
- _| _| _| _| _| _| _| _| _| _| _| _|_| _| _| _|
9
- _|_|_| _| _| _|_|_| _| _|_| _|_| _|_| _| _|_|_| _| _|_|_| _|
10
- _| _|
138
+ >> howtocall require
139
+ require(path)
11
140
  ```
12
141
 
13
- Improvements for Ruby's IRB console, like syntax highlighted output and a lot of
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!
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
+ ```
17
154
 
18
155
  ## Setup
19
156
 
@@ -28,55 +165,66 @@ You also need to add irbtools to your project's `Gemfile`:
28
165
 
29
166
  gem 'irbtools', require: 'irbtools/binding'
30
167
 
31
- Then start IRB (with **Irbtools** loaded) from the terminal or directly from your code with:
168
+ Then start IRB (with **Irbtools** loaded) from the terminal or directly from
169
+ your code with:
32
170
 
33
171
  binding.irb
34
172
 
35
- ### Enable More Gems
36
-
37
- Some suggested gems will not be installed to ensure wider general support. For
38
- the full feature set, you can install **irbtools-more**. To do so, change your
39
- `.irbrc` to:
40
-
41
- require 'irbtools/more'
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:
42
175
 
43
- and edit your `Gemfile` to read like this:
44
-
45
- gem 'irbtools-more', require: 'irbtools/binding'
176
+ irb
46
177
 
47
178
  ## Features
48
179
 
49
- ### Irbtools' IRB Improvements
180
+ ### General IRB Improvements
50
181
 
51
182
  - 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/)
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.
56
185
 
57
- ### Irbtools' Included Methods for IRB
186
+ ### Included Debugging Methods for IRB
58
187
 
59
188
  #### Highlights
60
189
 
61
190
  - 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
191
+ - Go even further with [looksee](https://github.com/oggy/looksee), the best lookup path inspection tool out there
63
192
  - 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
193
  - Find methods that turn one value into another value with [methodfinder](https://github.com/citizen428/methodfinder)
67
194
  - [Use VIM from inside IRB](https://github.com/jberkel/interactive_editor)
68
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
+
69
219
  #### Ruby Introspection
70
220
 
71
221
  Method / Constant | Arguments | Description | Provided By
72
222
  ------ | ---------- | -----------|-
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)
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)
74
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)
75
227
  `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
228
 
81
229
  #### Platform Info
82
230
 
@@ -85,14 +233,15 @@ Method / Constant | Arguments | Description | Provided By
85
233
  `OS` | | Query operating system information | [os](https://github.com/rdp/os)
86
234
  `RubyVersion` | | Show the Ruby version | [ruby_version](https://github.com/janlelis/ruby_version)
87
235
  `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
236
 
90
237
  #### General Utils
91
238
 
92
239
  Method / Constant | Arguments | Description | Provided By
93
240
  ------ | ---------- | -----------|-
94
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)
95
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
96
245
  `colorize` | string | Syntax-highlight a string of Ruby code | [coderay](https://github.com/rubychan/coderay), irbtools
97
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)
98
247
  `ld` | file | Shortcut for `load lib.to_s + '.rb'` | [every_day_irb](https://github.com/janlelis/every_day_irb)
@@ -101,21 +250,12 @@ Method / Constant | Arguments | Description | Provided By
101
250
  `paste` | | Paste clipboard content | [clipboard](https://github.com/janlelis/clipboard)
102
251
  `q` | *args | Like `Kernel#p`, but prints results on one line, with different colors | [debugging/q](https://github.com/janlelis/debugging#qargs)
103
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)
104
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)
105
255
  `rr` | lib | Shortcut for `require_relative lib.to_s` | [every_day_irb](https://github.com/janlelis/every_day_irb)
106
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)
107
257
  `wp` | inspect_string | Syntax-highlight a Ruby return value | [wirb](https://github.com/janlelis/wirb#kernelwp)
108
258
 
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
259
  #### Files and Navigation
120
260
 
121
261
  Method / Constant | Arguments | Description | Provided By
@@ -128,7 +268,7 @@ Method / Constant | Arguments | Description | Provided By
128
268
  `chown_R` | user, group, path | Set file owner for directory | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
129
269
  `cp` | source, destination | Copy file | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
130
270
  `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)
271
+ `ls` | path = "." | List directory content | [cd](https://github.com/janlelis/cd)
132
272
  `ln` | target, link | Create symlink (`ln`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
133
273
  `ln_s` | target, link | Create symlink (`ln -s`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
134
274
  `ln_sf` | target, link | Create symlink (`ln -sf`) | [fileutils](https://ruby-doc.org/stdlib/libdoc/fileutils/rdoc/FileUtils.html)
@@ -173,12 +313,7 @@ You can use **Irbtools** without colors/IRB extensions. To do so, put this into
173
313
  require 'irbtools/non_fancy'
174
314
  Irbtools.start
175
315
  ```
176
-
177
- ### Hint: Web Console and Other Approaches
178
-
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.
180
-
181
316
  ## J-_-L
182
317
 
183
- Copyright (c) 2010-2021 Jan Lelis <https://janlelis.com> released under the MIT
318
+ Copyright (c) 2010-2022 Jan Lelis <https://janlelis.com> released under the MIT
184
319
  license.