jazz_fingers 1.0.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
  SHA1:
3
- metadata.gz: f303845ae64b80312267fb5d81515ecaa31b0de3
4
- data.tar.gz: 63d21f69ea114302c01cbe867abb6dfec829a9ed
3
+ metadata.gz: aaecd076918e8c0a873af5007079f239c6da8b94
4
+ data.tar.gz: 19fb8b5fdb8ef30f55e9737f9bcb6344dc2253b3
5
5
  SHA512:
6
- metadata.gz: 3af3c692c957104534bf4ce2c1bab348c936b635d817e21a460ee27787c0161b25edacba4c845e6238bf6ff82e41beab0e36dd2c340c88e665f32e92d754c0bf
7
- data.tar.gz: 9fba66e645e51368223c0b2d0296c6b0ca2e477890a8719cf1c05f791dafcb4d5760e320bb94f579a1033c39236159493142c0ea006c65341c903ca0e358704b
6
+ metadata.gz: f6e8dc5f3708373499ac583f108d7fd55ae4b6efca65a5af5b8c65f1345ce49300ef2d832a6556aa1ef03c39f89a7581b65c67c45ad575d8a4cb8bbf7d61a58d
7
+ data.tar.gz: 52ca34d63cbb53f6580728581edd113ea56b588ed9addbceea459f72327172243c004e0dcd8ca810d04bc934f3259322894b50199b922e60f6d2cb9889382158
data/.hound.yml CHANGED
@@ -10,9 +10,6 @@ Style/Encoding:
10
10
  Style/FormatString:
11
11
  Enabled: false
12
12
 
13
- Style/HashSyntax:
14
- EnforcedStyle: hash_rockets
15
-
16
13
  Style/SignalException:
17
14
  EnforcedStyle: only_raise
18
15
 
data/.rubocop.yml CHANGED
@@ -10,9 +10,6 @@ Style/Encoding:
10
10
  Style/FormatString:
11
11
  Enabled: false
12
12
 
13
- Style/HashSyntax:
14
- EnforcedStyle: hash_rockets
15
-
16
13
  Style/SignalException:
17
14
  EnforcedStyle: only_raise
18
15
 
data/CHANGELOG.md CHANGED
@@ -1,7 +1,20 @@
1
+ ## 2.0.0 (2015-05-31)
2
+
3
+ * Add alias to the most used commands
4
+ * Update [pry-byebug][pry-byebug] to ~> v3.1
5
+ * Improve abstraction by creating models to handle specific responsibilities
6
+ * Add configuration to enable/disable [pry-coolline][pry-coolline]
7
+ * Add configuration to enable/disable [awesome_print][awesome_print]
8
+ * Remove [pry-rails][pry-rails] dependency
9
+ * Remove [railties][railties] dependency
10
+
11
+ ## 1.0.0 (2015-02-05)
12
+ * Downgrade [pry-byebug][pry-byebug] to v1.3.3
13
+
1
14
  ## 0.5.5 (2015-02-03)
2
15
 
3
16
  * Update [pry-byebug][pry-byebug] to v2.0.0
4
- * Update [awesome-print][awesome-print] to v1.6.1
17
+ * Update [awesome_print][awesome_print] to v1.6.1
5
18
 
6
19
  ## 0.5.4 (2014-11-06)
7
20
 
@@ -139,3 +152,4 @@
139
152
  [pry-debugger]: https://github.com/nixme/pry-debugger
140
153
  [pry-rails]: https://github.com/rweng/pry-rails
141
154
  [pry-byebug]: https://github.com/deivid-rodriguez/pry-byebug
155
+ [railties]: https://github.com/rails/rails
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source 'http://rubygems.org'
1
+ source "http://rubygems.org"
2
2
 
3
3
  gemspec
data/README.md CHANGED
@@ -3,16 +3,14 @@ Jazz Fingers
3
3
 
4
4
  This repo is a fork, with updates and bug fixes based on [`jazz_hands`](https://github.com/nixme/jazz_hands).
5
5
 
6
- Spending hours in the rails console? Spruce it up and show off those
7
- hard-working hands!
6
+ Spending hours in the pry console? Spruce it up and show off those
7
+ hard-working fingers!
8
8
 
9
9
  **jazz_fingers** is an opinionated set of console-related gems and a bit of glue:
10
10
 
11
11
  * [**Pry**][pry] for a powerful shell alternative to IRB.
12
12
  * [**Awesome Print**][awesome_print] for stylish pretty print.
13
13
  * [**Hirb**][hirb] for tabular collection output.
14
- * [**Pry Rails**][pry-rails] for additional commands (`show-routes`,
15
- `show-models`, `show-middleware`) in the Rails console.
16
14
  * [**Pry Doc**][pry-doc] to browse Ruby source, including C, directly from the
17
15
  console.
18
16
  * [**Pry Git**][pry-git] to teach the console about git. Diffs, blames, and
@@ -23,7 +21,7 @@ hard-working hands!
23
21
 
24
22
  ## Usage
25
23
 
26
- Ruby 2.0.0+, Rails 3 or 4 only. Add to your project Gemfile:
24
+ Ruby 2.0.0+. Add to your project Gemfile:
27
25
 
28
26
  ```ruby
29
27
  group :development, :test do
@@ -31,7 +29,7 @@ group :development, :test do
31
29
  end
32
30
  ```
33
31
 
34
- That's it. Run `rails console` as usual.
32
+ That's it. Run `pry` as usual.
35
33
 
36
34
  [Hirb][hirb] isn't enabled by default. To use, run `Hirb.enable` in the console.
37
35
 
@@ -43,12 +41,18 @@ X) will work but is not recommended.
43
41
 
44
42
  ## Options
45
43
 
46
- Change the following options by creating an initializer in your Rails project
44
+ Change the following options by creating an initializer
47
45
  Example `config/initializers/jazz_fingers.rb`:
48
46
 
49
47
  ```ruby
50
48
  if defined?(JazzFingers)
51
- JazzFingers.colored_prompt = false
49
+ JazzFingers.configure do |config|
50
+ config.colored_prompt = false
51
+ config.awesome_print = false
52
+ config.coolline = false
53
+ end
54
+
55
+ require 'jazz_fingers/setup'
52
56
  end
53
57
  ```
54
58
 
@@ -70,7 +74,6 @@ mixed encodings.
70
74
  [pry]: http://pry.github.com
71
75
  [awesome_print]: https://github.com/michaeldv/awesome_print
72
76
  [hirb]: https://github.com/cldwalker/hirb
73
- [pry-rails]: https://github.com/rweng/pry-rails
74
77
  [pry-doc]: https://github.com/pry/pry-doc
75
78
  [pry-git]: https://github.com/pry/pry-git
76
79
  [pry-remote]: https://github.com/Mon-Ouie/pry-remote
data/Rakefile CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env rake
2
2
 
3
- require 'bundler/gem_tasks'
3
+ require "bundler/gem_tasks"
data/jazz_fingers.gemspec CHANGED
@@ -1,32 +1,31 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
- require File.expand_path('../lib/jazz_fingers/version', __FILE__)
3
+ require File.expand_path("../lib/jazz_fingers/version", __FILE__)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
- gem.name = 'jazz_fingers'
6
+ gem.name = "jazz_fingers"
7
7
  gem.version = JazzFingers::VERSION
8
- gem.author = 'Paulo Henrique Lopes Ribeiro'
9
- gem.email = 'plribeiro3000@gmail.com'
10
- gem.license = 'MIT'
11
- gem.homepage = 'https://github.com/plribeiro3000/jazz_fingers'
12
- gem.summary = 'Exercise those fingers. Pry-based enhancements for the default Rails console.'
8
+ gem.author = "Paulo Henrique Lopes Ribeiro"
9
+ gem.email = "plribeiro3000@gmail.com"
10
+ gem.license = "MIT"
11
+ gem.homepage = "https://github.com/plribeiro3000/jazz_fingers"
12
+ gem.summary = "Exercise those fingers. Pry-based enhancements for the default Rails console."
13
13
  gem.description = "Spending hours in the rails console? Spruce it up and show off those hard-working hands! jazz_fingers replaces IRB with Pry, improves output through awesome_print, and has some other goodies up its sleeves."
14
14
 
15
- gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
15
+ gem.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
16
16
  gem.files = `git ls-files`.split("\n")
17
17
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- gem.require_paths = ['lib']
18
+ gem.require_paths = ["lib"]
19
19
 
20
20
  # Dependencies
21
- gem.required_ruby_version = '>= 2.0'
22
- gem.add_runtime_dependency 'pry', '~> 0.10'
23
- gem.add_runtime_dependency 'pry-rails', '~> 0.3'
24
- gem.add_runtime_dependency 'pry-doc', '~> 0.6'
25
- gem.add_runtime_dependency 'pry-git', '~> 0.2'
26
- gem.add_runtime_dependency 'pry-remote', '>= 0.1.7'
27
- gem.add_runtime_dependency 'pry-byebug', '1.3.3'
28
- gem.add_runtime_dependency 'hirb', '~> 0.7'
29
- gem.add_runtime_dependency 'pry-coolline', '~> 0.2'
30
- gem.add_runtime_dependency 'awesome_print', '~> 1.6.1'
31
- gem.add_runtime_dependency 'railties', '>= 3.0', '< 5.0'
21
+ gem.required_ruby_version = ">= 2.0"
22
+ gem.add_runtime_dependency "pry", "~> 0.10"
23
+ gem.add_runtime_dependency "pry-doc", "~> 0.6"
24
+ gem.add_runtime_dependency "pry-git", "~> 0.2"
25
+ gem.add_runtime_dependency "pry-remote", ">= 0.1.7"
26
+ gem.add_runtime_dependency "pry-byebug", "~> 3.1"
27
+ gem.add_runtime_dependency "hirb", "~> 0.7"
28
+ gem.add_runtime_dependency "pry-coolline", "~> 0.2"
29
+ gem.add_runtime_dependency "awesome_print", "~> 1.6"
30
+ gem.add_development_dependency "rubocop"
32
31
  end
@@ -0,0 +1,40 @@
1
+ module JazzFingers
2
+ class Configuration
3
+ attr_writer :colored_prompt, :prompt_separator, :coolline, :awesome_print
4
+
5
+ # Color the prompt?
6
+ #
7
+ # A different setting than Pry.color since some may like colored output, but a
8
+ # plain prompt.
9
+ #
10
+ # Default: 'true' for GNU readline or rb-readline which correctly count line
11
+ # widths with color codes when using \001 and \002 hints. 'false' for
12
+ # libedit-based wrapper (standard on OS X unless ruby is explicitly compiled
13
+ # otherwise).
14
+ def colored_prompt
15
+ return (Readline::VERSION !~ /EditLine/) && Pry.color if @colored_prompt.nil?
16
+
17
+ @colored_prompt
18
+ end
19
+
20
+ # Separator between application name and input in the prompt.
21
+ #
22
+ # Default: right angle quote, or '>' when using rb-readline which doesn't
23
+ # handle mixed encodings well.
24
+ def prompt_separator
25
+ @prompt_separator ||= defined?(RbReadline) ? ">" : "\u00BB"
26
+ end
27
+
28
+ def coolline?
29
+ return false if @coolline.nil?
30
+
31
+ @coolline
32
+ end
33
+
34
+ def awesome_print?
35
+ return true if @awesome_print.nil?
36
+
37
+ @awesome_print
38
+ end
39
+ end
40
+ end
@@ -1,18 +1,15 @@
1
- require 'hirb'
2
- require 'pry'
3
-
4
1
  class << Hirb::View
5
2
  alias_method :enable_output_method_existing, :enable_output_method
6
3
  alias_method :disable_output_method_existing, :disable_output_method
7
4
 
8
5
  def enable_output_method
9
6
  @output_method = true
10
- JazzFingers._hirb_output = true
7
+ JazzFingers.config.awesome_print = true
11
8
  enable_output_method_existing
12
9
  end
13
10
 
14
11
  def disable_output_method
15
- JazzFingers._hirb_output = false
12
+ JazzFingers.config.awesome_print = false
16
13
  disable_output_method_existing
17
14
  end
18
15
  end
@@ -0,0 +1,27 @@
1
+ require "pry-coolline"
2
+ require "coderay"
3
+
4
+ module JazzFingers
5
+ class Input
6
+ class << self
7
+ def config
8
+ {
9
+ cool: cool_input
10
+ }
11
+ end
12
+
13
+ def cool_input
14
+ Coolline.new do |c|
15
+ c.transform_proc = proc do
16
+ CodeRay.scan(c.line, :ruby).term
17
+ end
18
+
19
+ c.completion_proc = proc do
20
+ word = c.completed_word
21
+ Object.constants.map(&:to_s).select { |w| w.start_with?(word) }
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,15 @@
1
+ require "awesome_print"
2
+
3
+ module JazzFingers
4
+ class Print
5
+ class << self
6
+ def config
7
+ lambda do |_output, value, pry_object|
8
+ return if Hirb::View.view_or_page_output(value)
9
+ pretty = value.ai(indent: 2)
10
+ pry_object.pager.page("=> #{pretty}")
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,76 @@
1
+ module JazzFingers
2
+ class Prompt
3
+ def initialize(options = {})
4
+ @colored = options.fetch(:colored)
5
+ @separator = options.fetch(:separator)
6
+ end
7
+
8
+ def colored?
9
+ @colored
10
+ end
11
+
12
+ def red_text(text)
13
+ return text.to_s unless colored?
14
+
15
+ "\001\e[0;31m\002#{text}\001\e[0m\002"
16
+ end
17
+
18
+ def blue_text(text)
19
+ return text.to_s unless colored?
20
+
21
+ "\001\e[0;34m\002#{text}\001\e[0m\002"
22
+ end
23
+
24
+ def bold_text(text)
25
+ return text.to_s unless colored?
26
+
27
+ "\001\e[1m\002#{text}\001\e[0m\002"
28
+ end
29
+
30
+ def separator
31
+ red_text(@separator)
32
+ end
33
+
34
+ def name
35
+ if respond_to?(:app)
36
+ name = "(#{app.class.parent_name.underscore})"
37
+ else
38
+ name = "(jazz_fingers)"
39
+ end
40
+
41
+ blue_text(name)
42
+ end
43
+
44
+ def line_number(pry)
45
+ "[#{bold_text(pry.input_array.size)}]"
46
+ end
47
+
48
+ def text(object, level)
49
+ level = 0 if level < 0
50
+ text = Pry.view_clip(object)
51
+
52
+ if text == "main"
53
+ ""
54
+ else
55
+ "(#{'../' * level}#{text})"
56
+ end
57
+ end
58
+
59
+ def main_prompt
60
+ lambda do |_object, _level, pry|
61
+ "#{RUBY_VERSION} #{name}#{line_number(pry)} #{separator} "
62
+ end
63
+ end
64
+
65
+ def block_prompt
66
+ lambda do |_object, level, pry|
67
+ spaces = " " * level
68
+ "#{RUBY_VERSION} #{name}#{line_number(pry)} * #{spaces}"
69
+ end
70
+ end
71
+
72
+ def config
73
+ [main_prompt, block_prompt]
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,9 @@
1
+ # JazzFingers dance
2
+ Pry.print = JazzFingers.print if JazzFingers.config.awesome_print?
3
+ Pry.prompt = JazzFingers.prompt
4
+ Pry.input = JazzFingers.input if JazzFingers.config.coolline?
5
+
6
+ # Command Shortcuts
7
+ Pry.commands.alias_command('c', 'continue')
8
+ Pry.commands.alias_command('s', 'step')
9
+ Pry.commands.alias_command('n', 'next')
@@ -1,3 +1,3 @@
1
1
  module JazzFingers
2
- VERSION = '1.0.0'
2
+ VERSION = "2.0.0"
3
3
  end
data/lib/jazz_fingers.rb CHANGED
@@ -1,34 +1,38 @@
1
- require 'jazz_fingers/version'
2
- require 'jazz_fingers/railtie' if defined?(Rails)
3
- require 'active_support'
4
- require 'readline'
1
+ require "hirb"
2
+ require "pry"
3
+ require "pry-doc"
4
+ require "pry-git"
5
+ require "pry-remote"
6
+ require "readline"
7
+ require "jazz_fingers/hirb_ext"
5
8
 
6
9
  module JazzFingers
10
+ autoload :Configuration, "jazz_fingers/configuration"
11
+ autoload :Input, "jazz_fingers/input"
12
+ autoload :Print, "jazz_fingers/print"
13
+ autoload :Prompt, "jazz_fingers/prompt"
14
+ autoload :VERSION, "jazz_fingers/version"
7
15
 
8
- ### Options ###
16
+ class << self
17
+ def print
18
+ @print ||= Print.config
19
+ end
9
20
 
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/)
21
+ def prompt
22
+ @prompt ||= Prompt.new(colored: config.colored_prompt, separator: config.prompt_separator)
23
+ @prompt.config
24
+ end
22
25
 
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"
26
+ def input
27
+ @input ||= Input.config
28
+ end
30
29
 
31
- ### Internal methods ###
30
+ def configure
31
+ yield @config ||= Configuration.new
32
+ end
32
33
 
33
- mattr_accessor :_hirb_output
34
+ def config
35
+ @config ||= Configuration.new
36
+ end
37
+ end
34
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jazz_fingers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paulo Henrique Lopes Ribeiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-05 00:00:00.000000000 Z
11
+ date: 2015-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.10'
27
- - !ruby/object:Gem::Dependency
28
- name: pry-rails
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '0.3'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '0.3'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: pry-doc
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -84,16 +70,16 @@ dependencies:
84
70
  name: pry-byebug
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - '='
73
+ - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: 1.3.3
75
+ version: '3.1'
90
76
  type: :runtime
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - '='
80
+ - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: 1.3.3
82
+ version: '3.1'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: hirb
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -128,34 +114,28 @@ dependencies:
128
114
  requirements:
129
115
  - - "~>"
130
116
  - !ruby/object:Gem::Version
131
- version: 1.6.1
117
+ version: '1.6'
132
118
  type: :runtime
133
119
  prerelease: false
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
122
  - - "~>"
137
123
  - !ruby/object:Gem::Version
138
- version: 1.6.1
124
+ version: '1.6'
139
125
  - !ruby/object:Gem::Dependency
140
- name: railties
126
+ name: rubocop
141
127
  requirement: !ruby/object:Gem::Requirement
142
128
  requirements:
143
129
  - - ">="
144
130
  - !ruby/object:Gem::Version
145
- version: '3.0'
146
- - - "<"
147
- - !ruby/object:Gem::Version
148
- version: '5.0'
149
- type: :runtime
131
+ version: '0'
132
+ type: :development
150
133
  prerelease: false
151
134
  version_requirements: !ruby/object:Gem::Requirement
152
135
  requirements:
153
136
  - - ">="
154
137
  - !ruby/object:Gem::Version
155
- version: '3.0'
156
- - - "<"
157
- - !ruby/object:Gem::Version
158
- version: '5.0'
138
+ version: '0'
159
139
  description: Spending hours in the rails console? Spruce it up and show off those
160
140
  hard-working hands! jazz_fingers replaces IRB with Pry, improves output through
161
141
  awesome_print, and has some other goodies up its sleeves.
@@ -178,8 +158,12 @@ files:
178
158
  - Rakefile
179
159
  - jazz_fingers.gemspec
180
160
  - lib/jazz_fingers.rb
161
+ - lib/jazz_fingers/configuration.rb
181
162
  - lib/jazz_fingers/hirb_ext.rb
182
- - lib/jazz_fingers/railtie.rb
163
+ - lib/jazz_fingers/input.rb
164
+ - lib/jazz_fingers/print.rb
165
+ - lib/jazz_fingers/prompt.rb
166
+ - lib/jazz_fingers/setup.rb
183
167
  - lib/jazz_fingers/version.rb
184
168
  homepage: https://github.com/plribeiro3000/jazz_fingers
185
169
  licenses:
@@ -1,70 +0,0 @@
1
- require 'awesome_print'
2
- require 'pry'
3
- require 'pry-coolline'
4
- require 'pry-doc'
5
- require 'pry-git'
6
- require 'pry-rails'
7
- require 'pry-remote'
8
- require 'jazz_fingers/hirb_ext'
9
-
10
- module JazzFingers
11
- class Railtie < Rails::Railtie
12
- initializer 'jazz_fingers.initialize' do |app|
13
- silence_warnings do
14
- # We're managing the loading of plugins. So don't let pry autoload them.
15
- Pry.config.should_load_plugins = false
16
-
17
- # Use awesome_print for output, but keep pry's pager. If Hirb is
18
- # enabled, try printing with it first.
19
- Pry.config.print = ->(_output, value, _pry_) do
20
- return if JazzFingers._hirb_output && Hirb::View.view_or_page_output(value)
21
- pretty = value.ai(indent: 2)
22
- _pry_.pager.page("=> #{pretty}")
23
- end
24
-
25
- # Friendlier prompt - line number, app name, nesting levels look like
26
- # directory paths.
27
- #
28
- # Heavy use of lazy lambdas so configuration (like Pry.color) can be
29
- # changed later or even during console usage.
30
- #
31
- # Custom color helpers using hints \001 and \002 so that good readline
32
- # libraries (GNU, rb-readline) correctly ignore color codes when
33
- # calculating line length.
34
-
35
- color = -> { Pry.color && JazzFingers.colored_prompt }
36
- red = ->(text) { color[] ? "\001\e[0;31m\002#{text}\001\e[0m\002" : text.to_s }
37
- blue = ->(text) { color[] ? "\001\e[0;34m\002#{text}\001\e[0m\002" : text.to_s }
38
- bold = ->(text) { color[] ? "\001\e[1m\002#{text}\001\e[0m\002" : text.to_s }
39
-
40
- separator = -> { red.(JazzFingers.prompt_separator) }
41
- name = app.class.parent_name.underscore
42
- colored_name = -> { blue.(name) }
43
-
44
- line = ->(pry) { "[#{bold.(pry.input_array.size)}] " }
45
- target_string = ->(object, level) do
46
- level = 0 if level < 0
47
- unless (string = Pry.view_clip(object)) == 'main'
48
- "(#{'../' * level}#{string})"
49
- else
50
- ''
51
- end
52
- end
53
-
54
- Pry.config.prompt = [
55
- ->(object, level, pry) do # Main prompt
56
- "#{line.(pry)}#{colored_name.()}#{target_string.(object, level)} #{separator.()} "
57
- end,
58
- ->(object, level, pry) do # Wait prompt in multiline input
59
- spaces = ' ' * (
60
- "[#{pry.input_array.size}] ".size + # Uncolored `line.(pry)`
61
- name.size +
62
- target_string.(object, level).size
63
- )
64
- "#{spaces} #{separator.()} "
65
- end
66
- ]
67
- end
68
- end
69
- end
70
- end