funk_hands 1.4.0 → 2.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: 4978a1d1304bf40e9b753e2d5cf3b26df51d598877ab430be1896b9c612be10a
4
- data.tar.gz: a3c12a5f24b5a652bad99db4be51521237dea2b71b8d1ca92c5f84e12cce77a2
3
+ metadata.gz: 9b767a0fd1432f3f77e2f5d2efd21a083dd269dcb76baf695e1cf49a9a6a0d29
4
+ data.tar.gz: 20d6a66b7fb724d233676e5cde198a35e6e79f383e234765c35187bc80bd8fba
5
5
  SHA512:
6
- metadata.gz: c844f3b3912c933ba76302bec770199d470838cc3d5e94a0d9753bacd8403881444c260daf74f9956a258193ffaf12d6153c6ba3151735374b1e11d8bbb2a02b
7
- data.tar.gz: ec6aed617e06c9f70a46f77a39df7fc05663523f17f654a01f088eafabee3b574d00face85c796129cb72bfc20919f5333155a331dff53dfbf9019f10734e75d
6
+ metadata.gz: 3e299da70760635b89a099c29d2271008a0d5cf8562a81fb2582237df3af3ea0eec370dcb273aebbefb9cd66ec9494a71d184e5c0e7e93a8b3c9f8d7c4791913
7
+ data.tar.gz: f1b2490159619399114f21c680b45a19d02813c00d6cc2040e016484d00e809634f0adfbe5b2139e59c4a44813044e8b10c1b03cffd2416faadb209bb57e3878
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## 2.0.0 (2023-12-07)
2
+
3
+ * Dropped Pry prompt modifications, Hirb and awesome_print, coolline, coderay
4
+
5
+ ## 1.5.0 (2023-06-23)
6
+
7
+ * Added support for the new module_parent_name method, required by
8
+ newer Rails versions (>= 6.1)
9
+
1
10
  ## 1.4.0 (2020-04-27)
2
11
 
3
12
  * Requires a more recent Pry version (at least 0.12.0) to work
data/README.md CHANGED
@@ -10,20 +10,14 @@ hard-working hands!
10
10
  **funk_hands** is an opinionated set of console-related gems and a bit of glue:
11
11
 
12
12
  * [**Pry**][pry] for a powerful shell alternative to IRB.
13
- * [**Awesome Print**][awesome_print] for stylish pretty print.
14
- * [**Hirb**][hirb] for tabular collection output.
15
13
  * [**Pry Rails**][pry-rails] for additional commands (`show-routes`,
16
14
  `show-models`, `show-middleware`) in the Rails console.
17
- * [**Pry Doc**][pry-doc] to browse Ruby source, including C, directly from the
18
- console.
19
- * [**Pry Remote**][pry-remote] to connect remotely to a Pry console.
20
- * [**Pry Byebug**][pry-byebug] to turn the console into a debugger.
21
- * [**Coolline**][coolline] and [**Coderay**][coderay] for syntax highlighting as
22
- you type. _Optional. MRI 1.9.3/2.0.0 only_
15
+ * [**Pry Remote**][pry-remote-reloaded] to connect remotely to a Pry console.
16
+ * [**Pry Byebug**][pry-byebug-reloaded] to turn the console into a debugger.
23
17
 
24
18
  ## Usage
25
19
 
26
- Ruby 2.0+, Rails 3+. Add to your project Gemfile:
20
+ Ruby 2.0+, Rails 5+. Add to your project Gemfile:
27
21
 
28
22
  ```ruby
29
23
  group :development, :test do
@@ -33,62 +27,15 @@ end
33
27
 
34
28
  That's it. Run `rails console` as usual.
35
29
 
36
- [Hirb][hirb] isn't enabled by default. To use, run `Hirb.enable` in the console.
37
-
38
- Ruby compiled against a proper readline library, ideally GNU readline, is
39
- recommended. Alternatively, [`gem install rb-readline`][rb-readline] for an
40
- acceptible backup. Using ruby compiled against a `libedit` wrapper (primarily OS
41
- X) will work but is not recommended.
42
-
43
- ## Options
44
-
45
- Change the following options by creating an initializer in your Rails project
46
- Example `config/initializers/funk_hands.rb`:
47
-
48
- ```ruby
49
- if defined?(FunkHands)
50
- FunkHands.colored_prompt = false
51
- FunkHands.enable_syntax_highlighting_as_you_type!
52
- end
53
- ```
54
-
55
- ### `colored_prompt`
56
-
57
- Color the console prompt? Defaults to `true` when the current ruby is compiled
58
- against GNU readline or `rb-readline`, which don't have issues counting
59
- characters in colored prompts. `false` for libedit.
60
-
61
- Note: `Pry.color = false` trumps this setting and disables all console coloring.
62
-
63
- ### `prompt_separator`
64
-
65
- Separator string between the application name and line input. Defaults to `»`
66
- for GNU readline or libedit. Defaults to `>` for `rb-readline` which fails on
67
- mixed encodings.
68
-
69
- ### Syntax highlighting
70
-
71
- Syntax highlighting as you type via [Coolline][coolline] and [Coderay][coderay]
72
- is disabled by default due to slightly buggy behavior. To enable, add
73
- `FunkHands.enable_syntax_highlighting_as_you_type!` to the initializer. Only
74
- works with MRI 1.9.3 or 2.0.0.
75
-
76
30
  ## Contributing
77
31
 
78
32
  Patches and bug reports are welcome. Just send a [pull request][pullrequests] or
79
33
  file an [issue][issues]. [Project changelog][changelog].
80
34
 
81
35
  [pry]: http://pry.github.com
82
- [awesome_print]: https://github.com/michaeldv/awesome_print
83
- [hirb]: https://github.com/cldwalker/hirb
84
36
  [pry-rails]: https://github.com/rweng/pry-rails
85
- [pry-doc]: https://github.com/pry/pry-doc
86
- [pry-byebug]: https://github.com/deivid-rodriguez/pry-byebug
87
- [pry-remote]: https://github.com/Mon-Ouie/pry-remote
37
+ [pry-byebug-reloaded]: https://github.com/Jack12816/pry-byebug-reloaded
88
38
  [pry-remote-reloaded]: https://github.com/Jack12816/pry-remote-reloaded
89
- [coolline]: https://github.com/Mon-Ouie/coolline
90
- [coderay]: https://github.com/rubychan/coderay
91
- [rb-readline]: https://github.com/luislavena/rb-readline
92
- [pullrequests]: https://github.com/Jack12816/jazz_hands/pulls
93
- [issues]: https://github.com/Jack12816/jazz_hands/issues
94
- [changelog]: https://github.com/Jack12816/jazz_hands/blob/master/CHANGELOG.md
39
+ [pullrequests]: https://github.com/Jack12816/funk_hands/pulls
40
+ [issues]: https://github.com/Jack12816/funk_hands/issues
41
+ [changelog]: https://github.com/Jack12816/funk_hands/blob/master/CHANGELOG.md
data/funk_hands.gemspec CHANGED
@@ -17,15 +17,11 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
18
  gem.require_paths = ['lib']
19
19
 
20
+ gem.required_ruby_version = '>= 2.5'
21
+
20
22
  # Dependencies
21
- gem.required_ruby_version = '>= 1.9.2'
22
- gem.add_runtime_dependency 'pry', '>= 0.12.0'
23
+ gem.add_runtime_dependency 'pry', '>= 0.14.0'
23
24
  gem.add_runtime_dependency 'pry-rails', '>= 0.3.6'
24
- gem.add_runtime_dependency 'pry-doc', '>= 0.11.1'
25
- gem.add_runtime_dependency 'pry-remote-reloaded', '~> 1.0'
26
- gem.add_runtime_dependency 'pry-byebug', '>= 1.0'
27
- gem.add_runtime_dependency 'hirb', '>= 0.7.3'
28
- gem.add_runtime_dependency 'coolline', '>= 0.4.2'
29
- gem.add_runtime_dependency 'awesome_print', '~> 1.8'
30
- gem.add_runtime_dependency 'railties', '>= 3.0', '< 7.0'
25
+ gem.add_runtime_dependency 'pry-remote-reloaded', '~> 1.1'
26
+ gem.add_runtime_dependency 'pry-byebug-reloaded', '~> 3.10'
31
27
  end
@@ -1,31 +1,9 @@
1
- require 'pry'
2
- require 'pry-rails'
3
- require 'pry-doc'
4
- require 'pry-remote-reloaded'
5
- require 'awesome_print'
6
- require 'funk_hands/hirb_ext'
7
- require 'pry-byebug'
1
+ # frozen_string_literal: true
8
2
 
9
3
  module FunkHands
10
4
  class Railtie < Rails::Railtie
11
- initializer 'Funk_hands.initialize' do |app|
5
+ initializer 'FunkHands.initialize' do |app|
12
6
  silence_warnings do
13
- # We're managing the loading of plugins. So don't let pry autoload them.
14
- Pry.config.should_load_plugins = false
15
-
16
- # Use awesome_print for output, but keep pry's pager. If Hirb is
17
- # enabled, try printing with it first.
18
- # See: https://github.com/pry/pry/blob/v0.11.3/lib/pry.rb#L20
19
- Pry.config.print = ->(output, value, _pry_) do
20
- if FunkHands._hirb_output
21
- return output.puts(Hirb::View.view_or_page_output(value))
22
- end
23
- if Pry.pager
24
- return Pry::DEFAULT_PRINT.call(output, value, _pry_)
25
- end
26
- output.puts("=> #{value.ai(indent: 2)}")
27
- end
28
-
29
7
  # Friendlier prompt - line number, app name, nesting levels look like
30
8
  # directory paths.
31
9
  #
@@ -36,14 +14,18 @@ module FunkHands
36
14
  # libraries (GNU, rb-readline) correctly ignore color codes when
37
15
  # calculating line length.
38
16
 
39
- color = -> { Pry.color && FunkHands.colored_prompt }
17
+ color = -> { Pry.color }
40
18
  red = ->(text) { color[] ? "\001\e[0;31m\002#{text}\001\e[0m\002" : text.to_s }
41
19
  blue = ->(text) { color[] ? "\001\e[0;34m\002#{text}\001\e[0m\002" : text.to_s }
42
20
  bold = ->(text) { color[] ? "\001\e[1m\002#{text}\001\e[0m\002" : text.to_s }
43
21
 
44
- separator = -> { red.(FunkHands.prompt_separator) }
45
- name = app.class.parent_name.underscore
46
- colored_name = -> { blue.(name) }
22
+ name = app.class.module_parent_name \
23
+ if app.class.respond_to?(:module_parent_name)
24
+ name ||= app.class.parent_name
25
+ name = name.underscore.gsub('_', '-')
26
+
27
+ separator = red.(defined?(RbReadline) ? '>' : "\u00BB")
28
+ colored_name = blue.(name)
47
29
 
48
30
  line = ->(pry) { "[#{bold.(pry.input_ring.size)}] " }
49
31
  target_string = ->(object, level) do
@@ -55,19 +37,26 @@ module FunkHands
55
37
  end
56
38
  end
57
39
 
58
- Pry.config.prompt = [
59
- ->(object, level, pry) do # Main prompt
60
- "#{line.(pry)}#{colored_name.()}#{target_string.(object, level)} #{separator.()} "
61
- end,
62
- ->(object, level, pry) do # Wait prompt in multiline input
63
- spaces = ' ' * (
64
- "[#{pry.input_ring.size}] ".size + # Uncolored `line.(pry)`
65
- name.size +
66
- target_string.(object, level).size
67
- )
68
- "#{spaces} #{separator.()} "
69
- end
70
- ]
40
+ Pry.config.prompt = Pry::Prompt.new(
41
+ 'funk_hands',
42
+ 'funk_hands',
43
+ [
44
+ # Main prompt
45
+ proc do |object, level, pry|
46
+ "#{line.(pry)}#{colored_name}#{target_string.(object, level)} #{separator} "
47
+ end,
48
+
49
+ # Wait prompt in multiline input
50
+ proc do |object, level, pry|
51
+ spaces = ' ' * (
52
+ "[#{pry.input_ring.size}] ".size + # Uncolored `line.(pry)`
53
+ name.size +
54
+ target_string.(object, level).size
55
+ )
56
+ "#{spaces} #{separator.()} "
57
+ end
58
+ ]
59
+ )
71
60
  end
72
61
  end
73
62
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module FunkHands
2
- VERSION = '1.4.0'
4
+ VERSION = '2.0.0'
3
5
  end
data/lib/funk_hands.rb CHANGED
@@ -1,66 +1,14 @@
1
- require 'funk_hands/version'
2
- require 'funk_hands/railtie' if defined?(Rails)
1
+ # frozen_string_literal: true
2
+
3
3
  require 'active_support'
4
4
  require 'readline'
5
+ require 'pry'
6
+ require 'pry-rails'
7
+ require 'pry-byebug'
8
+ require 'pry-byebug/pry_remote_ext'
9
+ require 'pry-remote-reloaded'
5
10
 
6
- module FunkHands
7
-
8
- ### Options ###
9
-
10
- # Color the prompt?
11
- #
12
- # A different setting than Pry.color since some may like colored output, but a
13
- # plain prompt.
14
- #
15
- # Default: 'true' for GNU readline or rb-readline which correctly count line
16
- # widths with color codes when using \001 and \002 hints. 'false' for
17
- # libedit-based wrapper (standard on OS X unless ruby is explicitly compiled
18
- # otherwise).
19
- #
20
- mattr_accessor :colored_prompt
21
- self.colored_prompt = (Readline::VERSION !~ /EditLine/)
22
-
23
- # Separator between application name and input in the prompt.
24
- #
25
- # Default: right angle quote, or '>' when using rb-readline which doesn't
26
- # handle mixed encodings well.
27
- #
28
- mattr_accessor :prompt_separator
29
- self.prompt_separator = defined?(RbReadline) ? '>' : "\u00BB"
30
-
31
-
32
- class << self
33
- # Enable syntax highlighting as you type in the Rails console via coolline and
34
- # coderay (MRI 1.9.3+ only). Disabled by default as it's a bit buggy.
35
- #
36
- # Call from a Rails initializer:
37
- #
38
- # FunkHands.enable_syntax_highlighting_as_you_type!
39
- #
40
- def enable_syntax_highlighting_as_you_type!
41
- raise 'Syntax highlighting only supported on 1.9.3+' unless RUBY_VERSION >= '1.9.3'
11
+ module FunkHands; end
42
12
 
43
- # Use coolline with CodeRay for syntax highlighting as you type.
44
- # Only works on >= 1.9.3 because coolline depends on io/console.
45
-
46
- require 'coolline'
47
- require 'coderay'
48
-
49
- Pry.config.input = Coolline.new do |c|
50
- c.transform_proc = proc do
51
- CodeRay.scan(c.line, :ruby).term
52
- end
53
-
54
- c.completion_proc = proc do
55
- word = c.completed_word
56
- Object.constants.map(&:to_s).select { |w| w.start_with? word }
57
- end
58
- end
59
- end
60
- alias :enable_syntax_highlighting_as_you_type :enable_syntax_highlighting_as_you_type!
61
- end
62
-
63
- ### Internal methods ###
64
-
65
- mattr_accessor :_hirb_output
66
- end
13
+ require 'funk_hands/version'
14
+ require 'funk_hands/railtie' if defined?(Rails)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: funk_hands
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gopal Patel
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-27 00:00:00.000000000 Z
11
+ date: 2023-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.12.0
19
+ version: 0.14.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.12.0
26
+ version: 0.14.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pry-rails
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,110 +38,34 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.3.6
41
- - !ruby/object:Gem::Dependency
42
- name: pry-doc
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: 0.11.1
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: 0.11.1
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: pry-remote-reloaded
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '1.0'
47
+ version: '1.1'
62
48
  type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: '1.0'
54
+ version: '1.1'
69
55
  - !ruby/object:Gem::Dependency
70
- name: pry-byebug
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '1.0'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '1.0'
83
- - !ruby/object:Gem::Dependency
84
- name: hirb
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 0.7.3
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 0.7.3
97
- - !ruby/object:Gem::Dependency
98
- name: coolline
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 0.4.2
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: 0.4.2
111
- - !ruby/object:Gem::Dependency
112
- name: awesome_print
56
+ name: pry-byebug-reloaded
113
57
  requirement: !ruby/object:Gem::Requirement
114
58
  requirements:
115
59
  - - "~>"
116
60
  - !ruby/object:Gem::Version
117
- version: '1.8'
61
+ version: '3.10'
118
62
  type: :runtime
119
63
  prerelease: false
120
64
  version_requirements: !ruby/object:Gem::Requirement
121
65
  requirements:
122
66
  - - "~>"
123
67
  - !ruby/object:Gem::Version
124
- version: '1.8'
125
- - !ruby/object:Gem::Dependency
126
- name: railties
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '3.0'
132
- - - "<"
133
- - !ruby/object:Gem::Version
134
- version: '7.0'
135
- type: :runtime
136
- prerelease: false
137
- version_requirements: !ruby/object:Gem::Requirement
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- version: '3.0'
142
- - - "<"
143
- - !ruby/object:Gem::Version
144
- version: '7.0'
68
+ version: '3.10'
145
69
  description: Spending hours in the rails console? Spruce it up and show off those
146
70
  hard-working hands! funk_hands replaces IRB with Pry, improves output through awesome_print,
147
71
  and has some other goodies up its sleeves.
@@ -158,14 +82,13 @@ files:
158
82
  - Rakefile
159
83
  - funk_hands.gemspec
160
84
  - lib/funk_hands.rb
161
- - lib/funk_hands/hirb_ext.rb
162
85
  - lib/funk_hands/railtie.rb
163
86
  - lib/funk_hands/version.rb
164
87
  homepage: https://github.com/Jack12816/funk_hands
165
88
  licenses:
166
89
  - MIT
167
90
  metadata: {}
168
- post_install_message:
91
+ post_install_message:
169
92
  rdoc_options: []
170
93
  require_paths:
171
94
  - lib
@@ -173,15 +96,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
173
96
  requirements:
174
97
  - - ">="
175
98
  - !ruby/object:Gem::Version
176
- version: 1.9.2
99
+ version: '2.5'
177
100
  required_rubygems_version: !ruby/object:Gem::Requirement
178
101
  requirements:
179
102
  - - ">="
180
103
  - !ruby/object:Gem::Version
181
104
  version: '0'
182
105
  requirements: []
183
- rubygems_version: 3.1.2
184
- signing_key:
106
+ rubygems_version: 3.3.8
107
+ signing_key:
185
108
  specification_version: 4
186
109
  summary: Exercise those fingers. Pry-based enhancements for the default Rails console.
187
110
  test_files: []
@@ -1,18 +0,0 @@
1
- require 'hirb'
2
- require 'pry'
3
-
4
- class << Hirb::View
5
- alias_method :enable_output_method_existing, :enable_output_method
6
- alias_method :disable_output_method_existing, :disable_output_method
7
-
8
- def enable_output_method
9
- @output_method = true
10
- FunkHands._hirb_output = true
11
- enable_output_method_existing
12
- end
13
-
14
- def disable_output_method
15
- FunkHands._hirb_output = false
16
- disable_output_method_existing
17
- end
18
- end